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

Podobné dokumenty
Konzistentnost. Pro a proti replikaci. Vztah ke škálovatelnosti (1)

Replikace. Pro a proti replikaci. Vztah ke škálovatelnosti (1)

Příprava na zk. z KIV/DS

Architektury paralelních počítačů II.

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

Paralelní programování

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

Procesy a vlákna (Processes and Threads)

Paralelní programování

Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

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

Procesy a vlákna - synchronizace

Správy cache. Martin Žádník. Vysoké učení technické v Brně, Fakulta informačních technologií v Brně Božetěchova 2, Brno

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

Vzájemné vyloučení procesů

TÉMATICKÝ OKRUH TZD, DIS a TIS

Paralelní programování

NSS - Cache 5. LECTURE MARTIN TOMASEK

O datových typech a jejich kontrole

Specifikace požadavků. POHODA Web Interface. Verze 1.0. Datum: Autor: Ondřej Šrámek

Programovací jazyk Pascal

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

Úloha 1. Úloha 2. Úloha 3. Text úlohy. Text úlohy. Text úlohy

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

IUJCE 07/08 Přednáška č. 6

Čas a kauzalita v DS

Přednáška. Systémy souborů. FAT, NTFS, UFS, ZFS. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

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

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Architektury paralelních počítačů I.

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

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

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky

Autor. Potřeba aplikací sdílet a udržovat informace o službách, uživatelích nebo jiných objektech

Lineární datové struktury

IB111 Úvod do programování skrze Python Přednáška 7

Systém souborů (file system, FS)

LICENČNÍ PODMÍNKY pro užití softwarového programu FINYS a souvísejících služeb

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Ing. Igor Kopetschke TUL, NTI

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Transakce a zamykání Jiří Tomeš

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Jak správně navrhnout moderní a efektivní řešení pro ukládání dat

Počítačová sestava paměti, operační paměť RAM

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

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

Reprezentace dat v informačních systémech. Jaroslav Šmarda

Disková pole (RAID) 1

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

Činnost počítače po zapnutí

PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2

Pozice sběrnice v počítači

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

Sdílení dat mezi podprogramy

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

Distribuované souborové systémy (DFS)

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Komunikace se Základními registry v prostředí MČ Praha 7

5. STRUKTURA PLC PROGRAMU

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Microsoft SharePoint Portal Server Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

Disková pole (RAID) 1

Algoritmizace. 1. Úvod. Algoritmus

Paralelní architektury se sdílenou pamětí typu NUMA. NUMA architektury

Patrol Management System 2.0

Management procesu II Mgr. Josef Horálek

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

Struktura programu v době běhu

Technická specifikace soutěžených služeb

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

Paměti Flash. Paměti Flash. Základní charakteristiky

Zajištění komplexních sluţeb pro provoz systémové infrastruktury OSMS ZADÁVACÍ DOKUMENTACE

PŘÍLOHA C Požadavky na Dokumentaci

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

Copyright 2012 EMC Corporation. All rights reserved.

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

Tonda Beneš Ochrana informace podzim 2011

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

8.2 Používání a tvorba databází

PROGRAMOVÁNÍ ŘÍDÍCÍCH SYSTÉMŮ

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

EKONOMICKÝ A LOGISTICKÝ SOFTWARE. Luhačovice

Cíle. Teoretický úvod

Internetový obchod ES Pohoda Web Revolution

Analýza toku dat. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 15. listopad, 2012

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

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.

Provádění instrukcí. procesorem. Základní model

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

DUM 12 téma: Příkazy pro tvorbu databáze

Typy a použití klopných obvodů

Datové struktury 1: Základní datové struktury

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

Soubor jako posloupnost bytů

10 Balíčky, grafické znázornění tříd, základy zapozdření

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Transkript:

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é rozlehlosti. 4. Výkonnost se snižuje, protože s opravou jedné kopie souvisí i oprava ostatních kopií pro zachování konzistentnosti. 3.12.2007 DS - Konzistentnost a replikace 2

Vztah ke škálovatelnosti (1) Pro zlepšení škálovatelnosti jsou používány replikace a cache. Škálovatelnost je obecně prezentována jako problém průchodnosti. Replikace dat v blízkosti potenciálních uživatelů může zlepšit výkonnost a zlepšit škálovatelnost. Potenciální problémy: Šířka pásma požadovaná pro aktualizaci kopií může být velká. Udržování konzistentních replikovaných kopií může být problémové z pohledu škálovatelnosti. Proto je třeba dodržovat určité dohody při replikaci dat. 3.12.2007 DS - Konzistentnost a replikace 3

Vztah ke škálovatelnosti (2) Vícenásobné kopie. zvyšují výkonnost a redukují dobu přístupu zvyšují také režii pro udržení konzistentnosti příklad: N - krát replikované objekty frekvence čtení R, frekvence zápisu W je-li R <<W vysoká konzistentnost zvyšuje režii, zprávy jsou zbytečné Zdrojem řešení je udržování konzistentnosti volba vhodné sémantiky těsná konzistentnost vyžaduje globálně synchronizované hodiny Řešení: snížíme požadavky na konzistentnost jsou k dispozici různé stupně konzistentnosti 3.12.2007 DS - Konzistentnost a replikace 4

Úvod do konzistenčních modelů K popisu a řešení problému konzistentnosti bylo vytvořeno mnoho modelů, ve kterých se mluví o operacích čtení a zápisu nad distribuovanou datovou pamětí. Každý proces je chápán tak, že má k dispozici kopii celé datové paměti. Zápis je nějaká změna lokální kopie, kterou je třeba replikovat do ostatních vzdálených kopií. Čtení je operace, která data nemodifikuje. Běžně je operace čtení chápána tak, že vrací výsledek poslední operace zápisu do datové položky. Konzistenční model (konzistenční sémantika) je dohoda mezi procesy a datovou pamětí. Pokud budou procesy dodržovat dohody dané modelem, bude paměť pracovat korektně. 3.12.2007 DS - Konzistentnost a replikace 5

Data-Centric konzistenční modely Obecná organizace paměti dat, fyzicky distribuované a replikované několika procesy. 3.12.2007 DS - Konzistentnost a replikace 6

Striktní konzistentnost Definice: jakékoliv čtení datové položky X vrací hodnotu odpovídající výsledku poslední operace zápisu X. Definice implicitně předpokládá existenci absolutního globálního času. Je přirozeně dostupná v jednoprocesorových systémech, ale neimplementovatelná v distribuovaných systémech. Dva procesy, pracující s týmiž daty. a) Striktně konzistentní paměť. b) Paměť, které není striktně konzistentní. 3.12.2007 DS - Konzistentnost a replikace 7

Linearizovatelnost a sekvenční konzistentnost (1) Sekvenční konzistentnost: Výsledek jakéhokoliv provádění je tentýž, jako kdyby operace čtení a zápisu všech procesů nad datovou pamětí byly prováděny v nějakém sekvenčním pořadí a operace všech individuálních procesů se jeví v téže sekvenci, ve které je specifikována jejich programem. Všechny procesy vidí totéž pořadí operací zápisu. a) Sekvenčně konzistentní paměť. b) Paměť, která není sekvenčně konzistentní. 3.12.2007 DS - Konzistentnost a replikace 8

Linearizovatelnost Definice: Výsledek jakéhokoliv provádění je tentýž jako kdyby operace čtení a zápisu všech procesů nad datovou pamětí byly prováděny ve stejném pořadí a operace všech individuálních procesů odpovídají v této sekvenci pořadí, specifikovaném jejich programem.navíc pokud platí, že TS(op 1 (x)) < TS( op 2 (y)), pak operace op1(x) musí nastat dříve, než operace op2(y). V tomto modelu se předpokládá, že operace přijímajíčasové značky z globálně dostupného časového zdroje s konečnou přesností. Linearizovatelná datová paměť je také sekvenčně konzistentní, ale je implementačně náročnější než sekvenční konzistentnost. Linearizovatelnost se primárně používá při formální verifikaci konkurentních programů. 3.12.2007 DS - Konzistentnost a replikace 9

Linearizovatelnost a sekvenční konzistentnost (2) Process P1 Process P2 Process P3 x = 1; print ( y, z); y = 1; print (x, z); z = 1; print (x, y); Tři souběžně běžící procesy. 3.12.2007 DS - Konzistentnost a replikace 10

Linearizovatelnost a sekvenční konzistentnost (3) x = 1; x = 1; y = 1; y = 1; print ((y, z); y = 1; z = 1; x = 1; y = 1; print (x,z); print (x, y); z = 1; print (x, z); print(y, z); print (x, z); print (x, z); z = 1; z = 1; x = 1; print (y, z); print (x, y); print (x, y); print (y, z); print (x, y); Prints: 001011 Prints: 101011 Prints: 010111 Prints: 111111 Signature: 001011 (a) Signature: 101011 (b) Signature: 010111 (c) Signature: 111111 (d) Čtyři platné posloupnosti provádění procesů z předchozího obrázku. 3.12.2007 DS - Konzistentnost a replikace 11

Sekvenční konzistentnost a serializovatelnost Sekvenční konzistentnost je porovnatelná se serializovatelností v případě transakcí. Odlišnost je v úrovni rozlišení: sekvenční konzistentnost je definována v termínech operacíčtení a zápis, serializovatelnost v termínech transakcí, které zahrnují tyto operace. Sekvenční konzistentnost představuje uživatelsky přívětivý model, ale má vážné problémy s výkonností. Proto byly navrženy slabší modely konzistentnosti. 3.12.2007 DS - Konzistentnost a replikace 12

Příčinná (Casual) konzistentnost (1) Příčinná konzistentnost vyžaduje úplné uspořádání pouze pro operace zápisu, které jsou vzájemně závislé. 1. Operace read je příčinně vztažena k operaci write, pokud write zapisuje data, která readčte. 2. Operace write je příčinně vztažena k operaci read, která nastane dříve než write v tomtéž procesu. 3. Jestliže read závisí na write_1 a write_2 na read, pak také write_2 závisí na write_1. Nutné podmínky: 1. Zápisy, které mají potenciálně příčinný vztah musí být viděny všemi procesy ve stejném pořadí. 2. Konkurentní zápisy mohou být viděny v různých pořadích v různých pořadích v různých procesech. 3.12.2007 DS - Konzistentnost a replikace 13

Příčinná (Casual) konzistentnost (2) Tato sekvence je přípustná s příčinně konzistentní pamětí dat, ale ne jako sekvenčně nebo striktně konzistentní. 3.12.2007 DS - Konzistentnost a replikace 14

Příčinná (Casual) konzistentnost (3) a) Porušení příčinně konzistentní paměti. b) Správná sekvence událostí v příčinně konzistentní paměti. 3.12.2007 DS - Konzistentnost a replikace 15

FIFO konzistentnost (1) Nezbytné podmínky: 1. Zápisy od jednoho procesu jsou ostatními procesy viděny v tomtéž pořadí, ve které byly vyslány 2. Zápisy od různých procesů mohou být viděny různými procesy v různém pořadí. 3.12.2007 DS - Konzistentnost a replikace 16

FIFO konzistentnost (2) Platná sekvence událostí FIFO konzistentnosti 3.12.2007 DS - Konzistentnost a replikace 17

FIFO konzistentnost (3) Process P1 Process P2 Process P3 x = 1; print ( y, z); y = 1; print (x, z); z = 1; print (x, y); Tři souběžně běžící procesy. 3.12.2007 DS - Konzistentnost a replikace 18

FIFO konzistentnost (4) x = 1; print (y, z); y = 1; print(x, z); z = 1; print (x, y); x = 1; y = 1; print(x, z); print ( y, z); z = 1; print (x, y); y = 1; print (x, z); z = 1; print (x, y); x = 1; print (y, z); Prints: 00 Prints: 10 Prints: 01 (a) (b) (c) FIFO konzistentní pohledy tří procesů na pořadí provádění příkazů z předchozího obrázku. Zvýrazněné příkazy print generují výstup. 3.12.2007 DS - Konzistentnost a replikace 19

FIFO konzistentnost (5) Process P1 x = 1; if (y == 0) kill (P2); Process P2 y = 1; if (x == 0) kill (P1); Synchronizace dvou konkurentních procesů. Při FIFO konzistentnosti dávají různé výsledky (běží dva procesy, jeden proces nebo žádný proces). 3.12.2007 DS - Konzistentnost a replikace 20

Slabá (Weak) konzistentnost (1) Synchronizační proměnné zajišťují konzistentnost skupiny operací (transakcí), ne individuálních zápisů a čtení. Vlastnosti: 1. Přístup k synchronizačním proměnným spojeným s datovou pamětí je sekvenčně konzistentní 2. Není dovoleno, aby byla nad synchronizační proměnnou provedena operace zápisu, dokud není na všech místech dokončena předchozí operace zápisu 3. Není dovolena operace čtení nebo zápisu nad daty, dokud nejsou provedeny všechny předchozí operace nad synchronizačními proměnnými. 3.12.2007 DS - Konzistentnost a replikace 21

Slabá (Weak) konzistentnost (2) int a, b, c, d, e, x, y; /* variables */ int *p, *q; /* pointers */ int f( int *p, int *q); /* function prototype */ a = x * x; /* a stored in register */ b = y * y; /* b as well */ c = a*a*a + b*b + a * b; /* used later */ d = a * a * c; /* used later */ p = &a; /* p gets address of a */ q = &b /* q gets address of b */ e = f(p, q) /* function call */ Část programu, kde mohou být některé proměnné uloženy v registrech. 3.12.2007 DS - Konzistentnost a replikace 22

Slabá (Weak) konzistentnost (3) a) Platná posloupnost událostí pro slabou konzistentnost. b) Neplatná posloupnost pro slabou konzistentnost. 3.12.2007 DS - Konzistentnost a replikace 23

Uvolňovaná (Release) konzistentnost (1) Platná posloupnost událostí pro uvolňovanou konzistentnost. 3.12.2007 DS - Konzistentnost a replikace 24

Uvolňovaná (Release) konzistentnost (2) Pravidla: Před provedením operace čtení nebo zápisu nad sdílenými daty musí být úspěšně ukončeny všechny předchozí požadavky Před provedením požadavku uvolnění (release), musí být ukončeny všechny předchozíčtení a zápisy daného procesu Přístupy k synchronizačním proměnným jsou FIFO konzistentní (sekvenční konzistentnost není požadována). 3.12.2007 DS - Konzistentnost a replikace 25

Vstupní (Entry) konzistentnost (1) Podmínky: Získání přístupu k synchronizačním proměnným vztaženým k procesu je požadováno teprve tehdy, když jsou provedeny všechny opravy chráněných sdílených dat vztažených k tomuto procesu. Před povolením režimu výlučného přístupu k synchronizační proměnné procesem nesmí mít jiný proces přístup k této synchronizační proměnné ani v sdíleném (nevýlučném) režimu. Po ukončení režimu výlučného přístupu k synchronizační proměnné nemůže být proveden sdílený přístup k této synchronizační proměnné jinými procesy dokud není vzat na zřetel vlastníkem proměnné. 3.12.2007 DS - Konzistentnost a replikace 26

Vstupní (Entry) konzistentnost (2) Platná sekvence událostí pro vstupní konzistentnost. 3.12.2007 DS - Konzistentnost a replikace 27

konzistentnost přísná linearizovatelnost sekvenční příčinná FIFO konzistentnost slabá Přehled konzistenčních modelů popis Absolutní uspořádání v čase pro všechny události sdílených přístupů. Všechny procesy musí vidět všechny sdílené přístupy ve stejném pořadí. Přístupy jsou navíc uspořádány podle globálních (nejednoznačných) časových značek. Všechny procesy vidí všechny sdílené přístupy ve stejném pořadí. Přístup není uspořádán v čase. Všechny procesy vidí příčinně svázané sdílené přístupy v tomtéž pořadí. Všechny procesy vidí zápisy ostatních procesů v pořadí, ve kterém byly použity. Zápisy od různých procesů nemusí být viděny v tomtéž pořadí. (a) popis Sdílená data mohou být chápána jako konzistentní pouze po ukončení synchronizace. uvolňující Sdílená data jsou vytvořena konzistentně po ukončení kritické sekce. vstupní Sdílená data náležející kritické oblasti jsou vytvořena konzistentně po vstupu do kritické sekce. a) Konzistentní modely, které nepoužívají synchronizační operace. b) Modely se synchronizačními operacemi 3.12.2007 DS - Konzistentnost a replikace 28 (b)

Ostatní konzistenční modely (Klient-Centric konzistenční modely) Předchozí studované modely se týkaly údržby konzistentní datové paměti v případě konkurentních operací zápisu a čtení. Jiná třída distribuovaných datových pamětí je charakterizována tím, že postrádá souběžné opravy. Tj. mnoho operací požaduje čtení datové paměti, ale ne zápisy. Takové datové paměti používají velmi slabou formu konzistentnosti, známou jako možná, konečná (eventual) konzistentnost. 3.12.2007 DS - Konzistentnost a replikace 29

Možná (Eventual) konzistentnost Mezi systémy, kde může být velmi uvolněná konzistentnost patří: DNS systém Web. Otázka zní: jak rychle mohou být opravy přístupné procesům, které data pouze čtou? Po nějaké době vidí všechny repliky všechny opravy a přechází do konzistentního stavu (jsou postupně konzistentní). Tento typ konzistentnosti je znám jako možná (konečná) konzistentnost. Možná (konečná) konzistentnost vyžaduje zadávat pouze takové opravy, u kterých je zaručeno, že budou v konečné době doručeny do všech replik. Možná (konečná) konzistentnost pracuje dobře pokud se klienti vždy připojují k téže replice. Pokud se do distribuovaných systémů přidá mobilita, může systém zkolabovat velmi rychle. 3.12.2007 DS - Konzistentnost a replikace 30

Možná (Eventual) konzistentnost Princip přístupu mobilních uživatelů k různým replikám distribuované databáze. 3.12.2007 DS - Konzistentnost a replikace 31

Monotónníčtení Operace čtení jsou prováděny jedním procesem P na dvou různých lokálních kopiích téže datové paměti. a) Monotónníčtení konzistentní datové paměti b) Datová paměť, kde se neprovádí monotónníčtení. 3.12.2007 DS - Konzistentnost a replikace 32

Monotónní zápis Operace zápisu prováděné jedním procesem P nad dvěma různými lokálními kopiemi téže datové paměti a) Monotónní zápis konzistentní datové paměti b) Datová paměť, která neprovádí konzistentní monotónní zápis. 3.12.2007 DS - Konzistentnost a replikace 33

Čtení vlastních zápisů a) Datová paměť, která poskytuje konzistentnost typu čtení vlastních zápisů. b) Datová paměť, která to neposkytuje. 3.12.2007 DS - Konzistentnost a replikace 34

Zápisy následující po čtení a) Datová paměť s konzistentností typu writes-follow-reads. b) Datová paměť bez konzistentnosti typu writes-follow-reads. 3.12.2007 DS - Konzistentnost a replikace 35