Řízení paralelního zpracování: Porovnání verzí

Smazaný obsah Přidaný obsah
{{Sloučit|Transakční zpracování|Do}}
m Robot: oprava šablony; kosmetické úpravy
Řádek 1:
{{Sloučit|Transakční zpracování|Dotam}}
{{Přesunout|Transakční zpracování dat}}
{{Upravit}}
Řádek 12:
 
=== Databázové transakce a ACID pravidla ===
V aplikacích se používá pojem transakce, což je skupina operací prováděných nad databází.
Transakce musí splňovat vlastnosti ACID:
 
Řádek 21:
 
=== Proč je Kontrola souběžnosti potřeba? ===
Proč vlastně kontrola souběžnosti transakcí? V případě kdy běží několik transakcí současně, může se stát, že tyto transakce mění tentýž databázový záznam. Pokud by tento souběžný běh transakcí nebyl kontrolován, mohl by nastat problém, jakým je nekonzistentní databáze. Proto v další části popíšeme tři problémy, které mohou nastat při nekontrolovaném běhu souběžných transakcí.
 
==== Problém zvaný „Lost Update“ ====
Tento problém nastane v případě, kdy dvě transakce přistupující ke stejnému záznamu v databázi a po jejich ukončení je hodnota v záznamu nesprávná.
 
==== Problém dočasné změny „Temporary Update“ ====
Řádek 54:
* '''Zamykání''' – Jedna z nejzákladnějších technik pro řízení běhu souběžných transakcí je založená na zamykání databázového záznamu. Zámek je proměnná asociovaná s datovým záznamem, která vyjadřuje status záznamu s ohledem na možné operace, která mohou být nad záznamem použity. Pro zamykání je možné použít několik typů zámků.
 
* '''Časová razítka (Time Stamps)''' – Další technikou pro řízení souběžného běhu transakcí a zajištění serializovatelnosti transakcí je používání časových razítek. Časové razítko je jedinečný identifikátor, který je přiřazen transakci. Typicky je časovým razítkem hodnota, která odpovídá pořadí spuštění transakce v systému, nebo čas nastartování transakce.
 
Jiné hlavní typy kontroly shodnosti, které jsou využívány ve spojení s výše uvedenými metodami jsou:
Řádek 66:
==== Správnost ====
===== Sériovost =====
Úroveň sériovosti zabraňuje všem interferencím mezi transakcemi stejným způsobem, jako by transakce byly prováděny postupně a nikoliv souběžně. Ostatní transakce sice mohou číst data ze zpracovávaných tabulek, ale nemohou je měnit ani přidávat nové údaje.
Z důvodu značného blokování ostatních transakcí je vhodné používat tuto úroveň izolace pouze v nezbytných případech (např. přecenění skladu, účetní uzávěrka).
Různé databázové platformy mohou pro jednotlivé izolační úrovně používat odlišné názvy (nebo i stejné ale v jiném významu), případně nemusí podporovat všechny úrovně definované standardem, a lišit se může i dopad jednotlivých úrovní na propustnost transakcí. Je tedy vždy nezbytné prostudovat dokumentaci konkrétního produktu.
 
===== Obnovitelnost =====
Řádek 77:
 
==== Distribuce ====
Technické možnosti komunikačních systémů a vzájemného propojování počítačů umožňují spojovat i původně samostatně pracující počítače do distribuovaných systémů. Speciálně u Distribuovaných databázových systémů (DDBS) se s komunikační technologií spojí databáze. Obecná charakteristika systémů:
* Tvoří je množina uzlů (míst), propojených komunikačními kanály
* Každý uzel je autonomní SŘBD, ve všech službách se nespoléhá na centrální uzel
* Uživatel nic neví o síťové struktuře systému, ale systém umožní transparentně zpřístupnit data z libovolného uzlu a opačně zpracovává vlastní data pro distribuované dotazy ostatních. Práce jednoho uzlu nenarušuje celý systém, který nepřetržitě pracuje.
* Nezávislost na hardware, operačním systému, síti i SŘBD.
 
To má řadu výhod, jako
# Vysoká efektivita zpracování a racionalizace provozu – data jsou umístěna v místech, kde jsou nejčastěji využívána, vyšší výkonnost – zátěž zpracování je díky paralelismu rozdělena na více počítačů, větší dostupnost – možnost sdílení společných informačních fondů, DDBS se snadno škáluje – rozšíření konfigurace.
# Snižuje se cena komunikace vhodným rozmístěním dat v uzlech.(data, která uzel používá má lokálně k dispozici).
# Větší spolehlivost a tolerance k chybám (zotavení po chybách díky replikám), možnost zálohování počítačů.
 
Ale i nevýhod
# Větší složitost – návrhu databáze, katalogu dat a jeho správy, transakčního zpracování s problémy uváznutí, optimalizaci dotazů, územní distribucí dat, šíření aktualizace při replikaci, heterogennost dat na jednotlivých uzlech vede k transformacím, komunikace v počítačových sítích – minimalizace počtu a velikost zpráv, výpadky.
# Obtížnější dosazení bezpečnosti a utajení.
# Distribuce řízení.
# Relativní nedostatek standardů, nástrojů a zkušeností.
 
Jsou to komplikované a vzájemně propojené problémy a dosavadní distribuované báze jsou prozatím jen unikátními řešeními. Dosud neexistuje obecný model či návod pro jejich tvorbu.
Jednotné řízení distribuované báze může být realizováno různými formami na různém stupni centralizace řízení.
Důležitou vlastností DDBS je to, že přes rozložení dat do jednotlivých uzlů sítě se jeví celá distribuovaná báze uživateli tak, jako by byla lokální. Distribuce je uživateli skryta a z hlediska jeho potřeb není podstatná. Celá distribuovaná báze dat je popsána v globálním schématu DDBS. To je popis báze nezávislý na distribuci dat a stejný pro všechny uživatele ve všech uzlech sítě. Nejčastěji je globální schéma popsáno pomocí relačního modelu dat.
 
===== Paralelní zpracování v distribuovaných databázích =====
Zajišťování atomického charakteru transakcí v distribuované bázi je řádově složitější, než u lokálních sítí, protože možné poruchy jsou mnohem složitější. V centralizovaných DDBS řídí pořadí vykonávání operací jediný plánovač umístěný v centru DDBS. protože plánovač má kontrolu nad všemi daty v DDBS, mohou se bez problémů použít typy plánovačů pro klasické SŘBD. Připomeňme, že každá transakce může číst a měnit hodnoty objektů v libovolných lokálních bázích dat. Proto případné zrušení transakce, například při distribuovaném uváznutí, je spojeno s většími problémy. Zrušená transakce musí vrátit původní hodnoty objektům, které již změnila. V distribuované bázi to může být zdlouhavá a nákladná operace, proto budou výhodnější takové plánovače, které pracují bez rušení transakcí. U plánovačů pracujících s časovými razítky je nutno sladit lokální hodiny – tak, aby časová razítka byla navzájem různá, i když pocházejí z různých uzlů. V případě decentralizovaných DDBS jsou plánovače v každém lokálním SŘBD. I v decentralizovaných DDBS je možno použít typy plánovačů z klasických SŘBD. Při zamykání objektů zamyká a odemyká Každý lokální plánovač objekty ve své bázi. Problémem je ale kontrola korektního dodržování dvoufázového protokolu zamykání. Řešením může být pozdržení odemknutí všech objektů zamknutých pro transakci, dokud transakce neskončí a pak vyslat všem plánovačům zprávu o skončení transakce. Pak je možno objekty uvolnit.
Hojně využívanou možností je použití protokolu s dvoufázovým potvrzením. Předpokladem je autonomní činnost uzlů s použitím lokálních žurnálů pro případné použití operací ROLLBACK. Jeden z uzlů převezme roli koordinátora a určuje, kdy je transakce potvrzena nebo odmítnuta a navrácena do výchozího stavu. Komunikace probíhá prostřednictvím zasílání zpráv mezi koordinátorem a ostatními uzly. V první fázi koordinátor pošle všem zúčastněným uzlům zprávu příprava na potvrzení T. Každý autonomní uzel se rozhodne, zda T potvrdí, nebo odmítne svou část T. Pokud potvrdí commit např. < Ready T>, nemůže již přejít do stavu abort. Jinak pošle zprávu < Do not commit T> . Druhá fáze začíná po získání všech odpovědí koordinátorem. Pokud odpovědi nedojdou v odhadnutém čase, předpokládá se zamítnutí. Koordinátor pošle zprávu < Commit T> nebo < Abort T> na všechny zúčastněné uzly. Následně uzly provedou požadovanou akci a informují koordinátora o provedení operace.
V decentralizovaném systému se těžko zjišťuje uváznutí, to nemůže detekovat žádný lokální plánovač. Proto je výhodné uváznutím předcházet, např. použitím plánovačů pracujících s časovými razítky, kde k uváznutí nedochází.