Vlastnosti ACID. Příklad převodu peněz

Rozměr: px
Začít zobrazení ze stránky:

Download "Vlastnosti ACID. Příklad převodu peněz"

Transkript

1 Téma 12 Transakce, řízení souběhu a obnova dat Obsah 1. Transakce a jejich stavy 2. Souběh transakcí 3. Sériovost, serializovatelnost, obnovitelnost 4. Řízení souběhu 5. Úrovněkonzistence 6. Řídicí protokoly pro práci se zámky 7. Uváznutí transakcí, detekce, prevence a zotavení 8. Obnova dat po havárii 9. Postupy obnovy 10. Obnova založená na protokolech 11. Kontrolní body (check-pointing) verze: Jaro 2014 Transakce a řízení souběhu 1 Pojem transakce Transakceje krokem vykonáváníprogramu, který přistupuje k datům v databázi a případně je i modifikuje Z abstraktního pohledu uživatelského programu na DBMS, za transakci považujeme logicky svázanou série čtecích a zápisových operací Každá transakce musí"vidět" databázi v konzistentním stavu Během provádění transakce může být databáze dočasně nekonzistentní Musíbýt zaručeno, že sekvence celéřady akcí, z nichžse transakce skládá, proběhne atomicky jako celistvý Kdyžtransakce skončíúspěšně(tj. výsledky jsou zapamatovány), databáze musí být opět konzistentní Pokud transakce zhavaruje, konzistence musí zůstat zachována Více transakcí může probíhat souběžně(paralelně) Hlavnídva problémy, ježje třeba řešit: Havárie různých typů: např. hardwarové chyby, problémy OS Souběh transakcí při vícenásobném přístupu (uváznutí...) verze: Jaro 2014 Transakce a řízení souběhu 2 Vlastnosti ACID K zachování konzistence a integrity databáze musí transakční mechanismus zajistit: Atomicitu(Atomicity): Buďse správnězobrazído databáze výsledky všech dílčích operací nebo se nezapíší žádné změny Konzistence(Consistency): Transakce samotná neporuší konzistenci databáze Izolovanost(Isolation): Přestože může běžet více transakcí paralelně, žádná z transakcí nesmí ovlivnit výsledek jiné souběžně prováděné transakce. Mezivýsledky transakce musí být skryté a ostatní transakce nesmí tyto mezivýsledky vidět Tzn., pro každý pár transakcí T i a T j musíplatit, že transakci T i je jeví databáze jakoby transakce T j jižskončila nebo ještěnezačala Trvalost(Durability):Všechny změny dat, kterétransakce provedla, se po jejím úspěšném ukončenípromítnou do databáze a jižnemohou být ztraceny ideálně ani při havárii systému verze: Jaro 2014 Transakce a řízení souběhu 3 Příklad převodu peněz Transakce k převodu 500 Kčz účtu A na B: 1. read(a) 4. read(b) 2. A:= A B:= B write(a) 6. write(b) Konzistence Součet A a B se MUSÍtransakcízachovat Atomicita Pokud transakce selže mezi kroky 3 a 6, systém MUSÍzaručit, že v do dat se nepromítne žádná změna (jinak by se narušila konzistence) Izolovanost Jestliže by mezi kroky 3 a 6 přistoupila jinátransakce k týmžúčtům, nalezla by je v nekonzistentním stavu (suma A + Bbude menší, nežby měla být), což je nepřípustné Izolace lze snadno dosáhnout tak, že transakcím bude dovoleno běžet výhradně sériově, tj., jedna po druhé Sériovéprováděnítransakcívšak výrazněsnižuje průchodnost a efektivitu DBMS Trvalost Jakmile je uživatel (tj. uživatelův program volajícídatabázový stroj) informován o tom, že 500 Kčbylo převedeno, tento fakt zůstane zachycen v databázi natrvalo verze: Jaro 2014 Transakce a řízení souběhu 4

2 Stavy transakcí Aktivní počátečníi průběžný stav; transakce se nacházív tomto stavu během svého vykonávání(běhu) Částečně potvrzená(partially committed) poté, kdy proběhla poslední dílčí operace Chybná(Failed) poté, co se zjistí, že nelze pokračovat v normálním provádění Zrušená(Aborted) stav, kdy transakce odstranívšechny uskutečněnézměny a databáze je uvedena do stavu před zahájením transakce (rollback) Potvrzená(Committed) po úspěšném ukončení, kdy všechny změny jsou natrvalo zapsány v databázi verze: Jaro 2014 Transakce a řízení souběhu 5 Implementace atomicity a trvalosti Komponenta DBMS zvaná správce zotavení implementuje podporu atomicity a trvalosti Primitivní metoda stínové databáze: Předpokládejme, že běží vždy jen jedna transakce Ukazatel označovaný db_pointer vždy odkazuje na momentálně konzistentní databázi Všechny aktualizace se provádějína stínové kopiidatabáze a db_pointerbude změněn teprve poté, co všechny akce se stínovou kopií úspěšně skončily a byly zobrazeny na disku Pokud transakce zhavaruje, bude se nadále používat původní konzistentníkopie odkazovanáukazatelem db_pointer a stínovákopie se smaže Předpoklad: disk nezhavaruje Extrémně neefektivní pro velké databáze (proč?) Neřešíotázky souběhu transakcí Existujílepšíschémata db_pointer Původní databáze db_pointer Původní databáze (ke zrušení) Nováverze databáze Před aktualizací Po aktualizaci verze: Jaro 2014 Transakce a řízení souběhu 6 Souběh transakcí, rozvrhování akcí Souběžnétransakce zvyšují průchodnost systému a redukují průměrný čas odpovědi při sériovém zpracováníkrátkétransakce čekajína dokončenídlouhých (viz konvojový efekt u FCFS ) Transakce se obvykle implementují jako samostatné procesy nebo vlákna Rozvrh (plán)operacív transakcích je posloupnost udávající chronologické pořadí dílčích operací v souběžně prováděných transakcích rozvrh musízahrnout všechny operace všech souběžných transakcí musí zachovat pořadí, v němž jsou prováděny operace každé jednotlivé transakce Transakce, kteráskončila bezchybně, provede na závěr operaci commit, kterou potvrdí svůj úspěch Transakce, kterázhavaruje, bude volat operaci abort, která značí potřebu obnovy původního stavu databáze verze: Jaro 2014 Transakce a řízení souběhu 7 Příklady korektních rozvrhů Nechť převádí50 z účtu A na B, a převádí10% zůstatku z A na B S 1 a S 2 jsou tzv. sériové rozvrhy S 3 nenísériový, ale je ekvivalentnísériovému S 1 či S 2 Rozvrh S 3 Rozvrh S 1 Rozvrh S 2 Všimněte si různých výsledkůrozvrhů S 1 a S 2 Všechny uvedenérozvrhy zachovávajíkonzistenci (A+ B =const.) verze: Jaro 2014 Transakce a řízení souběhu 8

3 Chybný rozvrh Rozvrh S 4 nezachováváhodnotu (A + B) a tím porušuje požadavek konzistence Rozvrh S 4 Serializovatelnost (uspořádatelnost) Základnípředpoklad každájednotlivátransakce zachovává konzistenci databáze Sériové vykonávání transakcí tedy zachovává konzistenci také Rozvrh (uvažující možný souběh) je serializovatelný, jeli ekvivalentní některému sériovému rozvrhu Budeme uvažovat pouze operace reada write(služby OS) a budeme ignorovat všechny ostatní Transakce mohou s daty provádět libovolnédalšíoperace ve svých lokálních proměnných a vyrovnávacích pamětech mezi read a write "Naše" rozvrhy budou tvořeny jen operacemi read a write verze: Jaro 2014 Transakce a řízení souběhu 9 verze: Jaro 2014 Transakce a řízení souběhu 10 Vzájemně neslučitelné operace Operace (instrukce) I i a I j patřícík transakcím T i a T j jsou vzájemně neslučitelné(konfliktní) právě tehdy, když existuje datovápoložka (záznam) Q, k nížpřistupují I i i I j, a aspoňjedna z těchto operacído Qzapisuje 1. I i = read(q), I j = read(q) nekonfliktní 2. I i = read(q), I j = write(q) konfliktní 3. I i = write(q), I j = read(q) konfliktní 4. I i = write(q), I j = write(q) konfliktní Konflikt mezi I i a I j si vynucuje časovéuspořádání operací I i a I j. Pokud I i a I j následujív nějakém rozvrhu a nejsou ve vzájemném konfliktu, pak výsledek bude stejný, i kdyžbudou vzájemně prohozeny Serializovatelný rozvrh Jestliže rozvrh S lze transformovat na rozvrh S sérií vzájemných záměn nekonfliktních operací, pak se S a S označují za ekvivalentní vůči konfliktu Rozvrh pak označujeme jako serializovatelný, je-li ekvivalentní vůči konfliktu se sériovým rozvrhem Rozvrh S 3 lze převést na sériový S 6, kde sérií vzájemných prohození nekonfliktních operací S 3 je tedy serializovatelný rozvrh Rozvrh S 5 serializovatelný není Nelze najít posloupnost vhodných prohození nekonfliktních operací tak, aby vznikl sériový rozvrh T 3 T 4 nebo T 3 T 4 verze: Jaro 2014 Transakce a řízení souběhu 11 verze: Jaro 2014 Transakce a řízení souběhu 12

4 Příklad serializace Příklad: r 1, w 1 operace transakce 1, r 2, w 2 operace transakce 2 S = r 1 (A), w 1 (A), r 2 (A), w 2 (A), r 1 (B), w 1 (B), r 2 (B), w 2 (B) r 1 (B) w 2 (A) r 1 (B) r 2 (A) w 1 (B) w 2 (A) S = r 1 (A), w 1 (A), r 1 (B), w 1 (B); r 2 (A), w 2 (A), r 2 (B), w 2 (B) verze: Jaro 2014 Transakce a řízení souběhu 13 Test serializovatelnosti Uvažme rozvrh jistémnožiny transakcí,,..., T n Precedenční graf je orientovaný graf, kde vrcholy jsou transakce a hrana vede z T i do T j, když T i a T j jsou v konfliktu a transakce T i přistoupila ke konfliktním datům dříve Ke hranám se obvykle připisuje označení datové položky způsobující konflikt Příklad: r(a) = read(a) w(a) = write(a) T 3 T 4 T 5 r(x) r(y) r(z) r(v) r(w) r(y) w(y) w(z) r(u) r(u) w(u) r(y) w(y) r(z) w(z) verze: Jaro 2014 Transakce a řízení souběhu 14 T 3 Z Z Y, Z Y T 4 A Y B T 5 Test serializovatelnosti (pokr.) Rozvrh je serializovatelný právě tehdy, jeli precedenční graf acyklický Algoritmy na detekci cyklů (Téma 5) majíčasovou složitost n 2, kde n je počet vrcholů grafu Existujíi algoritmy se složitostí n+ e, kde epočet hran Je-li precedenčnígraf acyklický, pak sériovépořadítransakcílze určit tzv. topologickým řazením grafu Je to lineárnířazení, v němžkaždý uzel předcházívšechny uzly, k nimžvedou jeho výstupní hrany. Topologické řazení není jednoznačné Např., topologickéřazenípro rozvrh z předchozí stránky může být T 5 T 3 T 4 Existují nějaká jiná řazení? Najděte je! verze: Jaro 2014 Transakce a řízení souběhu 15 T i T j T k T j T m T 3 Z Z T i T m Y Y, Z T 4 T k T i T k T j T m Y T 5 Obnovitelné rozvrhy Vzhledem k tomu, že obvykle nelze zabránit chybovým stavům souběžných transakcí, je třeba zajistit obnovu výchozího stavu Obnovitelný rozvrh Jestliže transakce T j čte data dříve modifikovanátransakcí T i, pak potvrzení(commit) operace T i musí předcházet potvrzení(commit) operace T j. Rozvrh S 11 by nebyl obnovitelný, pokud by transakce T 9 potvrdila svůj úspěch bezprostředně po čtení Kdyby transakce T 8 zhavarovala a byla nucena provést abort, T 9 by četla a možnái prezentovala uživateli databázi v nekonzistentním stavu DBMS mj. musí zajistit, že rozvrhy budou obnovitelné verze: Jaro 2014 Transakce a řízení souběhu 16

5 Kaskáda návratů(rollbacks) Havárie jednétransakce může způsobit nutnost návratu databáze do výchozího stavu pro celou sérii transakcí. Taková situace se nazývá kaskáda návratů(cascaded rollback) Rozvrh, kde žádnáz transakcídosud nepotvrdila úspěšné ukončení Pokud 0 zhavaruje, musídojít k návratu i pro 1 a 2 Dochází k velkým ztrátám Nekaskádovérozvrhyjsou rozvrhy, kde nedochází ke kaskádovým návratům Pro každý pár transakcí T i a T j takových, že T j čte data modifikovanádříve transakcí T i, musíoperace potvrzenív T i (commit)předcházet operaci readv transakci T j. Každý nekaskádový rozvrh je též obnovitelný Je žádoucí tvořit jen nekaskádové rozvrhy bohužel ne vždy to jde verze: Jaro 2014 Transakce a řízení souběhu 17 Řízení souběhu DBMS musíposkytovat mechanismy, kterézajistí, že všechny rozvrhy při paralelním běhu transakcí budou serializovatelné, obnovitelné a (pokud možno) nekaskádové Strategie sériových rozvrhů, kdy běží transakce jedna po druhé sice splňuje tyto požadavky, ale systém mášpatnou průchodnost Cíl: vyvinout protokoly pro řízení souběhu, které zajistí serializovatelnost Protokoly musídovolit souběh za současnétvorby serializovatelných, obnovitelných a nekaskádových rozvrhů Protokoly obvykle nezkoumajíprecedenčnígraf. Místo toho formulujízávaznápravidla vylučujícírozvrhy, kterénejsou serializovatelné Protokoly pro řízenísouběhu se navzájem lišístupněm paralelismu a velikostípůsobených režijních ztrát Testy serializovatelnosti se explicitněneaplikují, pouze pomáhají pochopit, proč je ten který protokol korektní verze: Jaro 2014 Transakce a řízení souběhu 18 Úrovně konzistence Některé aplikace se spokojí s nepřesnými výsledky, což dovoluje, aby rozvrhy nemusely být serializovatelné Např. transakce, kteráchce zjistit přibližný součet zůstatkůna všech účtech Takové transakce nemusí být serializovatelné vůči transakcím ostatním Kompromis mezi přesností a výkonností Úrovně konzistence podle standardu SQL-92 Serializable implicitní úroveň(nejpřísnější) Repeatable read smí se číst jen potvrzené záznamy (commit), opakované čtení téhož záznamu musí dodat tutéž hodnotu. Avšak transakce nemusí být plně serializovatelná může např. najít jen některézáznamy vloženéjinou transakcí, ale ne nutně všechny Read committed smíse číst jen potvrzenézáznamy, ale opakovanéčtenínemusívždy vrátit totéž Read uncommitted lze číst i nepotvrzené záznamy Nižšíúrovněkonzistence lze použít pro získávánípřibližných informací verze: Jaro 2014 Transakce a řízení souběhu 19 Protokoly využívající zamykání Zamykacímechanismy k řízenísouběhu jsou tytéžjako u kritických sekcí Položky dat lze zamykat ve dvou režimech: 1. výlučný exclusive(x) režim: Položka je plněuzamčena a může být vlastníkem zámku čtena i zapisována. X-zámek nad datovou položkou se zakládá pomocí"instrukce" lock-x 2. sdílený shared(s) režim: Položka se smípouze číst S-zámek se zakládá pomocí"instrukce" lock-s Matice kompatibility zámků S X S true false X false false Transakce smípřistoupit k položce (zamknout ji), jen pokud požadovaný režim zámku je kompatibilnís existujícími zámky vlastněnými jinými transakcemi nad stejnou položkou Libovolný počet transakcímůže současnězískat S-zámek, avšak transakce "držící" X-zámek brání všem ostatním v přístupu k položce Pokud zámek nelze získat, transakce je nucena čekat na uvolnění položky. Poté je přístup umožněn Je to tatážsituace jako u semaforůa dalších synchronizačních mechanismů verze: Jaro 2014 Transakce a řízení souběhu 20

6 Protokoly využívající zamykání(pokr.) Příklad transakce se zamykáním: : lock-s(a); read(a); unlock(a); lock-s(b); read(b); unlock(b); display(a+b); Uvedená posloupnost zamykání není dostatečná k zaručení serializovatelnosti pokud by Aa/nebo Bbylo změněno jinou transakcí, zobrazený součet by byl chybný Zamykací protokol je množina pravidel, která se aplikují při operacích lock-s, lock-x a unlock Zamykací protokoly omezují množinu přípustných rozvrhů Zamykání může být nebezpečné Nebezpečí uváznutí(deadlock) Nelze kompletněvyřešit transakce budou musíbýt občas rušeny ("zabíjeny") a stav databáze obnovován Nebezpečí stárnutí(starvation) Transakce je opakovaně rušena a je vynucováno obnovování kvůli uváznutí Manažer souběhu je schopen vhodnými prostředky zabránit stárnutí verze: Jaro 2014 Transakce a řízení souběhu 21 Dvoufázový zamykací protokol Jde o protokol, který zajišťuje rozvrhy ekvivalentnívůči konfliktu s rozvrhy sériovými Fáze 1: Růst transakce smějí pouze zamykat a nemohou zámky uvolňovat Fáze 2: Smršťování transakce smějí zámky pouze uvolňovat a nemohou nic dalšího zamykat Protokol zajišťuje serializovatelnost. Dá se dokázat, že transakce poběží v sérii podle pořadí dosahování svých zamykacích bodů(tj. bodů, kdy transakce získaly svůj poslední potřebný zámek) verze: Jaro 2014 Transakce a řízení souběhu 22 Dvoufázový zamykací protokol (pokr.) Dvoufázový zamykacíprotokol nevylučujeuváznutía neobsahuje ani prevenci vzniku kaskádových návratů K tomu účelu byl vyvinut protokol zvaný striktní dvoufázové zamykání Transakce musí držet všechny své exkluzivní zámky, dokud nepotvrdí své úspěšné ukončení(commit) nebo nezhavaruje (abort) Rigoróznídvoufázovézamykáníje ještěpřísnější: Všechny(tj. Xi S) zámky musítransakce držet do svého úspěšného konce nebo havárie (commit/abort). V tomto protokolu jsou transakce serializovány v pořadí, jak končí Počet zámků verze: Jaro 2014 Transakce a řízení souběhu 23 Automatické získávání zámků Transakce T i užívájen databázové operace read/write bez explicitního zamykání, které je součástí těchto operací Operace read(d) je implementována jako read_os a write_os značí základní operace poskytované OS if T i vlastnízámek Dthen read_os(d) else begin ifněkterájinátransakce drží lock-xna Dthen wait; přiřaďtransakci T i lock-sna D; read_os(d) end Operace write(d) se implementuje jako if T i vlastní lock-xna Dthen write_os(d) else begin if některá jiná transakce drží jakýkoliv zámek na D then wait; if T i vlastní lock-sna D then změň("povyš") zámek z lock-sna Dna lock-x else přiřaďtransakci Ti lock-xna D; write_os(d) end; Všechny zámky jsou uvolněny jako součást commit/abort verze: Jaro 2014 Transakce a řízení souběhu 24

7 Implementace zamykání Správu zámkůmázpravidla ve svékompetenci samostatný výpočetní proces (či vlákno) správce zámků (lock manager), jemužvšechny transakce zasílajížádosti o přidělení a uvolňování zámků Žádající transakce čeká na odpověď od správce zámků Správce zámků odpovídá na žádost o přidělení zámku zasláním zprávy o přidělenízámku v případěúspěchu, nebo zprávy se žádostío návrat (obnovení) dat v případě, že je detekováno uváznutí Správce zámkůse opíráo tabulku zámků Obsahuje přidělené zámky a čekající nevyřízené žádosti U přiděleného zámku či žádosti se pamatuje i typ zámku (X/S) Tabulka zámků je zpravidla implementována jako hašovaná tabulka v operačnípaměti, indexovanájménem datovépoložky podléhající zamykání Tabulka zámků Novážádost o přidělenízámku je zařazena na konec fronty žádostía je ihned vyřízena, pokud je kompatibilnís existujícími zámky k příslušné datové položce Žádost o odemčení způsobí smazánízámku. Pak je prohledán zbytek fronty, kdy se zjišťuje, zda lze přidělit zámky čekajícím žádostem Kdyžse transakce ruší(abort), všechny přidělené zámky i čekající žádosti se smažou. Dále se postupuje jako při odemykání zámků k zefektivněnítéto operace může správce zámkůudržovat i seznam zámků přidělených dané transakci verze: Jaro 2014 Transakce a řízení souběhu 25 verze: Jaro 2014 Transakce a řízení souběhu 26 Grafově orientované protokoly Grafovéprotokoly jsou alternativou k dvoufázovému zamykání Zavedeme částečnéuspořádání na množině = {d 1, d 2,..., d h } datových položek, s nimižsouběžnétransakce potřebují pracovat Jestliže d i d j,pak transakce používajícíjak d i tak i d j musí přistoupit k d i před přístupem k d j. Na množinu lze nynípohlížet jako na orientovaný acyklický graf, zvaný graf databáze Srovnejme s dříve vysvětleným principem "číslovánísdílených prostředků" u kritických sekcí, který zabraňuje uváznutí Jednoduchým grafovým protokolem je stromový protokol (tree-protocol) verze: Jaro 2014 Transakce a řízení souběhu 27 Stromový protokol G D 1. Uvažujme jen X-zámky 2. Jako prvnímůže transakce T i zamknout kteroukoliv položku dat. Následněpoložka Qsmíbýt transakcí T i uzamčena pouze tehdy, je-li některý předchůdce položky Q ve stromu též uzamčen touto transakcí 3. Odmykat lze kdykoliv 4. Pokud byla položka transakcí T i jednou zamčena a pak odemčena, transakce T i se nesmíznovu pokusit o zamčenítéže položky verze: Jaro 2014 Transakce a řízení souběhu 28 H J B E A I C F

8 Vlastnosti stromového protokolu Výhody Stromový protokol zabezpečuje serializovatelnost a odstraňuje riziko uváznutí Odmykánízáznamůmůže proběhnout dříve nežu dvoufázového zamykání kratší čekání, lepší průchodnost, vyšší stupeň paralelismu Díky neexistenci rizika uváznutí není potřeba návrat (rollback) Nevýhody Protokol nezaručuje obnovitelnost ani odolnost vůči kaskádním návratům Je tedy nutno zavést vzájemnézávislosti mezi operacemi commit, aby se zajistila obnovitelnost Vlivem toho, transakce budou muset držet zámky i na záznamech, které již nepotřebují, což vede k částečné degradaci uvedených výhod Některérozvrhy nerealizovatelnépři dvoufázovém zamykání jsou pro stromový protokol přípustné, ale také naopak verze: Jaro 2014 Transakce a řízení souběhu 29 Granularita zamykání Data mají různou důležitost a velikost celádatabáze, relace a s níspojený index, jen index, jeden záznam,... Mátedy smysl definovat hierarchii působnosti zámků, kde "jemnější zámky" jsou zanořeny (podřízeny) hrubším Hierarchii lze znázornit stromem POZOR: nejde o stromový protokol, ač hierarchie má tvar stromu Kdyžtransakce explicitnězamkne některý uzel stromu, pak se implicitněa automaticky zamknou všechny podřízenépoložky, a to ve stejném režimu zamykání verze: Jaro 2014 Transakce a řízení souběhu 30 Mějme 2 transakce: : write(x) write(y) Rozvrh s uváznutím Uváznutí : write(y) write(x) Protokoly s prevencí uváznutí zajistí, že k uváznutí nikdy nedojde Základní strategie prevence jsou: Požaduj, aby transakce předem zamkla vše, co bude potřebovat pro svoji budoucí práci dvoufázové zamykání Částečné uspořádání datových položek grafový protokol Ne vždy je lze použít Vždy limitují průchodnost verze: Jaro 2014 Transakce a řízení souběhu 31 Pokročilé strategie prevence uváznutí Strategie s časovými značkami na počátku je každé transakci přiřazena časová značka Nepreemptivní strategie wait-die(čekej-zahyň) Staršítransakce smíčekat, dokud mladšítransakce neuvolnídrženou datovou položku. Naopak, mladšítransakce nikdy nečeká, místo toho volá abort a obnoví data do stavu před svým spuštěním (zahyne) Transakce může zahynout mnohokrát, než se jí podaří získat data Preemptivní strategie wound-wait(poraň-čekej) Starší transakce poraní(= vynutí obnovu stavu - rollback) mladší transakci, místo čekání na ni. Mladší transakce však mohou na starší čekat Obecně způsobuje méně návratů než strategie wait-die Pro obě strategie platí Transakce, kteréobnovily stav dat, jsou restartovány se svými původními časovými značkami. Tím je zaručeno, že starší(tj. dříve zahájené) transakce budou mít přednost před mladšími, čímžje odstraněno riziko stárnutí. Strategie založené na časových prodlevách (timeout) Transakce čeká na zámek nejvýše určitou dobu Kdyžse nedočká, voláabort(a tím obnovu dat) Časové omezení brání vzniku uváznutí Snadnáimplementace, avšak hrozístárnutí. Obtížné je stanovení dobré hodnoty časového omezení verze: Jaro 2014 Transakce a řízení souběhu 32

9 Detekce uváznutí a zotavení Uváznutí se detekuje pomocí čekacího grafu ( Téma 5) Vrcholy jsou transakce T i Orientovanáhrana T i T j značí, že T i čeká, až T j odemkne datovou položku Je-li v čekacím grafu cyklus, došlo k uváznutí Algoritmus detekce byl popsán v dříve (Téma 5) Když se detekuje uváznutí Je nutno nalézt obětnítransakci a vnutit jíabort(a tím i obnovu dat). Obětuje se obvykle nejmladšítransakce, tj. ta, která ještě neudělala mnoho změn Transakce mohou stárnout, bude-li za oběťvybírána vždy nejmladšítransakce. Proto je vhodnédo kritéria výběru oběti zahrnout i počet touto transakcí dosud provedených návratů Kterádata se ale majíobnovovat? Totálníobnova transakci úplnězruší, data se vrátído počátečního stavu, a transakce se restartuje. To může být velmi nákladné Efektivnějšíje, kdyžse transakce "vracípostupně" do stavu, kdy uváznutízmizí. Tento postup je ale náročný na evidenci krokůa změn transakcí provedených Používáse např. tzv. metoda kontrolních bodů(checkpointing) verze: Jaro 2014 Transakce a řízení souběhu 33 Klasifikace chybových stavů Chyby transakcí Logickéchyby: vlivem nějakévnitřnílogicképodmínky nemůže transakce úspěšně skončit Systémovéchyby: DBMS musípřerušit aktivnítransakci kvůli vzniku chybového stavu, který je detekován (např. uváznutí) Havárie systému Výpadek napájení nebo jiná chyba hardware či selhání podloženého operačního systému způsobí havárii Předpoklad: obsah persistentní paměti nebude havárií narušen DBMSdělajívětšinou celou řadu kontrolních operacís cílem zabránit poškození dat na disku (nebo aspoň jejich konzistence) Havárie disku: Chyba či havárie diskovéjednotky způsobízničeníčásti nebo dokonce celého obsahu disku Předpoklad: Destrukce je detekovatelná diskové jednotky používají kontrolní součty k detekci chyb RAID (Redundant Array of Independent Disks) pole disků verze: Jaro 2014 Transakce a řízení souběhu 34 Obnova konzistentního stavu databáze Metoda stínové databáze je velmi neefektivní Potřeba lepších řešení Algoritmy obnovy (zotavení) Způsoby a techniky, jak zajistit konzistenci databáze podmíněnou atomicitou transakcía trvalostíjejich výsledkůi v případě existence chyb a havárií Algoritmy obnovy mají dvě komponenty 1. Akce prováděné během běžného zpracování transakcí, které poskytnou dostatek informací nutných k zotavení v případě selhání 2. Akce, kterépo vzniku chybovésituace spolehlivědovedou databázi do stavu, který zaručí konzistenci, atomicitu transakcí a trvalost konzistentního stavu Typy pamětí Volatilní paměť obsah nepřežije havárii systému Příklady: cache, operační(primární) paměť Persistentní paměť obsah zůstane zachován, i když systém zhavaruje Příklady: disk, mg. páska, flashpaměť, CD-ROM, bateriízálohovanáram Stabilní paměť teoretickáideální(a tudížneexistující) paměť, jejížobsah přežije všechny chyby a havárie Aproximuje se pomocívícenásobných kopiídat ukládaných na různápersistentnímedia např. redundantní disková pole RAID verze: Jaro 2014 Transakce a řízení souběhu 35 verze: Jaro 2014 Transakce a řízení souběhu 36

10 Přístup k datům Fyzickéblokyjsou uloženy na persistentním disku Vyrovnávacípaměti blokůjsou dočasnékopie fyzických bloků v hlavní(primární) paměti Přesuny blokůmezi diskem a pamětíjsou vyvolány operacemi input(b) přenáší obsah fyzického bloku B do hlavní paměti output(b)přenášíobsah vyrovnávacípaměti bloku B na disk a přepíše obsah příslušného fyzického bloku Každátransakce T i másvůj privátnípracovníprostor, v němž jsou lokální kopie datových položek, s nimiž transakce pracuje Lokálníkopii datovépoložky Xpatřícítransakci T i budeme značit x i. Pro jednoduchost (a lepšíčitelnost) budeme předpokládat, že každádatovápoložka je uložena uvnitřjednoho bloku Nepřechází tedy přes hranici bloku verze: Jaro 2014 Transakce a řízení souběhu 37 Přístup k datům (pokr.) Transakce přenášídatovépoložky mezi systémovými vyrovnávacími pamětmi blokůa svým privátním pracovním prostorem pomocí operací read(x) přiřadíhodnotu položky Xlokáníproměnné x i. write(x) zapíše hodnotu lokálníproměnné x i do datové položky {X} nacházející se ve vyrovnávací paměti bloku obětyto operace vyvolajípotřebu operace input(b X )před tím, nežlze provést přiřazení, pokud blok B X obsahující položku Xneníjižv hlavnípaměti Transakce musíprovést read(x)při prvním přístupu k X Všechny dalšípřístupy se pak dějínad lokálníkopií Po poslednímodifikačnímanipulaci s položkou je nutno provést write(x) Ne každá operace write(x) vyvolá okamžitě output(b X ). Z důvodů efektivity odkládá systém fyzické zápisy output až do doby, kdy to považuje za vhodné verze: Jaro 2014 Transakce a řízení souběhu 38 Příklad přístupu k datům Vyrovnávací paměti (buffers) Vyrovnávací paměť bloku A input(a) X Vyrovnávací paměť bloku B x 1 y 1 Y read(x) write(y) pracovní prostor x 2 pracovní prostor output(b) A B Zotavenía atomicita Každá transakce musí proběhnout buď úspěšně celá (commit) nebo se databáze musívrátit zpět do konzistentního stavu Transakce T i převádějícípeníze z účtu Ana účet B musípřevést celou částku (tj. uskutečnit všechny modifikace) nebo nic K završení T i bude nutno uskutečnit několik operacíoutput (zde pro Aa B). Chyba může nastat poté, kdy se první modifikace úspěšně zapsala na disk, avšak druhou kvůli chybě nelze dokončit K zaručeníatomicity i v případěchyb se nejprve ukládají informace popisující předpokládané modifikace na stabilní paměť a teprve pak se provádějí vlastní modifikace databáze Ukážeme základnípřístup zotavenís protokolem (log-based recovery) Zpočátku předpokládejme, že transakce poběží čistě sériově paměť disk verze: Jaro 2014 Transakce a řízení souběhu 39 verze: Jaro 2014 Transakce a řízení souběhu 40

11 Zotavení založené na protokolu Na stabilní paměti se vytváří a udržuje protokol(log) Je to sekvence protokolových záznamů, která eviduje aktuální akce prováděné s databází(zejména zápisové operace) Protokol se buduje následovně: Při startu se transakce T i registruje záznamem T i start Před jakýmkoliv write(x) transakce T i uložízáznam T i, X, [V 1 ], V 2, kde V 1 je hodnota Xpřed writea V 2 je zapisovaná hodnota položky X Je tedy zaprotokolována jak původnítak i nováhodnota položky Xspolu s informací, že jde o aktivitu transakce T i. Původní hodnota se někdy neukládá Když T i končíúspěšně, zaprotokoluje se záznam T i commit Předpokládáme zatím, že transakce běžísériověa záznamy protokolu se zapisují přímo na stabilní paměť tj. nepřecházejí přes vyrovnávací paměť(unbuffered) Používají se dva přístupy založené na protokolování Odložená modifikace databáze Okamžitá(průběžná) modifikace databáze verze: Jaro 2014 Transakce a řízení souběhu 41 Odložená modifikace databáze Princip metody odloženémodifikace databáze je v tom, že se modifikuje jen protokol a všechny operace write jsou odloženy Transakce začínázápisem záznamu T i start do protokolu Operace write(x) zapíše záznam T i, X, V, kde V je nová hodnota X Původní hodnotu při odložené modifikaci nepotřebujeme Vlastní modifikace dat se zatím nedělá Když T i úspěšněukončísvoji poslednídatovou operaci, dostane se do stavu částečněpotvrzená(partially committed) a zapíše do protokolu T i commit Na závěr se prochází protokol a všechny zaznamenané akce týkajícíse T i jsou interpretovány tedy uskuteční se všechny odložené operace write verze: Jaro 2014 Transakce a řízení souběhu 42 Odložená modifikace databáze (pokr.) Při zotavení po havárii je nutno modifikace vytvořené transakcíopakovat právětehdy, jsou-li v protokolu oba záznamy T i start a T i commit Opakovánítransakce T i (redo T i ) nastavuje hodnoty všech datových položek na hodnoty zaznamenané v protokolu Havárie mohou nastat při původním zapisování nových hodnot, nebo při opakování těchto zápisů Příklad: Nechť T 0 běžípřed T 0 : read(a) : read(c) A := A 50 write(a) C:= C 100 write(c) read(b) B := B+ 50 write(b) verze: Jaro 2014 Transakce a řízení souběhu 43 Odložená modifikace databáze (pokr. 2) Stav protokolu ve třech okamžicích T 0 start T 0, A, 950 T 0, B, 2050 T 0 start T 0, A, 950 T 0, B, 2050 T 0 commit start, C, 600 T 0 start T 0, A, 950 T 0, B, 2050 T 0 commit start, C, 600 commit (a) (b) (c) Dojde-li k havárii v čase (a) Nemusíse dělat nic (chybí T 0 commit nic neníani částečně potvrzeno, žádná změna dat se neuskutečnila) (b) Je nutno udělat redo(t 0 ), neboťje zaznamenáno T 0 commit (c) Je nutno udělat redo(t 0 ) následovanéredo( ), neboťv protokolu je jak T 0 commit tak i commit verze: Jaro 2014 Transakce a řízení souběhu 44

12 Okamžitá modifikace databáze Metoda okamžitémodifikace databázeumožňuje, aby aktualizace databáze probíhala souběžněs operacemi write Protože přicházív úvahu anulování(undo) všech provedených zápisů, protokol musí obsahovat jak nové tak i původní hodnoty Záznam o aktualizaci položky musíbýt zapsán do protokolu před zápisem do databáze Opět předpokládáme, že záznamy protokolu se zapisují přímo na stabilní paměť Zápisy to protokolu lze dokonce odsunout aždo okamžiku, kdy se provádíoutput(b), kde Bdatový blok se zapisovanou položkou. Před output(b) však musíbýt protokol se všemi změnami hodnot v B na stabilní paměti Skutečný zápis aktualizovaných blokůlze však provést kdykoliv po bezpečném uloženíprotokolu, a to i před úspěšným ukončením transakce Pořadí, v jakém se bloky vypisujína disk, se může lišit od pořadí operací write Okamžitá modifikace databáze může být rychlejší verze: Jaro 2014 Transakce a řízení souběhu 45 Okamžitá modifikace databáze - příklad T 0 : read(a) : read(c) A := A 50 C:= C 100 write(a) write(c) read(b) B := B+ 50 write(b) Protokol Write Output T 0 start T 0, A, 1000, 950 T 0, B, 2000, 2050 A= 950 B= 2050 T 0 commit start, C, 700, 600 C= 600 B B, B C commit B A B X značíblok obsahující X verze: Jaro 2014 Transakce a řízení souběhu 46 Okamžitá modifikace databáze (pokr.) Procedura zotavení je složitější a potřebuje dvě operace undo(t i ) anulovánívýsledkůtransakce T i obnovípůvodní hodnoty všech datových položek modifikovaných T i zpětným průchodem protokolu lze zjistit, co kdy bylo modifikováno a jaké byly původní hodnoty redo(t i ) nastavínovéhodnoty všech položek modifikovaných T i podle protokolu počínaje prvním záznamem pro transakci T i Obě operace musí být idempotentní Tj., i kdyžse operace provede několikrát, výsledek musíbýt stejný, jakoby operace proběhla právě jednou Nutné, protože operace mohou být během obnovy restartovány Obnova Transakce T i musíbýt anulována (undo), pokud protokol obsahuje záznam T i start, avšak neobsahuje T i commit Transakce T i musíbýt opakována (redo), pokud protokol obsahuje jak záznam T i start tak i T i commit Napřed se dělajívšechny operace undoa pak všechny redo Obnova při okamžité modifikaci - příklad Stav protokolu ve třech okamžicích T 0 start T 0, A, 1000, 950 T 0, B, 2000, 2050 T 0 start T 0, A, 1000, 950 T 0, B, 2000, 2050 T 0 commit start, C, 500, 600 T 0 start T 0, A, 1000, 950 T 0, B, 2000, 2050 T 0 commit start, C, 700, 600 commit (a) (b) (c) Dojde-li k havárii v čase (a) undo(t 0 ) vrátí Ana 1000 a Bna 2000 (b) undo( ) obnoví Cna 700 a redo(t 0 ) nastaví Ana 950 a Bna 2050 (c) redo(t 0 ) nastaví Ana 950 a Bna 2050 a redo( ) nastaví Cna 600 verze: Jaro 2014 Transakce a řízení souběhu 47 verze: Jaro 2014 Transakce a řízení souběhu 48

13 Kontrolní body - checkpointing Problémy s obnovou 1. Prohledávání celého protokolu je časově náročné 2. Zbytečnéopakovánítransakcí(redo), jejichžvýsledky jsou již uloženy v databázi Efektivnějšího zotavovánílze dosáhnout periodickým voláním metody zvané checkpointing 1. Vypiš(flush) všechny protokolovézáznamy uloženév operační paměti na stabilní paměť 2. Vypiš všechny vyrovnávací paměti bloků na disk 3. Když se vše podaří, ulož do protokolu záznam kontrolní bod checkpoint a vypiš protokol na stabilní paměť Při zotavení se lze opírat o polohu záznamu checkpoint a starší akce lze ignorovat Kontrolní body checkpointing(pokr.) Stačíuvažovat transakci T k, kterázačala jako poslední před kontrolním bodem, a všechny transakce, které začaly po T k 1. Prohlížej protokol zpětněod konce aždo nalezeníposledního záznamu checkpoint 2. Pokračuj ve zpětném hledánído nalezenízáznamu T k start 3. Nynístačíuvažovat jen část protokolu, kteránásleduje po T k start. Staršízáznamy lze ignorovat či dokonce vymazat 4. Pro transakci T k a všechny transakce, kterézačaly po T k a které nemajív protokolu záznam T i commit,proveďundo(t i ) Má smysl jen při okamžité modifikaci databáze 5. Prohledávej protokol od T k směrem vpřed a pro transakci T k a všechny transakce, kterézačaly po nía majív protokolu záznam T i commit, proveďredo(t i ). verze: Jaro 2014 Transakce a řízení souběhu 49 verze: Jaro 2014 Transakce a řízení souběhu 50 Checkpointing příklad t c checkpoint T 3 bude ignorována aktualizace jsou již uloženy na disku, o čemž svědčí exitence kontrolního bodu S a T 3 se musíprovést redo Transakce T 4 musíbýt anulována (undo) T4 t f havárie čas Zotavení při souběžných transakcích Zotavenípodle protokolu lze použít i pro případ souběžných transakcí Všechny transakce sdílí společnou vyrovnávací paměť diskových bloků a jediný protokol Obsah vyrovnávacípaměti jednoho bloku může být modifikován jednou či více transakcemi Uvažujme řízenísouběhu striktním dvoufázovým zamykáním tj. ostatnítransakce nesmívidět aktualizace provedenédosud nepotvrzenými transakcemi Kdyby tomu tak nebylo, pak situace, kdy změní A, pak změní Aa potvrdíúspěch, a poté zhavaruje, by byla neřešitelná Protokol záznamy různých transakcí budou v protokolu promíchány Technika kontrolních bodů se ale musí upravit v okamžiku, kdy vznikákontrolníbod, může být rozpracováno několik transakcí verze: Jaro 2014 Transakce a řízení souběhu 51 verze: Jaro 2014 Transakce a řízení souběhu 52

14 Zotavení při souběžných transakcích (pokr.) Kontrolní body Ukládáníkontrolních bodůdo protokolu je shodnés předchozím případem, avšak záznam mátvar checkpoint L, kde Lje seznam transakcí, kterébyly aktivnív okamžiku, kdy se kontrolní bod vytvářel Předpokládáme, že při vypisováníprotokolu na stabilnípaměťa vyrovnávacích pamětíblokůna disk jsou aktualizace pozastaveny (tento požadavek lze oslabit) Kdyžse systém zotavuje z havárie 1. Utvoř prázdné seznamy undo-list a redo-list 2. Procházej protokol od konce zpětněažpo prvnízáznam checkpoint L. Pro každý záznam nalezený během zpětného průchodu: je-li to T i commit, přidej T i k seznamu redo-list je-li to T i start a přitom T i nenív seznamu redo-list, přidej T i do seznamu undo-list 3. Pro všechny transakce T i v Ltestuj, zda T i jižje v seznamu redo-list, pokud ne, tak přidej T i do undo-list Zotavení při souběžných transakcích (pokr.) Nyní undo-listobsahuje seznam všech nekompletních transakcí, které musí být anulovány (undo), a redo-list všechny hotovétransakce, kteréje nutno zopakovat (redo) Zotavení pokračuje následovně: 1. Pokračuj dále ve zpětném procházeníprotokolu, dokud nenajdešzáznam T i start a to pro všechny T i v undo-listu. Při procházeníproveďundotransakcínacházejících se v undo-listu 2. Přesuň se na poslední záznam checkpoint L 3. Procházej protokol vpřed směrem ke konci Při procházeníhledej záznamy transakcínacházejících se v redo-listu a pro každou z nich proveďredo verze: Jaro 2014 Transakce a řízení souběhu 53 verze: Jaro 2014 Transakce a řízení souběhu 54 Vyrovnávací paměti protokolu Pro zefektivněnítvorby protokolu potřebujeme vyrovnávací paměť Protokolovacízáznamy se tvořív bloku v hlavnípaměti místo přímého zápisu na stabilnípaměť. Záznamy se vypíší, ažkdyžje blok zaplněn nebo při akci log force. Log forcese provádíjako součást committransakce, aby se všechny informace o transakci uložily na stabilní paměť Takto se přenese najednou několik záznamůprotokolu a tím se redukuje počet I/O operací K zabezpečeníprotokolu s vyrovnávacípamětíje nutno dodržet několik pravidel Protokolovacízáznamy jsou přenášeny na stabilnípaměťv pořadí, jak byly vytvářeny Transakce T i přejde do stavu "Potvrzená" (committed) pouze kdyžzáznam T i commit je bezpečnězapsán na stabilnípaměť Před tím, nežzačne být vyrovnávacípaměťdatového bloku zapisována na disk, musíbýt všechny záznamy v protokolu, týkající se tohoto bloku, uloženy na stabilní paměti Pravidlo write-ahead logging verze: Jaro 2014 Transakce a řízení souběhu 55 Vyrovnávací paměti datových bloků DBMS udržuje v primárnípaměti sadu vyrovnávacích pamětí na datové bloky (database buffer) Kdyžje třeba nový blok a sada je plná, je nutno uvolnit paměť dosud obsazenou jiným blokem (oběť) Byl-li obsah bloku modifikován, je nutno ho uložit na disk Obsahuje-li takový blok nepotvrzenéaktualizace, pak všechny záznamy v protokolu týkajícíse tohoto bloku musíbýt na stabilnípaměti dříve, nežse začne příslušný blok vypisovat na disk write-ahead logging Když je blok ukládán na disk, nelze připustit žádné aktualizační operace s tímto blokem. To lze zajistit následovně: Transakce musízískat výlučný zámek (X-lock) k bloku obsahujícímu modifikovanou datovou položku ještě před zápisem datové položky Zámek lze uvolnit, jakmile je modifikace provedena Blok je uzamčen velmi krátkou dobu Systém musízískat výlučný zámek vyrovnávacího bloku před pokusem o jeho zápis na disk verze: Jaro 2014 Transakce a řízení souběhu 56

15 Správa vyrovnávacích pamětí Sada vyrovnávacích pamětív reálnépaměti v oblasti vyhrazenédatabázi Paměťje fixněrozdělena předem na vyrovnávacípaměťa prostor pro ostatníaplikace (včetnědatabázového stroje), cožomezuje pružnou práci. Požadavky se v čase mění, ale zde je vše rozděleno dopředu. Běžně se vyrovnávací paměti umisťují do virtuální paměti Nevýhoda: Kdyžoperačnísystém potřebuje obětovat stránku a ta byla modifikována, musíji napřed vykopírovat do odkládacího prostoru na disku Kdyžse DBMS rozhodne, že vyrovnávacípaměťbloku je třeba vypsat na disk a stránka s tímto blokem je odložena, musíji OS napřed zavést do paměti, aby ji DBMS mohl opět uložit na disk (ale jinam). To vede ke zbytečným I/O přenosům. V ideálním případě, potřebuje-li OS obětovat stránku s vyrovnávacípamětí, měl by předat řízenídatabázi, kteráby měla 1. Vypsat stránku do databáze místo do odkládacího prostoru (samozřejmě za dodržení pravidla write-ahead logging) 2. Uvolnit stránku pro potřeby OS Bohužel OS většinou takovou funkcionalitu neposkytují verze: Jaro 2014 Transakce a řízení souběhu 57 Dotazy verze: Jaro 2014 Transakce a řízení souběhu 58

Téma 11 Transakce a řízení souběhu

Téma 11 Transakce a řízení souběhu 1 Téma 11 Transakce a řízení souběhu Obsah 1. Transakce a jejich stavy 2. Souběh transakcí 3. Sériovost, serializovatelnost, obnovitelnost 4. Řízení souběhu 5. Úrovně konzistence 6. Řídicí protokoly se

Více

Téma 12 Transakce, řízenísouběhu a obnova dat

Téma 12 Transakce, řízenísouběhu a obnova dat Téma 12 Transakce, řízenísouběhu a obnova dat Obsah 1. Transakce a jejich stavy 2. Souběh transakcí 3. Sériovost, serializovatelnost, obnovitelnost 4. Řízení souběhu 5. Úrovněkonzistence 6. Řídicí protokoly

Více

Příklad převodu peněz. Vlastnosti"ACID"

Příklad převodu peněz. VlastnostiACID Téma 12 Transakce, řízení souběhu a obnova dat Obsah 1. Transakce a jejich stavy 2. Souběh transakcí 3. Sériovost, serializovatelnost, obnovitelnost 4. Řízení souběhu 5. Úrovněkonzistence 6. Řídicí protokoly

Více

Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti

Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti - 13.1 - Kapitola 13: Transakce Koncept transakce Stavy transakce Implementace atomičnosti a trvanlivosti Souběžné spouštění Serializovatelnost Koncept transakce Transakce je posloupnost operací (část

Více

TÉMATICKÝ OKRUH TZD, DIS a TIS

TÉMATICKÝ OKRUH TZD, DIS a TIS TÉMATICKÝ OKRUH TZD, DIS a TIS Číslo otázky : 15. Otázka : Paralelní procesy v databázích. Transakce, zamykání, uváznutí. Dvoufázový protokol, časová razítka. Obsah : 1 Úvod 2 Paralelní procesy v databázích

Více

Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer dat - rozvrhovač - manažer transakcí

Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer dat - rozvrhovač - manažer transakcí Transakce = programová jednotka, která: - zachovává konzistenci databáze - končí v konečném čase - se provede celá nebo vůbec Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer

Více

9. Transakční zpracování

9. Transakční zpracování 9. Transakční zpracování 9.1. Transakce... 3 9.1.1. Vlastnosti transakce... 3 9.1.2. Stavy transakce... 4 9.2. Transakce v SQL... 6 9.3. Zotavení po chybách a poruchách... 10 9.3.1. Zotavení využívající

Více

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 3 PARALELNÍ PROCESY V DATABÁZÍCH

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 3 PARALELNÍ PROCESY V DATABÁZÍCH Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 3 PARALELNÍ PROCESY V DATABÁZÍCH 1 teorie dosud -aplikace jednouživatelské praxe - databáze současně přístupná více uživatelům, paralelní běh aplikací příklady

Více

Zotavení z chyb. Databázové systémy

Zotavení z chyb. Databázové systémy Zotavení z chyb Databázové systémy Zotavení z chyb v DBS Úloha: Po chybě obnovit poslední konzistentní stav databáze Třídy chyb: 1. Lokální chyba v ještě nepotvrzené transakci 2. Chyba se ztrátou hlavní

Více

Transakční zpracování

Transakční zpracování Transakční zpracování Transakční zpracování Dva základní požadavky na SŘBD: chránit data organizovaná pod daným SŘBD, poskytnout korektní a rychlý asynchronní přístup většímu množství uživatelů. Řešení:

Více

Transakční zpracování Bezpečnost databází. Vladimíra Zádová, KIN, EF TUL- DBS 1

Transakční zpracování Bezpečnost databází. Vladimíra Zádová, KIN, EF TUL- DBS 1 Transakční zpracování Bezpečnost databází Vladimíra Zádová, KIN, EF TUL- DBS 1 Transakce Transakce systém zpracování transakcí vlastnosti ACID stavy transakce SŘBD a transakční zpracování Řešení transakcí

Více

9. Transakční zpracování

9. Transakční zpracování 9. Transakční zpracování 9.1. Transakce... 3 9.1.1. Vlastnosti transakce... 3 9.1.2. Stavy transakce... 4 9.2. Transakce v SQL... 6 9.3. Zotavení po chybách a poruchách... 10 9.3.1. Zotavení využívající

Více

Paralelní přístup k databázi

Paralelní přístup k databázi Paralelní přístup k databázi Motivační příklad: Bankovní převod 100,- Kč z účtu "A" na účet "B" a současný výběr 200 Kč z účtu "B". Transakce Hodnota A Hodnota B Stav účtu A Stav účtu B 1000,- 1000,- T1:

Více

DBS transakční zpracování

DBS transakční zpracování DBS transakční zpracování Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2010 BI-DBS, ZS 2010/11 https://edux.fit.cvut.cz/courses/bi-dbs/ Michal

Více

Transakce a zamykání Jiří Tomeš

Transakce a zamykání Jiří Tomeš Transakce a zamykání Jiří Tomeš Administrace MS SQL Serveru (NDBI039) O čem to dnes bude Úvodní opakování základních pojmů Jištění transakcí Speciální konstrukce Typy transakcí Závěrečný souhrn, použité

Více

PB153 Operační systémy a jejich rozhraní

PB153 Operační systémy a jejich rozhraní PB153 Operační systémy a jejich rozhraní Uváznutí 1 Problém uváznutí Existuje množina blokovaných procesů, každý proces vlastní nějaký prostředek (zdroj) a čeká na zdroj držený jiným procesem z této množiny

Více

Principy operačních systémů. Lekce 7: Obrana proti deadlocku

Principy operačních systémů. Lekce 7: Obrana proti deadlocku Principy operačních systémů Lekce 7: Obrana proti deadlocku Deadlock Deadlock = uváznutí, zablokování Vznik problému: proces drží určité prostředky, požaduje přidělení dalších prostředků, tyto nedostane

Více

Principy operačních systémů. Lekce 6: Synchronizace procesů

Principy operačních systémů. Lekce 6: Synchronizace procesů Principy operačních systémů Lekce 6: Synchronizace procesů Kritická sekce Při multitaskingu (multithreadingu) různé procesy často pracují nad společnou datovou strukturou (např. zápis a čtení do/z fronty)

Více

Dijkstrův algoritmus

Dijkstrův algoritmus Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované

Více

Disková pole (RAID) 1

Disková pole (RAID) 1 Disková pole (RAID) 1 Architektury RAID Základní myšlenka: snaha o zpracování dat paralelně. Pozice diskové paměti v klasickém personálním počítači vyhovuje pro aplikace s jedním uživatelem. Řešení: data

Více

Konzistentnost. Přednášky z distribuovaných systémů

Konzistentnost. Přednášky z distribuovaných systémů Konzistentnost Přednášky z distribuovaných systémů Pro a proti replikaci 1. Zvýšení spolehlivosti. 2. Zvýšení výkonnosti. 3. Nutnost zachování škálovatelnosti systému co do počtu komponent i geografické

Více

Databázové systémy. transakce. Tomáš Skopal. * vlastnosti transakcí * rozvrhy

Databázové systémy. transakce. Tomáš Skopal. * vlastnosti transakcí * rozvrhy Databázové systémy Tomáš Skopal transakce * vlastnosti transakcí * rozvrhy Osnova motivace co je a proč je transakce vlastnosti transakcí rozvrhy ( prokládané zpracování transakcí) uspořádatelnost konflikty

Více

Databázové systémy. transakce. Tomáš Skopal. * uzamykací protokoly * alternativní protokoly * zotavení

Databázové systémy. transakce. Tomáš Skopal. * uzamykací protokoly * alternativní protokoly * zotavení Databázové systémy Tomáš Skopal transakce * uzamykací protokoly * alternativní protokoly * zotavení Osnova uzamykací protokoly 2PL striktní 2PL uváznutí, prevence fantom alternativní protokoly optimistické

Více

Disková pole (RAID) 1

Disková pole (RAID) 1 Disková pole (RAID) 1 Architektury RAID Důvod zavedení RAID: reakce na zvyšující se rychlost procesoru. Pozice diskové paměti v klasickém personálním počítači vyhovuje pro aplikace s jedním uživatelem.

Více

Zablokování (Deadlock) Mgr. Josef Horálek

Zablokování (Deadlock) Mgr. Josef Horálek Zablokování (Deadlock) Mgr. Josef Horálek Deadlock = V multiprogramovém prostředí si mohou různé prostředky konkurovat v získaní konečného počtu zdrojů = může se tedy stát, že čekající proces svůj stav

Více

Služba ve Windows. Služba (service) je program

Služba ve Windows. Služba (service) je program Služby Windows Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785. Provozuje Národní ústav pro vzdělávání, školské

Více

Transakce a zamykání. Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík

Transakce a zamykání. Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík Transakce a zamykání Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík Základní pojmy Databázová transakce je skupina příkazů, které převedou databázi z jednoho konzistentního stavu do druhého. Transakční

Více

Databáze I. 5. přednáška. Helena Palovská

Databáze I. 5. přednáška. Helena Palovská Databáze I 5. přednáška Helena Palovská palovska@vse.cz SQL jazyk definice dat - - DDL (data definition language) Základní databáze, schemata, tabulky, indexy, constraints, views DATA Databáze/schéma

Více

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21 Stručný obsah 1. Hardware, procesory a vlákna... 19 2. Programování s ohledemna výkon... 45 3. Identifikování příležitostí pro paralelizmus... 93 4. Synchronizace a sdílení dat... 123 5. Vlákna v rozhraní

Více

Přidělování CPU Mgr. Josef Horálek

Přidělování CPU Mgr. Josef Horálek Přidělování CPU Mgr. Josef Horálek Přidělování CPU = Přidělování CPU je základ multiprogramového OS = pomocí přidělování CPU různým procesům OS zvyšuje výkon výpočetního systému; = Základní myšlenka multiprogramování

Více

Přidělování zdrojů (prostředků)

Přidělování zdrojů (prostředků) Přidělování zdrojů (prostředků) Proces potřebuje zdroje (prostředky) hardware (I/O zařízení, paměť) software (data, programy) Klasifikace zdrojů (z hlediska multitaskingového režimu) Násobně použitelné

Více

1. Databázové systémy (MP leden 2010)

1. Databázové systémy (MP leden 2010) 1. Databázové systémy (MP leden 2010) Fyzickáimplementace zadáníaněkterářešení 1 1.Zkolikaajakýchčástíseskládáčasprovstupněvýstupníoperaci? Ze tří částí: Seektime ječas,nežsehlavadiskudostanenadsprávnou

Více

Přidělování paměti II Mgr. Josef Horálek

Přidělování paměti II Mgr. Josef Horálek Přidělování paměti II Mgr. Josef Horálek Techniky přidělování paměti = Přidělování jediné souvislé oblasti paměti = Přidělování paměti po sekcích = Dynamické přemisťování sekcí = Stránkování = Stránkování

Více

Kapitola 10: Diskové a souborové struktury. Klasifikace fyzických médií. Fyzická média

Kapitola 10: Diskové a souborové struktury. Klasifikace fyzických médií. Fyzická média - 10.1 - Kapitola 10: Diskové a souborové struktury Přehled fyzických ukládacích médií Magnetické disky RAID (Redundant Array of Inexpensive Disks) Terciární úložiště Přístup k médiu Souborové organizace

Více

Procesy a vlákna - synchronizace

Procesy a vlákna - synchronizace ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna - synchronizace České vysoké učení technické Fakulta elektrotechnická 2010 Studijní materiály a informace o předmětu http://measure.feld.cvut.cz/vyuka/predmety/bakalarske/navody

Více

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE 1 KONZISTENCE DATABÁZE Jedním z velkých nebezpečí při provozu IS je porušení konzistence databáze. Konzistence databáze je vzájemný

Více

Paměťový podsystém počítače

Paměťový podsystém počítače Paměťový podsystém počítače typy pamětových systémů počítače virtuální paměť stránkování segmentace rychlá vyrovnávací paměť 30.1.2013 O. Novák: CIE6 1 Organizace paměťového systému počítače Paměťová hierarchie...

Více

Spuštění instalace. nastavení boot z cd v BIOSu vložení CD s instal. médiem spuštění PC. nastavení parametrů instalace (F2 čěština)

Spuštění instalace. nastavení boot z cd v BIOSu vložení CD s instal. médiem spuštění PC. nastavení parametrů instalace (F2 čěština) Instalace OS Linux Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785. Provozuje Národní ústav pro vzdělávání,

Více

Operační systémy 1. Přednáška číslo 10 26. 4. 2010. Struktura odkládacích zařízení

Operační systémy 1. Přednáška číslo 10 26. 4. 2010. Struktura odkládacích zařízení Operační systémy 1 Přednáška číslo 10 26. 4. 2010 Struktura odkládacích zařízení Základní pojmy Paměťové médium periferní zařízení nejvyšší důležitosti samotný OS je obvykle uložen na paměťovém zařízení.

Více

Řízení souběžného přístupu k datům v systémech řízení báze dat

Řízení souběžného přístupu k datům v systémech řízení báze dat Bankovní institut vysoká škola Praha Katedra matematiky, statistiky a informačních technologií Řízení souběžného přístupu k datům v systémech řízení báze dat Bakalářská práce Autor: Petr Havlas Informační

Více

Struktura a architektura počítačů (BI-SAP) 11

Struktura a architektura počítačů (BI-SAP) 11 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 11 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

Paralelní programování

Paralelní programování Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 14 Atomické akce dále nedělitelná = neproložitelná jiným procesem izolovaná =

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

Paměti a jejich organizace

Paměti a jejich organizace Kapitola 5 Paměti a jejich organizace 5.1 Vnitřní a vnější paměti, vlastnosti jednotlivých typů Vnější paměti Jsou umístěny mimo základní jednotku. Lze je zařadit mezi periferní zařízení. Zápis a čtení

Více

Operační systémy 2. Struktura odkládacích zařízení Přednáška číslo 10

Operační systémy 2. Struktura odkládacích zařízení Přednáška číslo 10 Operační systémy 2 Struktura odkládacích zařízení Přednáška číslo 10 Základní pojmy Paměťové médium periferní zařízení nejvyšší důležitosti samotný OS je obvykle uložen na paměťovém zařízení. Proto je

Více

Systém souborů Mgr. Josef Horálek

Systém souborů Mgr. Josef Horálek Systém souborů Mgr. Josef Horálek Systém souborů = Pro většinu uživatelů je systém souborů nejviditelnější součástí operačního systému = provádí mechanismy pro on-line ukládání a přístup k programům a

Více

Systém souborů (file system, FS)

Systém souborů (file system, FS) UNIX systém souborů (file system) 1 Systém souborů (file system, FS)! slouží k uchování dat na vnějším paměťovém médiu a zajišťuje přístup ke struktuře dat! pro uživatele možnost ukládat data a opět je

Více

Distribuované transakce

Distribuované transakce Distribuované transakce Lukáš Petrlík luki@kiv.zcu.cz Úvod Pojem transakce pochází původně z obchodního světa. Předpokládejme, že firma A hledá dodavatele pro jistou zakázku. V úvahu přichází firma B,

Více

Činnost počítače po zapnutí

Činnost počítače po zapnutí Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/03.0009 Činnost počítače po zapnutí Paměť RWM(Read Write Memory - paměť pro čtení a zápis, označovaná také jako RAM)

Více

IW3 MS SQL SERVER 2014

IW3 MS SQL SERVER 2014 Zálohování a obnova IW3 MS SQL SERVER 2014 Ing. Peter Solár, MCITP EA solar@pocitacoveskoleni.cz 1 OSNOVA 1. Návrh strategie zálohování 2. Zálohování uživatelských databází 3. Obnova uživatelských databází

Více

Struktura pamětí a procesů v DB Oracle. Radek Strnad

Struktura pamětí a procesů v DB Oracle. Radek Strnad Struktura pamětí a procesů v DB Oracle Radek Strnad radek.strnad@gmail.com 1 Základní rozdělení paměti Software codes area Chráněná část spustitelného kódu samotné DB. System global area (SGA) Sdílená

Více

Vzájemné vyloučení procesů

Vzájemné vyloučení procesů PDV 10 2017/2018 Vzájemné vyloučení procesů Michal Jakob michal.jakob@fel.cvut.cz Centrum umělé inteligence, katedra počítačů, FEL ČVUT Příklad Bankovní server v cloudu. Dva zákaznici současně vloží 10

Více

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK listopad 2009 souhrn v1 Červené dobře (nejspíš), modré možná Oracle Internet Directory OID: Databáze nemůže z OID přebírat seznam uživatelů *Databáze může získat z OID seznam

Více

Princip funkce počítače

Princip funkce počítače Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování

Více

Bc. David Gešvindr MSP MCSA MCTS MCITP MCPD

Bc. David Gešvindr MSP MCSA MCTS MCITP MCPD Bc. David Gešvindr MSP MCSA MCTS MCITP MCPD 1. Návrh strategie zálohování 2. Zálohování uživatelských databází 3. Obnova uživatelských databází 4. Obnova z databázového snapshotu 5. Automatizace záloh

Více

Synchronizace Mgr. Josef Horálek

Synchronizace Mgr. Josef Horálek Synchronizace Mgr. Josef Horálek Synchronizace procesu = Kooperující proces je proces, který může ovlivnit nebo být ovlivněn jiným procesem právě spuštěným v systému = Spolupracující procesy mohou sdílet:

Více

PA152. Implementace databázových systémů

PA152. Implementace databázových systémů PA152 Implementace databázových systémů RAID level 1 zrcadlení disku výpočet MTTF 2 stejné disky, MTTF 3 roky výměna vadného 3,5 dne výpadek oba disky během 3,5 dne p(výpadku disku za rok) = 1/6 p(výp.

Více

Přidělování paměti I Mgr. Josef Horálek

Přidělování paměti I Mgr. Josef Horálek Přidělování paměti I Mgr. Josef Horálek = Paměť = operační paměť je paměť, kterou přímo využívají procesory při zpracováni instrukci a dat; Paměť Funkce modulu přidělování paměti = Sledování stavu každého

Více

MODERNÍ SOUBOROVÉ SYSTÉMY - ZFS. Richard Janča

MODERNÍ SOUBOROVÉ SYSTÉMY - ZFS. Richard Janča MODERNÍ SOUBOROVÉ SYSTÉMY - ZFS Richard Janča MODERNÍ SOUBOROVÉ SYSTÉMY - ZFS ZFS- Zettabyte File Systém 128 bitový souborový systém Původně pouze pro Solaris Dnes již CDDL licence FreeBSD Solaris Příprava

Více

Disková pole (RAID) 1

Disková pole (RAID) 1 Disková pole (RAID) 1 Architektury RAID Důvod zavedení RAID: reakce na zvyšující se rychlost procesoru. Pozice diskové paměti v klasickém personálním počítači vyhovuje pro aplikace s jedním uživatelem.

Více

TGH05 - aplikace DFS, průchod do šířky

TGH05 - aplikace DFS, průchod do šířky TGH05 - aplikace DFS, průchod do šířky Jan Březina Technical University of Liberec 31. března 2015 Grafová formulace CPM (critical path method) Orientovaný acyklický graf (DAG) je orientovaný graf neobsahující

Více

Systém adresace paměti

Systém adresace paměti Systém adresace paměti Základní pojmy Adresa fyzická - adresa, která je přenesena na adresní sběrnici a fyzicky adresuje hlavní paměť logická - adresa, kterou má k dispozici proces k adresaci přiděleného

Více

Management procesu I Mgr. Josef Horálek

Management procesu I Mgr. Josef Horálek Management procesu I Mgr. Josef Horálek Procesy = Starší počítače umožňovaly spouštět pouze jeden program. Tento program plně využíval OS i všechny systémové zdroje. Současné počítače umožňují běh více

Více

Algoritmizace. 1. Úvod. Algoritmus

Algoritmizace. 1. Úvod. Algoritmus 1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá

Více

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ZÁLOHOVÁNÍ DAT V DATABÁZI Ing. Lukáš OTTE, Ph.D. Ostrava 2013 Tento studijní materiál vznikl za finanční podpory Evropského

Více

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů - 1.1 - Kapitola 1: Úvod Účel databázových systémů Pohled na data Modely dat Jazyk pro definici dat (Data Definition Language; DDL) Jazyk pro manipulaci s daty (Data Manipulation Language; DML) Správa

Více

Řada programovacích jazyků nabízí prostředky pro řešení meziprocesové komunikace jako je synchronizace a řízení přístupu do kritické sekce.

Řada programovacích jazyků nabízí prostředky pro řešení meziprocesové komunikace jako je synchronizace a řízení přístupu do kritické sekce. Operační systémy Tomáš Hudec 7 Prostředky programovacích jazyků pro IPC Obsah: 7.1 Monitor, 7.1.1 Použití monitoru pro řízení přístupu do kritické sekce, 7.1.2 Použití monitoru pro synchronizaci, 7.1.3

Více

Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna

Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna Principy operačních systémů Lekce 5: Multiprogramming a multitasking, vlákna Multiprogramování předchůdce multitaskingu Vzájemné volání: Implementován procesem (nikoliv OS) Procesu je přidělen procesor,

Více

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel

Více

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou Administrace Oracle Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou zachyceny a uloženy lokálně před posláním

Více

Architektury počítačů a procesorů

Architektury počítačů a procesorů Kapitola 3 Architektury počítačů a procesorů 3.1 Von Neumannova (a harvardská) architektura Von Neumann 1. počítač se skládá z funkčních jednotek - paměť, řadič, aritmetická jednotka, vstupní a výstupní

Více

10. Transakce, řízení konkurenčních přístupů.

10. Transakce, řízení konkurenčních přístupů. 10. Transakce, řízení konkurenčních přístupů. Jedním kritériem klasifikace databázových systémů je počet uživatelů, kteří současně využívají systém. Jednouživatelský systém SŘBD - v daném okamžiku může

Více

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba. Odpovědi jsem hledala v prezentacích a na http://www.nuc.elf.stuba.sk/lit/ldp/index.htm Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je

Více

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být

Více

Binární soubory (datové, typované)

Binární soubory (datové, typované) Binární soubory (datové, typované) - na rozdíl od textových souborů data uložena binárně (ve vnitřním tvaru jako v proměnných programu) není čitelné pro člověka - všechny záznamy téhož typu (může být i

Více

27 Evidence kasiček. Popis modulu. Záložka Organizované sbírky

27 Evidence kasiček. Popis modulu. Záložka Organizované sbírky 27 Evidence kasiček Uživatelský modul Evidence kasiček realizuje evidenci všech pořádaných sbírek, jednotlivých kasiček sbírky, dále pak evidenci výběrů kasiček s návazností na pokladnu (příjem výběru

Více

Výpočet globálního stavu

Výpočet globálního stavu PDV 09 2017/2018 Výpočet globálního stavu Michal Jakob michal.jakob@fel.cvut.cz Centrum umělé inteligence, katedra počítačů, FEL ČVUT Globální Stav Globální stav: množina lokální stavů procesů v DS a stavů

Více

Lekce 01 Úvod do algoritmizace

Lekce 01 Úvod do algoritmizace Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 01 Úvod do algoritmizace Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním

Více

FIREBIRD relační databázový systém. Tomáš Svoboda

FIREBIRD relační databázový systém. Tomáš Svoboda FIREBIRD relační databázový systém Tomáš Svoboda xsvobo13@fi.muni.cz Firebird historie 80. léta - Jim Starkey (DEC) InterBase 1994 - odkoupila firma Borland 2000 - Borland uvolnil zdrojové texty InterBase

Více

Procesy a vlákna (Processes and Threads)

Procesy a vlákna (Processes and Threads) ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna (Processes and Threads) Správa procesů a vláken České vysoké učení technické Fakulta elektrotechnická 2012 Použitá literatura [1] Stallings, W.: Operating

Více

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací. Trochu teorie Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací. Každá spuštěná aplikace má alespoň jeden proces

Více

Stromy, haldy, prioritní fronty

Stromy, haldy, prioritní fronty Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík

Více

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být

Více

Téma 13 Architektury DBMS; Principy distribuovaných DBMS Obsah

Téma 13 Architektury DBMS; Principy distribuovaných DBMS Obsah Téma 13 Architektury DBMS; Principy distribuovaných DBMS Obsah Architektury databázových systémů Systémy klient-server Transakční servery Paralelní systémy Distribuované systémy Principy distribuovaných

Více

Architektura Pentia úvod

Architektura Pentia úvod Architektura Pentia úvod 1 Co je to superskalární architektura? Minimálně dvě fronty instrukcí. Provádění instrukcí je možné iniciovat současně, instrukce se pak provádějí paralelně. Realizovatelné jak

Více

OPS Paralelní systémy, seznam pojmů, klasifikace

OPS Paralelní systémy, seznam pojmů, klasifikace Moorův zákon (polovina 60. let) : Výpočetní výkon a počet tranzistorů na jeden CPU chip integrovaného obvodu mikroprocesoru se každý jeden až dva roky zdvojnásobí; cena se zmenší na polovinu. Paralelismus

Více

HELIOS - Zálohování BüroKomplet, s.r.o.

HELIOS - Zálohování BüroKomplet, s.r.o. HELIOS - Zálohování 2017 BüroKomplet, s.r.o. Obsah Záloha... 3 Přehled záloh... 3 Typ zálohy... 3 Adresář... 4 Nový... 4 Obnova... 6 2 Záloha V přehledu lze provádět zálohy dat jednotlivých firem a v případě

Více

Uzamykání/špatný PIN. Uzamčeno a čeká na zadání kódu PIN.

Uzamykání/špatný PIN. Uzamčeno a čeká na zadání kódu PIN. LED indikátory Flash Padlock 3 je dodáván se třemi LED indikátory v horní části jednotky. Každý indikátor LED, ať už svítí nebo bliká nebo se objeví s jiným indikátorem LED, poskytuje zpětnou vazbu o aktuálním

Více

2010/2011 ZS. Operační systém. prostředky, zablokování

2010/2011 ZS. Operační systém. prostředky, zablokování Principy počítačů a operačních systémů Operační systém prostředky, zablokování Základní pojmy Prostředek cokoliv, k čemu je potřeba hlídat přístup např.hwzařízení, záznamy v DB Odnímatelné vs. neodnímatelné

Více

Databáze II. 2. přednáška. Helena Palovská

Databáze II. 2. přednáška. Helena Palovská Databáze II 2. přednáška Helena Palovská palovska@vse.cz SQL a aplikace Program přednášky Řízení transakcí v SQL Integritní omezení v SQL Triggery a uložené procedury Zpracování množin záznamů Řízení

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

Téma 12 Architektury DBMS

Téma 12 Architektury DBMS Téma 12 Architektury DBMS Obsah Architektury databázových systémů Systémy klient-server Transakční servery Paralelní systémy Distribuované systémy Distribuované databázové systémy Homogenní a heterogenní

Více

Knihovna EpsnetLib TXV 003 73.01 první vydání září 2012 změny vyhrazeny

Knihovna EpsnetLib TXV 003 73.01 první vydání září 2012 změny vyhrazeny Knihovna EpsnetLib TXV 003 73.01 první vydání září 2012 změny vyhrazeny 1 TXV 003 73.01 Historie změn Datum Vydání Popis změn Září 2012 1 První vydání, popis odpovídá EpsnetLib_v11 OBSAH 1 Úvod...3 2 Datové

Více

PROHLEDÁVÁNÍ GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

PROHLEDÁVÁNÍ GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze PROHLEDÁVÁNÍ GRAFŮ Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 4 Evropský sociální fond Praha & EU: Investujeme do

Více

TGH05 - aplikace DFS, průchod do šířky

TGH05 - aplikace DFS, průchod do šířky TGH05 - aplikace DFS, průchod do šířky Jan Březina Technical University of Liberec 28. března 2017 Grafová formulace CPM (critical path method) Orientovaný acyklický graf (DAG) je orientovaný graf neobsahující

Více

Cvičení č. 3. Sdílené prostředky a synchronizace Program Banka. 4 body

Cvičení č. 3. Sdílené prostředky a synchronizace Program Banka. 4 body Cvičení č. 3 Sdílené prostředky a synchronizace Program Banka 4 body Datum: 12.3.2008 1 Obsah 1. Úvod...2 2. Pokyny pro odevzdání...2 3. Příprava...2 4. Úlohy...3 4.1. Požadavky na program...3 4.2. Požadavky

Více

Základy umělé inteligence

Základy umělé inteligence Základy umělé inteligence Automatické řešení úloh Základy umělé inteligence - prohledávání. Vlasta Radová, ZČU, katedra kybernetiky 1 Formalizace úlohy UI chápe řešení úloh jako proces hledání řešení v

Více

Paralelní programování

Paralelní programování Paralelní programování přednáška 5 Michal Krupka 15. března 2011 Michal Krupka (KI UP) Paralelní programování 15. března 2011 1 / 13 Ještě ke kritickým sekcím Použití v praxi obvykle pomocí zámků (locks)

Více

Transakce. Ing. Marek Sušický, RNDr. Ondřej Zýka

Transakce. Ing. Marek Sušický, RNDr. Ondřej Zýka Transakce Ing. Marek Sušický, RNDr. Ondřej Zýka 1 Obsah Definice Savepoint, autonomní transakce Transakční módy Izolační úrovně Implementace pomocí zámků Implementace pomocí snapshotů Oracle, Microsoft

Více

Operační systémy Tomáš Hudec. 6 Komunikace procesů (IPC) Obsah: 6.1 Klasické problémy souběhu. 6.1.1 Obědvající filosofové

Operační systémy Tomáš Hudec. 6 Komunikace procesů (IPC) Obsah: 6.1 Klasické problémy souběhu. 6.1.1 Obědvající filosofové Operační systémy Tomáš Hudec 6 Komunikace procesů (IPC) Obsah: 6.1 Klasické problémy souběhu, 6.1.1 Obědvající filosofové, 6.1.2 Producenti a konzumenti, 6.1.3 Problém spících holičů, 6.1.4 Problém pisatelů

Více