Řízení paralelního zpracování

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Řízení paralelního zpracování se využívá v oblasti informačních technologií a výpočetní techniky, zejména v oblasti počítačového programování (viz také souběžné programování, paralelní programování), operační systémy (viz také paralelní výpočty), multiprocesory a databáze, kde souběžné řízení zajišťuje správné výsledky pro souběžné operace, které jsou vytvářeny, při získávání těchto výsledků.

Počítačové systémy, softwary i hardwary, se skládají z modulů nebo komponent. Každá komponenta je navržen tak, aby fungovala správně, tj. +more aby se podřídila nebo splňovala určitá pravidla konzistence. Když komponenty, současně komunikují prostřednictvím zpráv nebo sdíleného přístupu dat (v paměti nebo v úložišti), může být určitá konzistence komponent porušena další komponentou. Obecné oblasti kontroly shodnosti se stanoví pravidly, metodami, metodologií návrhu a teoriemi k udržení konzistence složek působících při interakci současně, a také konzistencí a správností celého systému.

Například, selhání v řízení souběžnosti má za následek poškození dat z čtení nebo zápisu.

Souběžné řízení v databázích

Při souběžném zpracování transakcí se samozřejmě může stát, že různé transakce zpracovávají v jeden okamžik stejná data. Pokud se různé transakce pokusí aktualizovat stejné údaje, může dojít ke ztrátě informace v případě, že změněná data jsou opětovně změněna jinou transakcí dříve, než je původní změna potvrzena. +more K problémům ovšem může dojít i v případě že transakce data pouze čte, pokud se je jiná transakce zároveň pokouší změnit nebo nová data přidává. V takovém případě může transakce načíst doposud nepotvrzené změny, případně změny sice potvrzené, ovšem nekonzistentní s daty transakce (fantómové řádky, nereprodukovatelné čtení). To může způsobit problémy především u dlouhotrvajících transakcí, které zpracovávají velké množství dat.

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:

* Atomicity (nedělitelnost) - transakce se tváří jako jeden celek, tedy je vykonána celá, nebo vůbec * Consistency (konzistence) - transakce může měnit databázi pouze z jednoho konzistentního stavu do druhého konzistentního stavu * Isolation (izolace) - transakce je izolovaná od probíhajících změn (jsou viditelné pouze potvrzené (commited) změny), tj. dílčí efekty transakce nejsou viditelné ostatním * Durability (trvanlivost) - změny v databázi provedené potvrzenou transakcí musí být trvanlivé

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. +more 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“

Ten nastane v případě, kdy jedna transakce mění záznam v databázi a poté skončí chybou. Ke změněnému záznamu přistupuje jiná transakce dřív, než dojde k vrácení původní hodnoty.

Problém nesprávného součtu „Incorrect Summary“

Dalším problémem, který může nastat při nekontrolovaném spouštění souběžných transakcí je, pokud jedna transakce počítá součet hodnot a během tohoto výpočtu druhá transakce provádí změny některých těchto hodnot používaných ve výpočtu transakce první. Funkce může počítat s některými hodnotami před tím, než jsou změněny a s některými až po změně, tedy výsledek funkce není správný.

Mechanismy, kontroly souběžnosti

Protokoly kontroly souběžnosti se používají k omezení spouštění souběžných transakcí v centralizovaném databázovém systému a v distribuovaném pouze k serializovatelnému spouštění.

Kategorie

Protokoly kontroly souběžnosti se dělí na dvě kategorie: * pesimistické * optimistické

Metody

Existuje mnoho metod řízení souběžnosti, tyto metody mají mnoho variant a v některých případech se mohou i překrývat a kombinovat.

* 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. +more 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. +more 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: * Multiversion concurrency kontrol - Dalším protokolem pro řízení konkurenčního běhu transakcí, který může také používat koncept časových razítek, udržuje staré hodnoty dat, když jsou tato data měněna. Tento způsob je znám jako Multiversion concurrency control. +more, protože je udržováno několik verzí hodnot dat. Když transakce požaduje přístup k záznamu, časové razítko transakce je porovnáno s časovými razítky různých verzí záznamu. Příslušná hodnota je vybrána, aby byla udržena serializovatelnost právě spuštěného rozvrhu, pokud je možná.

* Timestamp ordering (uspořádání podle časových razítek) - Tato metoda je založena na uspořádání transakcí podle časových razítek. Rozvrh, ve kterém transakce se účastní, je pak serializovatelný a ekvivalentní sériový rozvrh má transakce uspořádány podle časových razítek. +more Na rozdíl od dvoufázového zamykání, kde je rozvrh serializovatelný tím, že je ekvivalentní nějakému sériovému rozvrhu, který povoluje zamykání, je u uspořádání časových razítek rozvrh ekvivalentní konkrétnímu sériovému uspořádání odpovídajícímu uspořádání podle časových razítek.

Hlavní cíle mechanizmů kontroly souběžnosti

Za prvé je nutné u každé transakce udržovat integritu pravidel, zatímco transakce běží souběžně a tím i integritu celého systému. Dále je potřeba dosahovat potřebného výkonu. +more Další subjekty, které mohou mít vliv na řízení souběžnosti jsou obnova a replikace.

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. +more 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. +more(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í. +more # 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. +more 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.

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top