14
RĪGAS TEHNISKĀ UNIVERSITĀTE Datorzinātnes un informācijas tehnoloģijas fakultāte Informācijas tehnoloģijas institūts Referāts mācību priekšmetā „Progresīvās datu bāzes” ORACLE12. ORACLE TIMESTEN IN-MEMORY DATABASE AND ORACLE IN-MEMORY DATABASE CACHE Izstrādāja: Anna Boguševiča 091RDB060

Datu bāzes tehnoloģijas€¦  · Web viewRĪGAS TEHNISKĀ UNIVERSITĀTE. Datorzinātnes un informācijas tehnoloģijas fakultāte. Informācijas tehnoloģijas institūts. Referāts

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Datu bāzes tehnoloģijas€¦  · Web viewRĪGAS TEHNISKĀ UNIVERSITĀTE. Datorzinātnes un informācijas tehnoloģijas fakultāte. Informācijas tehnoloģijas institūts. Referāts

RĪGAS TEHNISKĀ UNIVERSITĀTE

Datorzinātnes un informācijas tehnoloģijas fakultāte

Informācijas tehnoloģijas institūts

Referāts mācību priekšmetā

„Progresīvās datu bāzes”

ORACLE12. ORACLE TIMESTEN IN-MEMORY DATABASE AND

ORACLE IN-MEMORY DATABASE CACHE

Izstrādāja: Anna Boguševiča

091RDB060

2013./2014. māc. gads

Page 2: Datu bāzes tehnoloģijas€¦  · Web viewRĪGAS TEHNISKĀ UNIVERSITĀTE. Datorzinātnes un informācijas tehnoloģijas fakultāte. Informācijas tehnoloģijas institūts. Referāts

Saturs

Oracle TimesTen In-Memory Database.........................................................................3

Oracle In-Memory Database Cache...............................................................................7

Literatūra......................................................................................................................11

2

Page 3: Datu bāzes tehnoloģijas€¦  · Web viewRĪGAS TEHNISKĀ UNIVERSITĀTE. Datorzinātnes un informācijas tehnoloģijas fakultāte. Informācijas tehnoloģijas institūts. Referāts

Oracle TimesTen In-Memory Database

Oracle TimesTen In-Memory Database ir relāciju datu bāzu vadības sistēma, kas strādā operatīvajā

atmiņā un tiek izpildīta lietotņu slānī. Svarīgākā atšķirība no tradicionālajām datu bāzēm ir ātra

atbildes reakcija transakciju izpildes un apstrādes laikā. Sākotnēji tehnoloģija tika izstrādāta

Hewlett-Packard laboratorijās (90-to gadu beigās), taču 2005. gadā Oracle to nopirka un turpināja

attīstīt pēc saviem ieskatiem. TimesTen In-Memory Database strādā praktiski uz visām Unix/Linux

platformām un vairākām Windows platformām (gan 32-bitu, gan 64-bitu arhitektūrām). Viena no

svarīgām TimesTen priekšrocībām ir tāda, ka tas nodrošina efektīvu OLTP-lietotņu darbību reālā

laikā, veiktspēja ir ierobežota tikai ar pieejamo fiziskās atmiņas apjomu.

Svarīgas iespējas, kuras nodrošina Oracle TimesTen In-Memory Database:

1. ar sistēmu var vienlaicīgi strādāt liels daudzums lietotāju (tūkstoši pieslēgumu vienai datu

bāzei);

2. atbildes reakcija ir ātra pat pārslodzes gadījumos;

3. kešatmiņas datu paralēla sinhronizācija ar Oracle datu bāzi;

4. sarežģītu vaicājumu optimizācija un SQL agregācija;

5. atbalsts „lielajiem” objektiem – BLOB, CLOB (parādījās jaunākajā versijā);

6. pēc tehnoloģijas pievienošanas Oracle produkcijas saimei, tajā tika iekļauti PL/SQL un

integrācija ar Oracle DB. [1]

TimesTen nodrošina ātrāku atbildi uz vienkāršiem vaicājumiem pateicoties tam, ka dati tiek glabāti

atmiņā un netiek izmantoti sarežģīti mehānismi kešatmiņas uzturēšanai. Kopumā var teikt, ka

izmantot šo tehnoloģiju ir lietderīgi tad, ja ir stingri laika ierobežojumi attiecībā uz lietotnes atbildes

ātrumu un pietiekams atmiņas apjoms, lai izvietotu tajā visas nepieciešamas tabulas. Neskatoties uz

to, ka izstrādātājs sola pielāgošanas un ērtu savietojamību praktiski ar jebkuru lietotni, tomēr jāņem

vērā, ka bieži vien nāksies pārveidot shēmu un veikt izmaiņas pašā lietotnē. [5]

Reāla laika operatīvās datu apstrādes vadībā eksistē divi veiktspējas rādītāji – reakcijas laiks un

caurlaides spēja. Izmantojot Oracle TimesTen In-Memory Database, ieraksta lasīšana no datu bāzes

aizņem ne vairāk kā 5 mikrosekundes, bet tā atjaunināšana vai pievienošana – ne vairāk kā 15

mikrosekundes (šāda veida pētījumi tika veikti ar Red Hat Linux palīdzību uz AMD Opteron

procesora). Tas nozīmē, ka šīs tehnoloģijas caurlaides spēja ir desmiti, pat simti tūkstošu transakciju

sekundē izmantojot standarta aprīkojumu. [1, 2]

Oracle TimesTen datu bāzes darbības princips tiek parādīts 1.1. attēlā.

3

Page 4: Datu bāzes tehnoloģijas€¦  · Web viewRĪGAS TEHNISKĀ UNIVERSITĀTE. Datorzinātnes un informācijas tehnoloģijas fakultāte. Informācijas tehnoloģijas institūts. Referāts

1.1.att. Oracle TimesTen datu bāzes darbības princips

Lietotnes pieslēdzas TimesTen datu bāzēm vai nu tiešā veidā (direct connection) vai ar

klientservera savienojumu (client/server connection), izmantojot standarta SQL un PL/SQL caur

JDBC, ODBC, ODP.NET, Oracle Call Interface (OCI) un Pro*C/C++ programmēšanas

interfeisiem. Replicēšana ir iespējama LAN un WAN tīklos.

Pieslēgšanas shematisks attēlojums tiek parādīts 1.2. attēlā.

1.2.att. Pieslēgšanas sistēmai

Oracle TimesTen In-Memory arhitektūra balstās uz sekojošām komponentēm:

koplietojamās bibliotēkas;

atmiņai rezidentas datu struktūras (piemēram, indeksi ir optimizēti darbam tieši RAM vidē);

datu bāzes procesi;

4

Page 5: Datu bāzes tehnoloģijas€¦  · Web viewRĪGAS TEHNISKĀ UNIVERSITĀTE. Datorzinātnes un informācijas tehnoloģijas fakultāte. Informācijas tehnoloģijas institūts. Referāts

administratīvās programmas;

kontrolpunkti un žurnālu faili.

Arhitektūras shematisks attēlojums tiek parādīts 1.3. attēlā.

1.3.att. TimesTen arhitektūra

Tāpat kā jebkura relāciju datu bāze, dati iekš TimesTen tiek glabāti shēmās, kuras veido vairākas

tabulas. Šīs tabulas sastāv no vairākām informācijas rindām, katru rindu veido vairākas kolonnas.

Pamata koncepcijas, kas tiek izmantotas TimesTen tehnoloģijā – shēmas, lietotāji, tabulas, indeksi,

skati utt., ir savietojamās ar Oracle datu bāzēm.

TimesTen ir transakciju datu bāze – ir iespējams saglabāt izpildi (commit) un atritināt to (roll back).

Lietotāji tiek izveidoti un identificēti ar paroļu palīdzību, tāpat kā tas notiek Oracle datu bāzu

lietotājiem, kā arī pieeja datiem tiek kontrolēta ar pazīstamu komandu GRANT un REVOKE

palīdzību. TimesTen tehnoloģiju var izmantot arī kopā ar Oracle datu bāzi, izveidojot kombināciju

no šīm bāzēm. [6]

Oracle TimesTen In-Memory datu bāze ir izveidota kā iegulstama programmās datu bāze, kas

nodrošina labāku veiktspēju, tiek izslēgtas nevajadzīgas tīkla operācijas un likvidēta starpprocesu

komunikācija.

5

Page 6: Datu bāzes tehnoloģijas€¦  · Web viewRĪGAS TEHNISKĀ UNIVERSITĀTE. Datorzinātnes un informācijas tehnoloģijas fakultāte. Informācijas tehnoloģijas institūts. Referāts

TimesTen arhitektūras salīdzinājums ar RDBMS arhitektūru tiek parādīts 1.4. attēlā.

1.4.att. TimesTen arhitektūras salīdzinājums ar RDBMS

Viens no spilgtākajiem Oracle TimesTen In-Memory Database izmantošanas piemēriem ir mobilo

telefonu operatoru datu bāzes. Pēdējos gados pakalpojumu klāsts ir kļuvis pietiekami plašs – ne

tikai zvani un ziņojumi, bet arī internets telefonos, datu vai lietotņu lejupielādēšana, zvani vai

īsziņas uz fiksētiem numuriem, kā arī daudz kas cits. Mobilo telefonu lietotāji izpilda tūkstošiem

transakciju un tas notiek vienlaicīgi vienā tīklā – šis arī ir tas gadījums, kad Oracle TimesTen In-

Memory datu bāze būtu vispiemērotākais risinājums, lai nodrošinātu stabilu veiktspēju augstās

noslodzes apstākļos.

Vēl viens piemērs, kur Oracle TimesTen varētu sniegt vairākas svarīgas priekšrocības ir dispečeru

sistēma reaģēšanai uz ārkārtējām situācijām. Tāda sistēma ir piemēram ASV, kad cilvēki zvana uz

911. Šādas sistēmās atbildes laiks ir kritisks, tas var ietekmēt dzīvības jautājumus. [8]

Bieži TimesTen tehnoloģiju izmanto sekojošās jomās:

1. tirdzniecība;

2. komunikācijas;

3. biļešu rezervēšana;

4. pašapkalpošanas portāli;

5. klientu atbalsta centri;

6. krāpšanas atklāšanai.

6

Page 7: Datu bāzes tehnoloģijas€¦  · Web viewRĪGAS TEHNISKĀ UNIVERSITĀTE. Datorzinātnes un informācijas tehnoloģijas fakultāte. Informācijas tehnoloģijas institūts. Referāts

Kā jau tika minēts iepriekš, tādēļ, ka TimesTen glabā datus RAM atmiņā, datu bāzes apjoms ir

ierobežots ar pieejamo fiziskās RAM atmiņas apjomu mašīnā. Mūsdienīgajās 64-bitu sistēmās šis

ierobežojums nav tik jūtams, jo ir pieejamas mašīnas ar RAM, kas izmērāms terabaitos (TB).

Tomēr salīdzinot ar citām datu bāzēm, var konstatēt, ka eksistē arī lielākas bāzes un TimesTen

nemaz nav jaudīgākā no tam. Tāpēc var uzskatīt, ka šodien ideālais risinājums būtu TimesTen

veiktspējas apvienojums ar Oracle datu bāzu lielo jaudu, bet šāda veida risinājums vēl nav

izveidots!

Oracle In-Memory Database Cache

Oracle In-Memory Database Cache ir opcija, kas nodrošina darbu reālā laikā un kešatmiņas

atjaunināšanu priekš Oracle datu bāzes. Oracle In-Memory Database Cache samazina transakciju

apstrādes laiku pateicoties kritiski svarīgo tabulu kešēšanai (caching). Šo tabulu kešēšanu nodrošina

ar SQL palīdzību, tāpat kā parastās relāciju datu bāzu tabulas iekš TimesTen In-Memory Database.

Šādi Oracle In-Memory Database Cache sniedz lietotnēm relāciju datu bāzes pilno funkcionalitāti

un nodrošina darbu reālā laikā ar datu bāzēm, kas ir optimizētas darbam ar operatīvo atmiņu.

Rezultātā dati tiek apstrādāti reālā laikā, tā it kā datu bāze būtu izvietota operatīvajā atmiņā.

Kešēšanas tabulas var tikt izveidotās gan kā atjaunināmas tabulas, gan arī tikai lasīšanai. Datu

sinhronizēšana starp kešatmiņu un Oracle DBVS tiek izpildīta automātiski. [4]

In-Memory Database Cache opcija ir izveidota tā, ka pat savienojuma ar serveru zaudēšanas

gadījumos, procesi var turpināties. Visas transakcijas, kas tiek piefiksētas kešatmiņas tabulās tiek

izplatītas uz Oracle DB, tikko savienojums ir atgūts atpakaļ.

Opcija In-Memory Database Cache izmanto jēdzienu „kešēšanas grupas”, kas apraksta vairākas

datu bāzes tabulas, kuras ir izvietotās operatīvajā atmiņā un tiek salīdzinātas ar visām vai dažam

tabulām no Oracle DBVS ar paplašināta SQL palīdzību. Eksistē divas „kešēšanas grupu” pamata

kategorijas:

Vadāmas ar sistēmu – pilnībā tiek kontrolētas ar In-Memory Database Cache tehnoloģiju.

Šajā gadījumā sinhronizēšanas vadība starp Oracle DB un kešēšanas tabulām notiek

automātiski, bez lietotnes iesaistīšanas.

Vadāmas ar lietotāju – ļauj lietotnēm noteikt kešēšanas uzvedību, piedāvājot visas SQL

komandas un atribūtus. Lietotnes ir atbildīgas par ielādēšanas mehānismu inicializēšanu,

datu atjaunināšanu un izplatīšanu tā, lai apmierinātu lietotnes prasības pilnā apjomā.

„Kešēšanas grupu” aizpildīšanai un pastāvīgai to satura atjaunināšanai tiek izmantotas tādas SQL

operācijas kā LOAD un REFRESH. „Kešēšanas grupas” tiek kontrolētas caur Cache Administrator,

kas ir grafiskais lietotāja interfeiss. [3]7

Page 8: Datu bāzes tehnoloģijas€¦  · Web viewRĪGAS TEHNISKĀ UNIVERSITĀTE. Datorzinātnes un informācijas tehnoloģijas fakultāte. Informācijas tehnoloģijas institūts. Referāts

In-Memory Database Cache arhitektūra ir praktiski tāda pati kā Oracle TimesTen In-Memory

Database, vienīga atšķirība, ka In-Memory Database Cache arhitektūrā ir iekļauti Oracle datu bāze

un kešēšanas aģents. [7]

Oracle In-Memory Database Cache arhitektūra tiek parādīta 2.1. attēlā.

2.1.att. Oracle In-Memory Database Cache arhitektūra

Dinamiskās kešēšanas priekšrocības

Dažām lietotnēm nav iespējams savlaicīgi noteikt tiem nepieciešamos kešdatus. Šādos gadījumos

kešdati tiek ielādēti pēc vaicājuma, kad rodas nepieciešamība pēc šiem datiem. Piemēram, zvanu

apstrādes centra programmnodrošinājumam ir nepieciešams ielādēt abonenta pašreizējo konta

izrakstu tajā pati laikā veicot zvana pāradresēšanu attiecīgajām operatoram, bet pirms tam ir jāielādē

visu abonentu kontu izraksti kešatmiņā, kas atrodas operatīvajā atmiņā.

Dinamiskās datu ielādes papildus iespēja – automātiskā informācijas novecošanas funkcija, kas ļauj

dzēst novecojušos datus vai tos, kuri netika izmantoti ilgu laiku. Datu novecošanas funkcija sniedz

lietotnēm iespēju atbrīvot vietu jaunu datu kešēšanai, turklāt saglabājot atmiņā pieeju „aktīvajiem”

datiem.

8

Page 9: Datu bāzes tehnoloģijas€¦  · Web viewRĪGAS TEHNISKĀ UNIVERSITĀTE. Datorzinātnes un informācijas tehnoloģijas fakultāte. Informācijas tehnoloģijas institūts. Referāts

Augsta pieejamības pakāpe

Pieejamība ir viena no svarīgākām prasībām lietotnēm, kas strādā reālā laikā. In-Memory Database

Cache nodrošina pieejamību ar transakciju replicēšanu reālā laikā. Eksistē replicēšanas aģents, kurš

nolasa ierakstus no transakciju žurnāla un pārsūta visas izmaiņas citam aģentam, kurš savukārt

izmanto pārsūtītas izmaiņas, lai atjauninātu datus lokālajā datu bāzē. Tiek realizēta divu veidu

replicēšana – sinhronā un asinhronā. Asinhronā replicēšana nodrošina maksimālo veiktspēju,

replicēšanas procesa laikā lietotne tiek pilnīgi atdalīta. Sinhronā replicēšana nodrošina labāku datu

saskaņošanu starp galveno un replicēšanas bāzi, taču šajā gadījumā lietotne tiek bloķēta līdz brīdim,

kad izmaiņas tiek fiksētas replicēšanas DB.

Oracle In-Memory Database Cache var tikt izmantota dažādās sfērās. Piemēram, to var izmantot

interneta komercijas nolūkiem, vērtspapīru pārdošanas sistēmās, dažādu maksājumu sistēmās,

biznesa procesu monitoringam reālā laikā, datu analīzei reālā laikā, lietotāju profilu uzturēšanai.

Kešēšanas tabulas ir iespējams saglabāt un atjaunot operatīvajā atmiņā. Šo saglabāšanu nodrošina

transakciju žurnāli un datu bāzes kontroles punktu kopēšana uz diska, kuru izpilda Oracle TimesTen

In-Memory Database.

TimesTen un In-Memory Database Cache izmanto vaicājumu optimizētāju, kas balstās uz

izmaksām un izvēlas labāko vaicājumu izpildes scenāriju atbilstoši tādiem faktoriem kā indeksu

esamība, tabulu saites, ORDER BY daļas esamība vaicājumā. Metode, ar kuras palīdzību TimesTen

un In-Memory Database Cache optimizētājs analīzē SQL vaicājumu, lai uzlabotu veiktspēju,

atšķiras no metodēm, kurus izmanto tradicionālajās disku sistēmās, tāpēc ka atšķiras pašu struktūru

izmaksas – priekš TimesTen un In-Memory Database Cache disku pieejamība nav galvenais

faktors. TimesTen un In-Memory Database Cache optimizētājs izmanto diapazonus (range),

jaucējkodus (hash) un rastra indeksus (bitmap index). Vaicājuma optimizētājs izmanto divu tipu

savienojumu metodes: nested-loop un merge-join. Pie nepieciešamības optimizētājs var izveidot

pagaidu indeksus.

Kopumā, pēc abu tehnoloģijas izpētes, var secināt, ka tās ir diezgan specifiskas (turklāt arī diezgan

dārgas), ir savas priekšrocības un savi trūkumi, tāpēc jāatzīst, ka pirms izvēlēties Oracle TimesTen

In-Memory Database vai Oracle TimesTen In-Memory Database Cache, ir nepieciešams labi

izanalizēt sistēmas prasības un precīzi noteikt vai nepieciešama kāda no šīm tehnoloģijām vai arī

var veikt nepieciešamas izmaiņas esošā struktūrā.

9

Page 10: Datu bāzes tehnoloģijas€¦  · Web viewRĪGAS TEHNISKĀ UNIVERSITĀTE. Datorzinātnes un informācijas tehnoloģijas fakultāte. Informācijas tehnoloģijas institūts. Referāts

Literatūra

1. http://www.slideshare.net/highload/oracle-timesten-presentation

2. http://www.oracle.com/technetwork/database/database-technologies/timesten/overview/

index.html

3. http://docs.oracle.com/cd/E21901_01/doc/timesten.1122/e21631/arch.htm#TTCIN150

4. http://www.oracle.com/us/products/database/options/in-memory-database-cache/overview/

index.html

5. http://www.oracle.com/technetwork/products/timesten/faq-091526.html#GENERAL6

6. http://docs.oracle.com/cd/E21901_01/doc/timesten.1122/e21631/overview.htm#TTCIN120

7. http://docs.oracle.com/cd/E21901_01/doc/timesten.1122/e21631/arch.htm#BAAEBJEF

8. http://www.itjungle.com/tug/tug061605-story03.html

10