Konzistence datab´aze v nekonzistentn´ım svˇetˇe Radim Baˇca Katedra informatiky Fakulta elektrotechniky a informatiky ˇ – Technick´a univerzita Ostrava VSB
ˇ SKOMAM 2012
-1-
2/2/2012
Obsah Vysvˇetl´ıme si, co je transakce v datab´az´ıch, konzistence, eventu´aln´ı konzistence.
ˇ SKOMAM 2012
-2-
2/2/2012
´ Uvod . Transakce v datab´ az´ıch
Transakce v datab´az´ıch Transakce pˇredstavuje jednotku pr´ace nad datab´az´ı, kterou je potˇreba vykonat bud’to celou anebo v˚ ubec. Transakce se obvykle skl´ad´a z v´ıce operac´ı. Pˇr´ıklad: pˇrevod penˇez mezi dvˇemi bankovn´ımi uˇcty. Takov´a transakce se skl´ad´a ze dvou operac´ı: 1
odeˇcten´ı poˇzadovan´e ˇc´astky z jednoho u ´ˇctu,
2
pˇriˇcten´ı t´eto ˇc´astky na druh´y u ´ˇcet.
ˇ SKOMAM 2012
-3-
2/2/2012
´ Uvod . Transakce v datab´ az´ıch
Transakce v datab´az´ıch Transakce pˇredstavuje jednotku pr´ace nad datab´az´ı, kterou je potˇreba vykonat bud’to celou anebo v˚ ubec. Transakce se obvykle skl´ad´a z v´ıce operac´ı. Pˇr´ıklad: pˇrevod penˇez mezi dvˇemi bankovn´ımi uˇcty. Takov´a transakce se skl´ad´a ze dvou operac´ı: 1
odeˇcten´ı poˇzadovan´e ˇc´astky z jednoho u ´ˇctu,
2
pˇriˇcten´ı t´eto ˇc´astky na druh´y u ´ˇcet.
ˇ SKOMAM 2012
-3-
2/2/2012
´ Uvod . Transakce v datab´ az´ıch
Transakce v datab´az´ıch Transakce pˇredstavuje jednotku pr´ace nad datab´az´ı, kterou je potˇreba vykonat bud’to celou anebo v˚ ubec. Transakce se obvykle skl´ad´a z v´ıce operac´ı. Pˇr´ıklad: pˇrevod penˇez mezi dvˇemi bankovn´ımi uˇcty. Takov´a transakce se skl´ad´a ze dvou operac´ı: 1
odeˇcten´ı poˇzadovan´e ˇc´astky z jednoho u ´ˇctu,
2
pˇriˇcten´ı t´eto ˇc´astky na druh´y u ´ˇcet.
ˇ SKOMAM 2012
-3-
2/2/2012
´ Uvod . Transakce v datab´ az´ıch
Transakce v datab´az´ıch Transakce pˇredstavuje jednotku pr´ace nad datab´az´ı, kterou je potˇreba vykonat bud’to celou anebo v˚ ubec. Transakce se obvykle skl´ad´a z v´ıce operac´ı. Pˇr´ıklad: pˇrevod penˇez mezi dvˇemi bankovn´ımi uˇcty. Takov´a transakce se skl´ad´a ze dvou operac´ı: 1
odeˇcten´ı poˇzadovan´e ˇc´astky z jednoho u ´ˇctu,
2
pˇriˇcten´ı t´eto ˇc´astky na druh´y u ´ˇcet.
ˇ SKOMAM 2012
-3-
2/2/2012
´ Uvod . Transakce v datab´ az´ıch
Transakce v datab´az´ıch Transakce pˇredstavuje jednotku pr´ace nad datab´az´ı, kterou je potˇreba vykonat bud’to celou anebo v˚ ubec. Transakce se obvykle skl´ad´a z v´ıce operac´ı. Pˇr´ıklad: pˇrevod penˇez mezi dvˇemi bankovn´ımi uˇcty. Takov´a transakce se skl´ad´a ze dvou operac´ı: 1
odeˇcten´ı poˇzadovan´e ˇc´astky z jednoho u ´ˇctu,
2
pˇriˇcten´ı t´eto ˇc´astky na druh´y u ´ˇcet.
ˇ SKOMAM 2012
-3-
2/2/2012
´ Uvod . Transakce v datab´ az´ıch
V´yhody pouˇzit´ı transakc´ı Hlavn´ı v´yhody pouˇzit´ı transakc´ı: korektn´ı soubˇeˇzn´y pˇr´ıstup pˇri vykon´av´an´ı operac´ı, zotaven´ı datab´aze pˇri nˇejak´e chybˇe.
ˇ SKOMAM 2012
-4-
2/2/2012
´ Uvod . Transakce v datab´ az´ıch
ACID Atomicity -- Consistency -- Isolation -- Durability Atomicita - jsou provedeny vˇsechny operace transakce nebo v˚ ubec ˇz´adn´a Konzistence - datab´aze je pˇrevedena z jednoho konzistentn´ıho stavu do druh´eho Izolace - transakce se bˇehem soubˇeˇzn´eho prov´adˇen´ı nemohou nijak ovlivˇ novat Trvalost - jakmile je transakce korektnˇe ukonˇcena, pak zmˇeny v datab´azi z˚ ust´avaj´ı nehledˇe na chyby pˇri bˇehu
ˇ SKOMAM 2012
-5-
2/2/2012
´ Uvod . Transakce v datab´ az´ıch
ACID Atomicity -- Consistency -- Isolation -- Durability Atomicita - jsou provedeny vˇsechny operace transakce nebo v˚ ubec ˇz´adn´a Konzistence - datab´aze je pˇrevedena z jednoho konzistentn´ıho stavu do druh´eho Izolace - transakce se bˇehem soubˇeˇzn´eho prov´adˇen´ı nemohou nijak ovlivˇ novat Trvalost - jakmile je transakce korektnˇe ukonˇcena, pak zmˇeny v datab´azi z˚ ust´avaj´ı nehledˇe na chyby pˇri bˇehu
ˇ SKOMAM 2012
-5-
2/2/2012
´ Uvod . Transakce v datab´ az´ıch
ACID Atomicity -- Consistency -- Isolation -- Durability Atomicita - jsou provedeny vˇsechny operace transakce nebo v˚ ubec ˇz´adn´a Konzistence - datab´aze je pˇrevedena z jednoho konzistentn´ıho stavu do druh´eho Izolace - transakce se bˇehem soubˇeˇzn´eho prov´adˇen´ı nemohou nijak ovlivˇ novat Trvalost - jakmile je transakce korektnˇe ukonˇcena, pak zmˇeny v datab´azi z˚ ust´avaj´ı nehledˇe na chyby pˇri bˇehu
ˇ SKOMAM 2012
-5-
2/2/2012
´ Uvod . Transakce v datab´ az´ıch
ACID Atomicity -- Consistency -- Isolation -- Durability Atomicita - jsou provedeny vˇsechny operace transakce nebo v˚ ubec ˇz´adn´a Konzistence - datab´aze je pˇrevedena z jednoho konzistentn´ıho stavu do druh´eho Izolace - transakce se bˇehem soubˇeˇzn´eho prov´adˇen´ı nemohou nijak ovlivˇ novat Trvalost - jakmile je transakce korektnˇe ukonˇcena, pak zmˇeny v datab´azi z˚ ust´avaj´ı nehledˇe na chyby pˇri bˇehu
ˇ SKOMAM 2012
-5-
2/2/2012
´ Uvod . Transakce v datab´ az´ıch
ACID Atomicity -- Consistency -- Isolation -- Durability Atomicita - jsou provedeny vˇsechny operace transakce nebo v˚ ubec ˇz´adn´a Konzistence - datab´aze je pˇrevedena z jednoho konzistentn´ıho stavu do druh´eho Izolace - transakce se bˇehem soubˇeˇzn´eho prov´adˇen´ı nemohou nijak ovlivˇ novat Trvalost - jakmile je transakce korektnˇe ukonˇcena, pak zmˇeny v datab´azi z˚ ust´avaj´ı nehledˇe na chyby pˇri bˇehu
ˇ SKOMAM 2012
-5-
2/2/2012
´ Uvod . Konzistence
Konzistence Konzistenc´ı datab´aze rozum´ıme to, ˇze v datab´azi m´ame korektn´ı data, kter´a odpov´ıdaj´ı realitˇe. V naˇsem pˇr´ıkladu s bankovn´ım pˇrevodem to znamen´a, ˇze celkov´a suma penˇez na u ´ˇctech z˚ ust´av´a konstantn´ı. Konzistence datab´aze vˇetˇsinou nem˚ uˇze b´yt vyj´adˇrena takto jednoduˇse jednou vˇetou a je obsaˇzena v transakc´ıch a operac´ıch, kter´e prov´ad´ıme nad datab´az´ı.
ˇ SKOMAM 2012
-6-
2/2/2012
´ Uvod . Konzistence
Konzistence Konzistenc´ı datab´aze rozum´ıme to, ˇze v datab´azi m´ame korektn´ı data, kter´a odpov´ıdaj´ı realitˇe. V naˇsem pˇr´ıkladu s bankovn´ım pˇrevodem to znamen´a, ˇze celkov´a suma penˇez na u ´ˇctech z˚ ust´av´a konstantn´ı. Konzistence datab´aze vˇetˇsinou nem˚ uˇze b´yt vyj´adˇrena takto jednoduˇse jednou vˇetou a je obsaˇzena v transakc´ıch a operac´ıch, kter´e prov´ad´ıme nad datab´az´ı.
ˇ SKOMAM 2012
-6-
2/2/2012
´ Uvod . Konzistence
Konzistence Konzistenc´ı datab´aze rozum´ıme to, ˇze v datab´azi m´ame korektn´ı data, kter´a odpov´ıdaj´ı realitˇe. V naˇsem pˇr´ıkladu s bankovn´ım pˇrevodem to znamen´a, ˇze celkov´a suma penˇez na u ´ˇctech z˚ ust´av´a konstantn´ı. Konzistence datab´aze vˇetˇsinou nem˚ uˇze b´yt vyj´adˇrena takto jednoduˇse jednou vˇetou a je obsaˇzena v transakc´ıch a operac´ıch, kter´e prov´ad´ıme nad datab´az´ı.
ˇ SKOMAM 2012
-6-
2/2/2012
´ Uvod . Konzistence
Dalˇs´ı pˇr´ıklady konzistence Pokud hrajete nˇejakou on-line strategii, pak nechcete, aby jeden hr´aˇc vidˇel v urˇcit´em bodˇe kr´asn´eho draka a druh´y oˇsklivou princeznu. Poˇcet kus˚ u zboˇz´ı v e-shopu by mˇel odr´aˇzet skuteˇcn´y stav na skladu.
ˇ SKOMAM 2012
-7-
2/2/2012
Distribuovan´ e datab´ aze a konzistence
Konzistence v distribuovan´ych datab´az´ıch (DD) Pokud data ukl´ad´ame na jednom“ m´ıstˇe, pak je konzistnce obvykle ” nejm´enˇe zaj´ımav´y atribut transakce. Zcela jin´a situace ale nast´av´a, pokud chceme data rozloˇzit na v´ıce datab´azov´ych server˚ u (tzv. distribuovan´a datab´aze). V distribuovan´e datab´azi jsou data vˇzdy replikov´ana na v´ıce serverech, aby bylo moˇzn´e obsluhovat v´ıce paraleln´ıch ˇcten´ı ˇci dokonce z´apis˚ u stejn´ych dat (ˇcten´ı jednoho ˇcl´anku ze zpravodajsk´eho serveru) a v pˇr´ıpadˇe v´ypadku jednoho serveru byl obsah st´ale dostupn´y. Pˇri zmˇenˇe hodnoty na jednom serveru mus´ıme pro udrˇzen´ı konzistence zmˇenit hodnotu i na vˇsech jeho replik´ach.
ˇ SKOMAM 2012
-8-
2/2/2012
Distribuovan´ e datab´ aze a konzistence
Konzistence v distribuovan´ych datab´az´ıch (DD) Pokud data ukl´ad´ame na jednom“ m´ıstˇe, pak je konzistnce obvykle ” nejm´enˇe zaj´ımav´y atribut transakce. Zcela jin´a situace ale nast´av´a, pokud chceme data rozloˇzit na v´ıce datab´azov´ych server˚ u (tzv. distribuovan´a datab´aze). V distribuovan´e datab´azi jsou data vˇzdy replikov´ana na v´ıce serverech, aby bylo moˇzn´e obsluhovat v´ıce paraleln´ıch ˇcten´ı ˇci dokonce z´apis˚ u stejn´ych dat (ˇcten´ı jednoho ˇcl´anku ze zpravodajsk´eho serveru) a v pˇr´ıpadˇe v´ypadku jednoho serveru byl obsah st´ale dostupn´y. Pˇri zmˇenˇe hodnoty na jednom serveru mus´ıme pro udrˇzen´ı konzistence zmˇenit hodnotu i na vˇsech jeho replik´ach.
ˇ SKOMAM 2012
-8-
2/2/2012
Distribuovan´ e datab´ aze a konzistence
Konzistence v distribuovan´ych datab´az´ıch (DD) Pokud data ukl´ad´ame na jednom“ m´ıstˇe, pak je konzistnce obvykle ” nejm´enˇe zaj´ımav´y atribut transakce. Zcela jin´a situace ale nast´av´a, pokud chceme data rozloˇzit na v´ıce datab´azov´ych server˚ u (tzv. distribuovan´a datab´aze). V distribuovan´e datab´azi jsou data vˇzdy replikov´ana na v´ıce serverech, aby bylo moˇzn´e obsluhovat v´ıce paraleln´ıch ˇcten´ı ˇci dokonce z´apis˚ u stejn´ych dat (ˇcten´ı jednoho ˇcl´anku ze zpravodajsk´eho serveru) a v pˇr´ıpadˇe v´ypadku jednoho serveru byl obsah st´ale dostupn´y. Pˇri zmˇenˇe hodnoty na jednom serveru mus´ıme pro udrˇzen´ı konzistence zmˇenit hodnotu i na vˇsech jeho replik´ach.
ˇ SKOMAM 2012
-8-
2/2/2012
Distribuovan´ e datab´ aze a konzistence
Konzistence v distribuovan´ych datab´az´ıch (DD) Pokud data ukl´ad´ame na jednom“ m´ıstˇe, pak je konzistnce obvykle ” nejm´enˇe zaj´ımav´y atribut transakce. Zcela jin´a situace ale nast´av´a, pokud chceme data rozloˇzit na v´ıce datab´azov´ych server˚ u (tzv. distribuovan´a datab´aze). V distribuovan´e datab´azi jsou data vˇzdy replikov´ana na v´ıce serverech, aby bylo moˇzn´e obsluhovat v´ıce paraleln´ıch ˇcten´ı ˇci dokonce z´apis˚ u stejn´ych dat (ˇcten´ı jednoho ˇcl´anku ze zpravodajsk´eho serveru) a v pˇr´ıpadˇe v´ypadku jednoho serveru byl obsah st´ale dostupn´y. Pˇri zmˇenˇe hodnoty na jednom serveru mus´ıme pro udrˇzen´ı konzistence zmˇenit hodnotu i na vˇsech jeho replik´ach.
ˇ SKOMAM 2012
-8-
2/2/2012
Distribuovan´ e datab´ aze a konzistence
Pˇr´ıklad DD A
B
E
C
D
Mˇejme distribuovanou datab´azi s 5 servery.
ˇ SKOMAM 2012
-9-
2/2/2012
Distribuovan´ e datab´ aze a konzistence
Pˇr´ıklad DD Replikace A
B
E
C
D
Mˇejme distribuovanou datab´azi s pˇeti servery. Z´aznam v datab´azi vˇzdy n´aleˇz´ı jednomu serveru, ale z´aroveˇ n jsou data replikov´ana na 2 serverech po smˇeru hodinov´ych ruˇciˇcek.
ˇ SKOMAM 2012
-9-
2/2/2012
Distribuovan´ e datab´ aze a konzistence
Pˇr´ıklad DD záznam x A
B
E
C
D
ˇ Reknˇ eme, ˇze chceme zapsat z´aznam, kter´y je uloˇzen na serveru A.
ˇ SKOMAM 2012
-9-
2/2/2012
Distribuovan´ e datab´ aze a konzistence
Pˇr´ıklad DD záznam x A kopie záznamu x B
kopie záznamu x
E
C
D
ˇ Reknˇ eme, ˇze chceme zapsat z´aznam, kter´y je uloˇzen na serveru A. Z´aznam je nejprve posl´an na repliky a ˇcek´a na potvrzen´ı u ´spˇeˇsn´eho zaps´an´ı.
ˇ SKOMAM 2012
-9-
2/2/2012
Distribuovan´ e datab´ aze a konzistence
Pˇr´ıklad DD A ok B
E
ok
C
D
Kdyˇz dostaneme potvrzen´ı, ˇze vˇsechny servery korektnˇe zapsaly zmˇeny,
ˇ SKOMAM 2012
-9-
2/2/2012
Distribuovan´ e datab´ aze a konzistence
Pˇr´ıklad DD ok A
B
E
C
D
Kdyˇz dostaneme potvrzen´ı, ˇze vˇsechny servery korektnˇe zapsaly zmˇeny, pak potvrd´ıme proveden´ı operace.
ˇ SKOMAM 2012
-9-
2/2/2012
Distribuovan´ e datab´ aze a konzistence
Pˇr´ıklad DD A ok B
E
error
C
D
Pokud z´apis na nˇekter´em serveru selˇze,
ˇ SKOMAM 2012
-9-
2/2/2012
Distribuovan´ e datab´ aze a konzistence
Pˇr´ıklad DD error A rollback B
E
C
D
Pokud z´apis na nˇekter´em serveru selˇze, mus´ıme stornovat operace i na ostatn´ıch serverech a odeslat chybu pˇri z´apisu.
ˇ SKOMAM 2012
-9-
2/2/2012
Distribuovan´ e datab´ aze a konzistence
Probl´emy konzistence Z´akladn´ım probl´emem je, ˇze komunikace i samotn´e servery mohou b´yt nespolehliv´e. D´ale pˇri z´apisu d´ale doch´az´ı k zamyk´an´ı z´aznam˚ u. Servery mus´ı zn´at topologie s´ıtˇe a stav jednotliv´ych server˚ u, aby mohly spolehlivˇe vylouˇcit nekonzistenci pˇri z´apisu. D˚ usledkem je, ˇze jednoduch´a operace aktualizace ˇcl´anku m˚ uˇze trvat ne´ umˇernˇe dlouho. Naˇstˇest´ı existuj´ı ˇreˇsen´ı, takˇze m´am o ˇcem m´ıt dnes pˇredn´aˇsku.
ˇ SKOMAM 2012
-10-
2/2/2012
Distribuovan´ e datab´ aze a konzistence
Probl´emy konzistence Z´akladn´ım probl´emem je, ˇze komunikace i samotn´e servery mohou b´yt nespolehliv´e. D´ale pˇri z´apisu d´ale doch´az´ı k zamyk´an´ı z´aznam˚ u. Servery mus´ı zn´at topologie s´ıtˇe a stav jednotliv´ych server˚ u, aby mohly spolehlivˇe vylouˇcit nekonzistenci pˇri z´apisu. D˚ usledkem je, ˇze jednoduch´a operace aktualizace ˇcl´anku m˚ uˇze trvat ne´ umˇernˇe dlouho. Naˇstˇest´ı existuj´ı ˇreˇsen´ı, takˇze m´am o ˇcem m´ıt dnes pˇredn´aˇsku.
ˇ SKOMAM 2012
-10-
2/2/2012
Distribuovan´ e datab´ aze a konzistence
Probl´emy konzistence Z´akladn´ım probl´emem je, ˇze komunikace i samotn´e servery mohou b´yt nespolehliv´e. D´ale pˇri z´apisu d´ale doch´az´ı k zamyk´an´ı z´aznam˚ u. Servery mus´ı zn´at topologie s´ıtˇe a stav jednotliv´ych server˚ u, aby mohly spolehlivˇe vylouˇcit nekonzistenci pˇri z´apisu. D˚ usledkem je, ˇze jednoduch´a operace aktualizace ˇcl´anku m˚ uˇze trvat ne´ umˇernˇe dlouho. Naˇstˇest´ı existuj´ı ˇreˇsen´ı, takˇze m´am o ˇcem m´ıt dnes pˇredn´aˇsku.
ˇ SKOMAM 2012
-10-
2/2/2012
Distribuovan´ e datab´ aze a konzistence
Probl´emy konzistence Z´akladn´ım probl´emem je, ˇze komunikace i samotn´e servery mohou b´yt nespolehliv´e. D´ale pˇri z´apisu d´ale doch´az´ı k zamyk´an´ı z´aznam˚ u. Servery mus´ı zn´at topologie s´ıtˇe a stav jednotliv´ych server˚ u, aby mohly spolehlivˇe vylouˇcit nekonzistenci pˇri z´apisu. D˚ usledkem je, ˇze jednoduch´a operace aktualizace ˇcl´anku m˚ uˇze trvat ne´ umˇernˇe dlouho. Naˇstˇest´ı existuj´ı ˇreˇsen´ı, takˇze m´am o ˇcem m´ıt dnes pˇredn´aˇsku.
ˇ SKOMAM 2012
-10-
2/2/2012
Distribuovan´ e datab´ aze a konzistence
Probl´emy konzistence Z´akladn´ım probl´emem je, ˇze komunikace i samotn´e servery mohou b´yt nespolehliv´e. D´ale pˇri z´apisu d´ale doch´az´ı k zamyk´an´ı z´aznam˚ u. Servery mus´ı zn´at topologie s´ıtˇe a stav jednotliv´ych server˚ u, aby mohly spolehlivˇe vylouˇcit nekonzistenci pˇri z´apisu. D˚ usledkem je, ˇze jednoduch´a operace aktualizace ˇcl´anku m˚ uˇze trvat ne´ umˇernˇe dlouho. Naˇstˇest´ı existuj´ı ˇreˇsen´ı, takˇze m´am o ˇcem m´ıt dnes pˇredn´aˇsku.
ˇ SKOMAM 2012
-10-
2/2/2012
Distribuovan´ e datab´ aze a konzistence . Eventu´ aln´ı konzistence
Eventu´aln´ı konzistence Kdyˇz se vr´at´ıme k pˇr´ıkladu se zpravodajsk´ym serverem: aktualizace ˇcl´anku na jednom serveru se propaguje na vˇsechny repliky. Mus´ıme skuteˇcnˇe okamˇzitˇe vˇsichni vidˇet aktu´aln´ı ˇcl´anek? Uˇzivatel tˇeˇzko postˇrehne, ˇze m´a zrovna neaktu´aln´ı ˇcl´anek, zejm´ene pokud je jen trochu“ neaktu´aln´ı. ” Obecnˇe plat´ı, ˇze u mnoha (zejm´ena webov´ych) aplikac´ı na striktn´ı konzistenci ˇcasto v˚ ubec nez´aleˇz´ı. Prim´arn´ı je dostat alespoˇ n nˇejak´a data, kter´a se bl´ıˇz´ı skuteˇcnosti.
ˇ SKOMAM 2012
-11-
2/2/2012
Distribuovan´ e datab´ aze a konzistence . Eventu´ aln´ı konzistence
Eventu´aln´ı konzistence Kdyˇz se vr´at´ıme k pˇr´ıkladu se zpravodajsk´ym serverem: aktualizace ˇcl´anku na jednom serveru se propaguje na vˇsechny repliky. Mus´ıme skuteˇcnˇe okamˇzitˇe vˇsichni vidˇet aktu´aln´ı ˇcl´anek? Uˇzivatel tˇeˇzko postˇrehne, ˇze m´a zrovna neaktu´aln´ı ˇcl´anek, zejm´ene pokud je jen trochu“ neaktu´aln´ı. ” Obecnˇe plat´ı, ˇze u mnoha (zejm´ena webov´ych) aplikac´ı na striktn´ı konzistenci ˇcasto v˚ ubec nez´aleˇz´ı. Prim´arn´ı je dostat alespoˇ n nˇejak´a data, kter´a se bl´ıˇz´ı skuteˇcnosti.
ˇ SKOMAM 2012
-11-
2/2/2012
Distribuovan´ e datab´ aze a konzistence . Eventu´ aln´ı konzistence
Eventu´aln´ı konzistence Kdyˇz se vr´at´ıme k pˇr´ıkladu se zpravodajsk´ym serverem: aktualizace ˇcl´anku na jednom serveru se propaguje na vˇsechny repliky. Mus´ıme skuteˇcnˇe okamˇzitˇe vˇsichni vidˇet aktu´aln´ı ˇcl´anek? Uˇzivatel tˇeˇzko postˇrehne, ˇze m´a zrovna neaktu´aln´ı ˇcl´anek, zejm´ene pokud je jen trochu“ neaktu´aln´ı. ” Obecnˇe plat´ı, ˇze u mnoha (zejm´ena webov´ych) aplikac´ı na striktn´ı konzistenci ˇcasto v˚ ubec nez´aleˇz´ı. Prim´arn´ı je dostat alespoˇ n nˇejak´a data, kter´a se bl´ıˇz´ı skuteˇcnosti.
ˇ SKOMAM 2012
-11-
2/2/2012
Distribuovan´ e datab´ aze a konzistence . Eventu´ aln´ı konzistence
Eventu´aln´ı konzistence Kdyˇz se vr´at´ıme k pˇr´ıkladu se zpravodajsk´ym serverem: aktualizace ˇcl´anku na jednom serveru se propaguje na vˇsechny repliky. Mus´ıme skuteˇcnˇe okamˇzitˇe vˇsichni vidˇet aktu´aln´ı ˇcl´anek? Uˇzivatel tˇeˇzko postˇrehne, ˇze m´a zrovna neaktu´aln´ı ˇcl´anek, zejm´ene pokud je jen trochu“ neaktu´aln´ı. ” Obecnˇe plat´ı, ˇze u mnoha (zejm´ena webov´ych) aplikac´ı na striktn´ı konzistenci ˇcasto v˚ ubec nez´aleˇz´ı. Prim´arn´ı je dostat alespoˇ n nˇejak´a data, kter´a se bl´ıˇz´ı skuteˇcnosti.
ˇ SKOMAM 2012
-11-
2/2/2012
Distribuovan´ e datab´ aze a konzistence . Eventu´ aln´ı konzistence
Konzistence Striktn´ı konzistence - klasick´a konzistence tak jak je ch´ap´ana v ACID. Vˇsechny zmˇeny proveden´e operac´ı jsou uloˇzeny v datab´azi a kaˇzd´e n´asledn´e ˇcten´ı vrac´ı vˇzdy novou hodnotu. Slab´a konzistence - po proveden´ı operace A existuje urˇcit´a prodleva, bˇehem kter´e n´asledn´e ˇcten´ı m˚ uˇze vracet nˇejakou hodnotu, kter´a byla v poli pˇred proveden´ım zmˇen operac´ı A. Tato prodleva se naz´yv´a okno nekonzistnce. Eventu´aln´ı konzistence - jedn´a se o urˇcitou formu slab´e konzistence, kde je velikost okna nekonzistence d´ana parametry datab´aze a s´ıtˇe.
ˇ SKOMAM 2012
-12-
2/2/2012
Distribuovan´ e datab´ aze a konzistence . Eventu´ aln´ı konzistence
Konzistence Striktn´ı konzistence - klasick´a konzistence tak jak je ch´ap´ana v ACID. Vˇsechny zmˇeny proveden´e operac´ı jsou uloˇzeny v datab´azi a kaˇzd´e n´asledn´e ˇcten´ı vrac´ı vˇzdy novou hodnotu. Slab´a konzistence - po proveden´ı operace A existuje urˇcit´a prodleva, bˇehem kter´e n´asledn´e ˇcten´ı m˚ uˇze vracet nˇejakou hodnotu, kter´a byla v poli pˇred proveden´ım zmˇen operac´ı A. Tato prodleva se naz´yv´a okno nekonzistnce. Eventu´aln´ı konzistence - jedn´a se o urˇcitou formu slab´e konzistence, kde je velikost okna nekonzistence d´ana parametry datab´aze a s´ıtˇe.
ˇ SKOMAM 2012
-12-
2/2/2012
Distribuovan´ e datab´ aze a konzistence . Eventu´ aln´ı konzistence
Konzistence Striktn´ı konzistence - klasick´a konzistence tak jak je ch´ap´ana v ACID. Vˇsechny zmˇeny proveden´e operac´ı jsou uloˇzeny v datab´azi a kaˇzd´e n´asledn´e ˇcten´ı vrac´ı vˇzdy novou hodnotu. Slab´a konzistence - po proveden´ı operace A existuje urˇcit´a prodleva, bˇehem kter´e n´asledn´e ˇcten´ı m˚ uˇze vracet nˇejakou hodnotu, kter´a byla v poli pˇred proveden´ım zmˇen operac´ı A. Tato prodleva se naz´yv´a okno nekonzistnce. Eventu´aln´ı konzistence - jedn´a se o urˇcitou formu slab´e konzistence, kde je velikost okna nekonzistence d´ana parametry datab´aze a s´ıtˇe.
ˇ SKOMAM 2012
-12-
2/2/2012
Techniky
Quorum systems Mˇejme N replik. Pˇri z´apisu rozeˇsleme operaci na vˇsechny repliky a operaci povaˇzujeme za u ´spˇeˇsnou, pokud se provede alespoˇ n na W serverech. Pˇri ˇcten´ı pak mus´ı odpovˇedˇet alespoˇ n R server˚ u. Pokud nastav´ıme R + W > N, tak m˚ uˇzeme m´ıt striktn´ı konzistenci operace.
ˇ SKOMAM 2012
-13-
2/2/2012
Techniky
Quorum systems Mˇejme N replik. Pˇri z´apisu rozeˇsleme operaci na vˇsechny repliky a operaci povaˇzujeme za u ´spˇeˇsnou, pokud se provede alespoˇ n na W serverech. Pˇri ˇcten´ı pak mus´ı odpovˇedˇet alespoˇ n R server˚ u. Pokud nastav´ıme R + W > N, tak m˚ uˇzeme m´ıt striktn´ı konzistenci operace.
ˇ SKOMAM 2012
-13-
2/2/2012
Techniky
Quorum systems Mˇejme N replik. Pˇri z´apisu rozeˇsleme operaci na vˇsechny repliky a operaci povaˇzujeme za u ´spˇeˇsnou, pokud se provede alespoˇ n na W serverech. Pˇri ˇcten´ı pak mus´ı odpovˇedˇet alespoˇ n R server˚ u. Pokud nastav´ıme R + W > N, tak m˚ uˇzeme m´ıt striktn´ı konzistenci operace.
ˇ SKOMAM 2012
-13-
2/2/2012
Techniky
Quorum systems Mˇejme N replik. Pˇri z´apisu rozeˇsleme operaci na vˇsechny repliky a operaci povaˇzujeme za u ´spˇeˇsnou, pokud se provede alespoˇ n na W serverech. Pˇri ˇcten´ı pak mus´ı odpovˇedˇet alespoˇ n R server˚ u. Pokud nastav´ıme R + W > N, tak m˚ uˇzeme m´ıt striktn´ı konzistenci operace.
ˇ SKOMAM 2012
-13-
2/2/2012
Techniky
Dalˇs´ı pouˇz´ıvan´e techniky Dvouf´azov´y protokol zamyk´an´ı - zamykac´ı protokol, kter´y zajist´ı striktn´ı konzistenci pˇri z´apisu. Paxos - dalˇs´ı protokol, kter´y zajiˇstuje striktn´ı konzistenci pˇri z´apisu. Protokol je flexibilnejˇs´ı neˇz dvouf´azov´y protokol, jelikoˇz nedoch´az´ı k explicitn´ımu zamyk´an´ı, ale pˇri konfliktech muˇze doj´ıt k odm´ıtnut´ı z´apisu (i opakovan´emu). Vektorov´e hodiny - technika pro ˇreˇsen´ı nekonzistence bˇehem ˇcten´ı dat.
ˇ SKOMAM 2012
-14-
2/2/2012
Techniky
Dalˇs´ı pouˇz´ıvan´e techniky Dvouf´azov´y protokol zamyk´an´ı - zamykac´ı protokol, kter´y zajist´ı striktn´ı konzistenci pˇri z´apisu. Paxos - dalˇs´ı protokol, kter´y zajiˇstuje striktn´ı konzistenci pˇri z´apisu. Protokol je flexibilnejˇs´ı neˇz dvouf´azov´y protokol, jelikoˇz nedoch´az´ı k explicitn´ımu zamyk´an´ı, ale pˇri konfliktech muˇze doj´ıt k odm´ıtnut´ı z´apisu (i opakovan´emu). Vektorov´e hodiny - technika pro ˇreˇsen´ı nekonzistence bˇehem ˇcten´ı dat.
ˇ SKOMAM 2012
-14-
2/2/2012
Techniky
Dalˇs´ı pouˇz´ıvan´e techniky Dvouf´azov´y protokol zamyk´an´ı - zamykac´ı protokol, kter´y zajist´ı striktn´ı konzistenci pˇri z´apisu. Paxos - dalˇs´ı protokol, kter´y zajiˇstuje striktn´ı konzistenci pˇri z´apisu. Protokol je flexibilnejˇs´ı neˇz dvouf´azov´y protokol, jelikoˇz nedoch´az´ı k explicitn´ımu zamyk´an´ı, ale pˇri konfliktech muˇze doj´ıt k odm´ıtnut´ı z´apisu (i opakovan´emu). Vektorov´e hodiny - technika pro ˇreˇsen´ı nekonzistence bˇehem ˇcten´ı dat.
ˇ SKOMAM 2012
-14-
2/2/2012
Techniky . Vektorov´ e hodiny
Vektorov´e hodiny Vektorov´e hodiny jsou v podstatˇe n-tice dvojic (server, poˇc´ıtadlo). Kaˇzd´y objekt na serveru m´a pˇriˇrazeny jedny vektorov´e hodiny. Umoˇzn ˇuj´ı vyˇreˇsit n´aslednost operac´ı a detekovat, ˇze dva objekty jsou v konfliktu.
ˇ SKOMAM 2012
-15-
2/2/2012
Techniky . Vektorov´ e hodiny
Vektorov´e hodiny Vektorov´e hodiny jsou v podstatˇe n-tice dvojic (server, poˇc´ıtadlo). Kaˇzd´y objekt na serveru m´a pˇriˇrazeny jedny vektorov´e hodiny. Umoˇzn ˇuj´ı vyˇreˇsit n´aslednost operac´ı a detekovat, ˇze dva objekty jsou v konfliktu.
ˇ SKOMAM 2012
-15-
2/2/2012
Techniky . Vektorov´ e hodiny
Vektorov´e hodiny Vektorov´e hodiny jsou v podstatˇe n-tice dvojic (server, poˇc´ıtadlo). Kaˇzd´y objekt na serveru m´a pˇriˇrazeny jedny vektorov´e hodiny. Umoˇzn ˇuj´ı vyˇreˇsit n´aslednost operac´ı a detekovat, ˇze dva objekty jsou v konfliktu.
ˇ SKOMAM 2012
-15-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad U nˇejak´eho pˇr´ıspˇevku XY m´ame poˇc´ıtadlo, kter´e ud´av´a, kolika lidem se pˇr´ıspˇevek l´ıbil. Z´aroveˇ n m˚ uˇze kdokoli sv˚ uj z´ajem zruˇsit stiskem tlaˇc´ıtka ’Dislike’. ˇ ıslo 4 je uloˇzeno na serveru A a je replikov´ano na serverech B a C. C´
ˇ SKOMAM 2012
-16-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad U nˇejak´eho pˇr´ıspˇevku XY m´ame poˇc´ıtadlo, kter´e ud´av´a, kolika lidem se pˇr´ıspˇevek l´ıbil. Z´aroveˇ n m˚ uˇze kdokoli sv˚ uj z´ajem zruˇsit stiskem tlaˇc´ıtka ’Dislike’. ˇ ıslo 4 je uloˇzeno na serveru A a je replikov´ano na serverech B a C. C´
ˇ SKOMAM 2012
-16-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad U nˇejak´eho pˇr´ıspˇevku XY m´ame poˇc´ıtadlo, kter´e ud´av´a, kolika lidem se pˇr´ıspˇevek l´ıbil. Z´aroveˇ n m˚ uˇze kdokoli sv˚ uj z´ajem zruˇsit stiskem tlaˇc´ıtka ’Dislike’. ˇ ıslo 4 je uloˇzeno na serveru A a je replikov´ano na serverech B a C. C´
ˇ SKOMAM 2012
-16-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad Pˇri kliknut´ı na tlaˇc´ıtko ’Like’ se odeˇsle na datab´azi ud´alost ’inkrementace obl´ıbenosti XY’. Pokud poˇzadavek zpracuje server A: inkrementuje se ˇc´ıslo 4 na 5 a vytvoˇr´ı se k ˇc´ıslu vektorov´e hodiny (A,1). Pokud po dalˇs´ım kliknut´ı (jin´ym uˇzivatelem) poˇzadavek opˇet zpracuje server A: inkrementuje se ˇc´ıslo 5 na 6 a vytvoˇr´ı se k ˇc´ıslu vektorov´e hodiny (A,2).
ˇ SKOMAM 2012
-17-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad Pˇri kliknut´ı na tlaˇc´ıtko ’Like’ se odeˇsle na datab´azi ud´alost ’inkrementace obl´ıbenosti XY’. Pokud poˇzadavek zpracuje server A: inkrementuje se ˇc´ıslo 4 na 5 a vytvoˇr´ı se k ˇc´ıslu vektorov´e hodiny (A,1). Pokud po dalˇs´ım kliknut´ı (jin´ym uˇzivatelem) poˇzadavek opˇet zpracuje server A: inkrementuje se ˇc´ıslo 5 na 6 a vytvoˇr´ı se k ˇc´ıslu vektorov´e hodiny (A,2).
ˇ SKOMAM 2012
-17-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad Pˇri kliknut´ı na tlaˇc´ıtko ’Like’ se odeˇsle na datab´azi ud´alost ’inkrementace obl´ıbenosti XY’. Pokud poˇzadavek zpracuje server A: inkrementuje se ˇc´ıslo 4 na 5 a vytvoˇr´ı se k ˇc´ıslu vektorov´e hodiny (A,1). Pokud po dalˇs´ım kliknut´ı (jin´ym uˇzivatelem) poˇzadavek opˇet zpracuje server A: inkrementuje se ˇc´ıslo 5 na 6 a vytvoˇr´ı se k ˇc´ıslu vektorov´e hodiny (A,2).
ˇ SKOMAM 2012
-17-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad Doch´az´ı k pravideln´emu vymˇen ˇov´an´ı informac´ı mezi servery. Hodnota i s vektorov´ymi hodinami se tedy rychle zpropaguje na dalˇs´ı servery. Pot´e dojde k v´ypadku serveru A.
ˇ SKOMAM 2012
-18-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad Doch´az´ı k pravideln´emu vymˇen ˇov´an´ı informac´ı mezi servery. Hodnota i s vektorov´ymi hodinami se tedy rychle zpropaguje na dalˇs´ı servery. Pot´e dojde k v´ypadku serveru A.
ˇ SKOMAM 2012
-18-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad Doch´az´ı k pravideln´emu vymˇen ˇov´an´ı informac´ı mezi servery. Hodnota i s vektorov´ymi hodinami se tedy rychle zpropaguje na dalˇs´ı servery. Pot´e dojde k v´ypadku serveru A.
ˇ SKOMAM 2012
-18-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad Dojdou dva paraleln´ı poˇzadavky na zmˇenu hodnoty obl´ıbenosti XY. Jeden poˇzadavek zpracuje server B: inkrementuje se ˇc´ıslo 6 na 7 a vytvoˇr´ı se k ˇc´ıslu vektorov´e hodiny (A,2)(B,1). Dalˇs´ı poˇzadavek zpracuje server C (tento poˇzadavek naopak ruˇs´ı pˇredchoz´ı ud´alost ’Like’): dekrementuje se ˇc´ıslo 6 na 5 a vytvoˇr´ı se k ˇc´ıslu vektorov´e hodiny (A,2)(C,1).
ˇ SKOMAM 2012
-19-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad Dojdou dva paraleln´ı poˇzadavky na zmˇenu hodnoty obl´ıbenosti XY. Jeden poˇzadavek zpracuje server B: inkrementuje se ˇc´ıslo 6 na 7 a vytvoˇr´ı se k ˇc´ıslu vektorov´e hodiny (A,2)(B,1). Dalˇs´ı poˇzadavek zpracuje server C (tento poˇzadavek naopak ruˇs´ı pˇredchoz´ı ud´alost ’Like’): dekrementuje se ˇc´ıslo 6 na 5 a vytvoˇr´ı se k ˇc´ıslu vektorov´e hodiny (A,2)(C,1).
ˇ SKOMAM 2012
-19-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad Na z´akladˇe hodnot vektorov´ych hodin lze detekovat, ˇze hodnoty ze server˚ u B a C jsou v paraleln´ıch vˇetv´ıch.
5 (A,1)
6 (A,2)
7 (A,2)(B,1)
ˇ SKOMAM 2012
5 (A,2)(C,1)
-20-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad Kdyˇz si servery B a C vz´ajemnˇe vymˇen´ı hodnoty obl´ıbenosti XY, pak mus´ıme b´yt schopni nˇejak sestavit skuteˇcnou hodnotu. Staˇc´ı, kdyˇz si zapamatujeme proveden´e operace nad hodnotou na serveru. Tyto operace se vˇzdy zapisuj´ı do tzv. log souboru kv˚ uli zotaven´ı pˇri p´adu serveru. Oba servery tedy sestav´ı z tˇechto operac´ı a p˚ uvodn´ı spoleˇcn´e hodnoty dvou paraleln´ıch verz´ı verzi novou a pˇriˇrad´ı v´ysledn´e hodnotˇe (6) vektorov´e hodiny (A,2)(B,1)(C,1). Kdyˇz se server A zotav´ı, nejprve porovn´a sv´e vektorov´e hodiny (A,2) s vektorov´ymi hodinami (A,2)(B,1)(C,1), a protoˇze jsou obsaˇzeny v nov´ych hodin´ach jeho soused˚ u, hodnota se jednoduˇse pˇrep´ıˇse a vektorov´e hodiny se aktualizuj´ı. ˇ SKOMAM 2012
-21-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad Kdyˇz si servery B a C vz´ajemnˇe vymˇen´ı hodnoty obl´ıbenosti XY, pak mus´ıme b´yt schopni nˇejak sestavit skuteˇcnou hodnotu. Staˇc´ı, kdyˇz si zapamatujeme proveden´e operace nad hodnotou na serveru. Tyto operace se vˇzdy zapisuj´ı do tzv. log souboru kv˚ uli zotaven´ı pˇri p´adu serveru. Oba servery tedy sestav´ı z tˇechto operac´ı a p˚ uvodn´ı spoleˇcn´e hodnoty dvou paraleln´ıch verz´ı verzi novou a pˇriˇrad´ı v´ysledn´e hodnotˇe (6) vektorov´e hodiny (A,2)(B,1)(C,1). Kdyˇz se server A zotav´ı, nejprve porovn´a sv´e vektorov´e hodiny (A,2) s vektorov´ymi hodinami (A,2)(B,1)(C,1), a protoˇze jsou obsaˇzeny v nov´ych hodin´ach jeho soused˚ u, hodnota se jednoduˇse pˇrep´ıˇse a vektorov´e hodiny se aktualizuj´ı. ˇ SKOMAM 2012
-21-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad Kdyˇz si servery B a C vz´ajemnˇe vymˇen´ı hodnoty obl´ıbenosti XY, pak mus´ıme b´yt schopni nˇejak sestavit skuteˇcnou hodnotu. Staˇc´ı, kdyˇz si zapamatujeme proveden´e operace nad hodnotou na serveru. Tyto operace se vˇzdy zapisuj´ı do tzv. log souboru kv˚ uli zotaven´ı pˇri p´adu serveru. Oba servery tedy sestav´ı z tˇechto operac´ı a p˚ uvodn´ı spoleˇcn´e hodnoty dvou paraleln´ıch verz´ı verzi novou a pˇriˇrad´ı v´ysledn´e hodnotˇe (6) vektorov´e hodiny (A,2)(B,1)(C,1). Kdyˇz se server A zotav´ı, nejprve porovn´a sv´e vektorov´e hodiny (A,2) s vektorov´ymi hodinami (A,2)(B,1)(C,1), a protoˇze jsou obsaˇzeny v nov´ych hodin´ach jeho soused˚ u, hodnota se jednoduˇse pˇrep´ıˇse a vektorov´e hodiny se aktualizuj´ı. ˇ SKOMAM 2012
-21-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad Kdyˇz si servery B a C vz´ajemnˇe vymˇen´ı hodnoty obl´ıbenosti XY, pak mus´ıme b´yt schopni nˇejak sestavit skuteˇcnou hodnotu. Staˇc´ı, kdyˇz si zapamatujeme proveden´e operace nad hodnotou na serveru. Tyto operace se vˇzdy zapisuj´ı do tzv. log souboru kv˚ uli zotaven´ı pˇri p´adu serveru. Oba servery tedy sestav´ı z tˇechto operac´ı a p˚ uvodn´ı spoleˇcn´e hodnoty dvou paraleln´ıch verz´ı verzi novou a pˇriˇrad´ı v´ysledn´e hodnotˇe (6) vektorov´e hodiny (A,2)(B,1)(C,1). Kdyˇz se server A zotav´ı, nejprve porovn´a sv´e vektorov´e hodiny (A,2) s vektorov´ymi hodinami (A,2)(B,1)(C,1), a protoˇze jsou obsaˇzeny v nov´ych hodin´ach jeho soused˚ u, hodnota se jednoduˇse pˇrep´ıˇse a vektorov´e hodiny se aktualizuj´ı. ˇ SKOMAM 2012
-21-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad Kdyˇz si servery B a C vz´ajemnˇe vymˇen´ı hodnoty obl´ıbenosti XY, pak mus´ıme b´yt schopni nˇejak sestavit skuteˇcnou hodnotu. Staˇc´ı, kdyˇz si zapamatujeme proveden´e operace nad hodnotou na serveru. Tyto operace se vˇzdy zapisuj´ı do tzv. log souboru kv˚ uli zotaven´ı pˇri p´adu serveru. Oba servery tedy sestav´ı z tˇechto operac´ı a p˚ uvodn´ı spoleˇcn´e hodnoty dvou paraleln´ıch verz´ı verzi novou a pˇriˇrad´ı v´ysledn´e hodnotˇe (6) vektorov´e hodiny (A,2)(B,1)(C,1). Kdyˇz se server A zotav´ı, nejprve porovn´a sv´e vektorov´e hodiny (A,2) s vektorov´ymi hodinami (A,2)(B,1)(C,1), a protoˇze jsou obsaˇzeny v nov´ych hodin´ach jeho soused˚ u, hodnota se jednoduˇse pˇrep´ıˇse a vektorov´e hodiny se aktualizuj´ı. ˇ SKOMAM 2012
-21-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad Kdyˇz si servery B a C vz´ajemnˇe vymˇen´ı hodnoty obl´ıbenosti XY, pak mus´ıme b´yt schopni nˇejak sestavit skuteˇcnou hodnotu. Staˇc´ı, kdyˇz si zapamatujeme proveden´e operace nad hodnotou na serveru. Tyto operace se vˇzdy zapisuj´ı do tzv. log souboru kv˚ uli zotaven´ı pˇri p´adu serveru. Oba servery tedy sestav´ı z tˇechto operac´ı a p˚ uvodn´ı spoleˇcn´e hodnoty dvou paraleln´ıch verz´ı verzi novou a pˇriˇrad´ı v´ysledn´e hodnotˇe (6) vektorov´e hodiny (A,2)(B,1)(C,1). Kdyˇz se server A zotav´ı, nejprve porovn´a sv´e vektorov´e hodiny (A,2) s vektorov´ymi hodinami (A,2)(B,1)(C,1), a protoˇze jsou obsaˇzeny v nov´ych hodin´ach jeho soused˚ u, hodnota se jednoduˇse pˇrep´ıˇse a vektorov´e hodiny se aktualizuj´ı. ˇ SKOMAM 2012
-21-
2/2/2012
Techniky . Vektorov´ e hodiny
Pˇr´ıklad Kdyˇz si servery B a C vz´ajemnˇe vymˇen´ı hodnoty obl´ıbenosti XY, pak mus´ıme b´yt schopni nˇejak sestavit skuteˇcnou hodnotu. Staˇc´ı, kdyˇz si zapamatujeme proveden´e operace nad hodnotou na serveru. Tyto operace se vˇzdy zapisuj´ı do tzv. log souboru kv˚ uli zotaven´ı pˇri p´adu serveru. Oba servery tedy sestav´ı z tˇechto operac´ı a p˚ uvodn´ı spoleˇcn´e hodnoty dvou paraleln´ıch verz´ı verzi novou a pˇriˇrad´ı v´ysledn´e hodnotˇe (6) vektorov´e hodiny (A,2)(B,1)(C,1). Kdyˇz se server A zotav´ı, nejprve porovn´a sv´e vektorov´e hodiny (A,2) s vektorov´ymi hodinami (A,2)(B,1)(C,1), a protoˇze jsou obsaˇzeny v nov´ych hodin´ach jeho soused˚ u, hodnota se jednoduˇse pˇrep´ıˇse a vektorov´e hodiny se aktualizuj´ı. ˇ SKOMAM 2012
-21-
2/2/2012
Techniky . Vektorov´ e hodiny
Vektorov´e hodiny Pˇrekvapivˇe se tato metoda d´a aplikovat na mnoho operac´ı ve webov´em prostˇred´ı: koment´aˇre, pˇriˇrazov´an´ı do skupin (n´akupn´ı koˇs´ık).
ˇ SKOMAM 2012
-22-
2/2/2012
Techniky . Vektorov´ e hodiny
Vektorov´e hodiny - nev´yhody Vektorov´e hodiny mohou nepˇr´ıjemˇe nar˚ ustat, coˇz nen´ı ˇz´adouc´ı. Proto doch´az´ı k odstraˇ nov´an´ı star´ych“ ˇc´ast´ı hodin. ” K tomu se pouˇz´ıv´a ˇcasov´e raz´ıtko pro jednotliv´e ˇc´asti. Je nutn´e stanovit, jak bude prob´ıhat sluˇcov´an´ı paraleln´ıch verz´ı. V uved´em pˇr´ıkladu m˚ uˇze sluˇcov´an´ı prob´ıhat automaticky; nˇekdy ale mohou b´yt konflikty komplikovanˇejˇs´ı, takˇze je nutn´y z´asah uˇzivatele.
ˇ SKOMAM 2012
-23-
2/2/2012
Techniky . Vektorov´ e hodiny
Vektorov´e hodiny - nev´yhody Vektorov´e hodiny mohou nepˇr´ıjemˇe nar˚ ustat, coˇz nen´ı ˇz´adouc´ı. Proto doch´az´ı k odstraˇ nov´an´ı star´ych“ ˇc´ast´ı hodin. ” K tomu se pouˇz´ıv´a ˇcasov´e raz´ıtko pro jednotliv´e ˇc´asti. Je nutn´e stanovit, jak bude prob´ıhat sluˇcov´an´ı paraleln´ıch verz´ı. V uved´em pˇr´ıkladu m˚ uˇze sluˇcov´an´ı prob´ıhat automaticky; nˇekdy ale mohou b´yt konflikty komplikovanˇejˇs´ı, takˇze je nutn´y z´asah uˇzivatele.
ˇ SKOMAM 2012
-23-
2/2/2012
Z´ avˇ er
Z´avˇer NoSQL Motivac´ı pro datab´azov´e syst´emy vyuˇz´ıvaj´ıc´ı eventu´aln´ı konzistenci jsou jednoduch´a ˇsk´alovatelnost a dostupnost. Tyto datab´azov´e syst´emy jsou z´akladem mnoha velk´ych webov´ych aplikac´ı (soci´aln´ı s´ıtˇe, on-line hry, e-shopy, zpravodajsk´e weby).
ˇ SKOMAM 2012
-24-
2/2/2012
Z´ avˇ er
Z´avˇer NoSQL Motivac´ı pro datab´azov´e syst´emy vyuˇz´ıvaj´ıc´ı eventu´aln´ı konzistenci jsou jednoduch´a ˇsk´alovatelnost a dostupnost. Tyto datab´azov´e syst´emy jsou z´akladem mnoha velk´ych webov´ych aplikac´ı (soci´aln´ı s´ıtˇe, on-line hry, e-shopy, zpravodajsk´e weby).
ˇ SKOMAM 2012
-24-
2/2/2012
Z´ avˇ er
Z´avˇer NoSQL Motivac´ı pro datab´azov´e syst´emy vyuˇz´ıvaj´ıc´ı eventu´aln´ı konzistenci jsou jednoduch´a ˇsk´alovatelnost a dostupnost. Tyto datab´azov´e syst´emy jsou z´akladem mnoha velk´ych webov´ych aplikac´ı (soci´aln´ı s´ıtˇe, on-line hry, e-shopy, zpravodajsk´e weby).
ˇ SKOMAM 2012
-24-
2/2/2012
D´ıky za pozornost! Google (BigTable) Amazon (Amazon DynamoDB) Facebook Last.fm Twitter BBC (CouchDB) Wiley, Springer, Oxford press, Elsevier (MarkLogic) SourceForge, Guardian (MongoDB) The New York Times (MongoDB) ˇ SKOMAM 2012
-25-
2/2/2012