Two things are infinite: the universe and human stupidity; and I'm not sure about the universe ...
Albert Einstein

A computer would deserve to be called intelligent if it could deceive a human into believing that it was human ...
Alan Turing

Two things control men's nature, instinct and experience ...
Blaise Pascal

Saturday, March 24, 2007

Oracle TimesTen 10 пати побрзо!

TimesTen е една од аквизициите кои Oracle ги направи не толку одамна (Јуни 2005).

TimesTen е база која комплетно е алоцирана во физичката меморија на серверот. Значи поентата е што повеќе да се елиминира I/O операциите со хард дискот.

За манипулација со податоците користи јазик базиран на SQL стандардите.

Главни компоненти во поглед на архитектурата се checkpoint file и log file. Кога се подига базата, целосната содржина на checkpoint датотеката се реплицира во физичката меморија.

Секоја трансакција се запишува во лог датотека, која периодично се користи за освежување на checkpoint датотеката. Ова значи дека во случај на ненадејно паѓање на системот трансакциите не се губат со губењето на физичката меморија. Кога системот ќе се подигне повторно и базата се стартира, TimesTen ја вчитува содржината на checkpoint датотеката и ги процесира трансакциите од лог датотеките кои не биле запишани во checkpoint датотеката во моментот на губењето на меморијата.

Нормално дека критична компонента на оваа база е checkpoint датотеката. Со нејзино губење се губат и податоците. Како превентива, TimesTen нуди опција за репликација податоците со што би се заштитиле истите во случај на оштетување на checkpoint датотеката.

TimesTen може да работи како самостојна база, или пак да претставува front-end кеш на голема Oracle база која работи во позадина.

Значи овој продукт нуди можност за употреба заедно со стандардна Oracle база. Со оваа солуција добивате робусно решение кое може во голема мерка да ги подобри перформансите на апликацијата.

Суштината на ваквото решение би била во кеширање на најмногу користените податоци со што би се намалило времето на извршување на query-јата.

Табелите кои сакате да ги кеширате ги сместувате во посебни кеш групи.

TimesTen нуди можност за делумно кеширање на податоците од една табела. Податоците во TimesTen се освежуваат со податоците од главната база синхроно или асинхроно. Постои и можност за on-demand освежување.

Но, сега би се поставило прашањето кои табели да се кешираат?

Мое мислење е да се кешираат табели чии податоци се воглавно read only или пак се "речиси" read only.

Зошто?

Ако сакате да кеширате голема табела врз која ќе извршувате комплесни query-ја, TimesTen нема да ви ги даде очекуваните перформанси. Имено, позади Oracle базата стои Oracle Optimizer кој ви помага да ги добиете вашите податоци на најбрз можен начин. TimesTen не е толку суфистицирана. На пример во случај на извршување на комплексно query кое што вклучува итеративно извршување на sub-query TimesTen најверојатно ќе го извршува sub-query-то за секој рекорд кој го враќа назад. Тоа води кон интензивно читање на меморијата кое во случај да sub-queryto процесира повеќе податоци, може многу да го успори вкупното извршување. Oracle CBO Optimizer-от би го процесирал sub-query-то само еднаш, без разлика дали главното query враќа 1, 100 или 100,000 рекорди. Во следниве денови планирам да направам неколку теста па ќе ви ги презентирам резултатите.

Мое мислење е дека TimesTen најкорисна би била за трансакции кои процесираат малку податоци со помош на едноставни query-ја. Кешираните податоци би требало да бидат read-only или "речиси" read-only. Секој обид за кеширање на големи бази со висок степен на I/O активности би довел до намалување на перформансите.

TimesTen би можела да се користи како меѓу-ниво помеѓу базата и апликацискиот сервер. Со мала измена на апликацијата, некои query-ја би пристапувале кон TimesTen, а други кон главната Oracle база.

Сешуте ја истражувам TimesTen, ако дојдам до некои интересни заклучоци сигурно ќе ги објавам.

За оние кои сакат да ја пробаат, TimesTen може да се симне од овде.

За повеќе информации, можете да ја посетите официјалната страница на Oracle TimesTen.

Comments on "Oracle TimesTen 10 пати побрзо!"

 

post a comment