Hledejte v chronologicky řazené databázi studijních materiálů (starší / novější příspěvky).

Při duplikaci dat jsou dva základní problémy:

· udržování shodného aktuálního obsahu všech kopií

· náklady na uložení dat v jednotlivých uzlech

Obtížnost udržování duplikátů je dána:

· požadavkem na synchronizaci kopií z časového hlediska

· tím, že všechny kopie musí být shodné v tomtéž časovém okamžiku

· četností změn - frekvence zápisů, aktualizace atd. Mluvíme o dynamických (mnoho změn) a statických (málo změn)

· rozsahem uvažovaných dat

Je nutné se vyhýbat synchronizaci rozsáhlých dat v reálném čase.

--------------------------------------------------------------------------------------------------------------

Doporučení pro případnou duplikaci

Jsou vhodné soubory s následujícími vlastnosti:

· Pracuje s nimi velký počet uživatelů

· Zpracovávají velké počty transakcí

· Data jsou v zásadě statická

· Aktualizace jsou jednoduché (lze snadno udržet integritu systému)

· Aktualizace se nemusí provádět v reálném čase

· Rozsah dat není příliš velký

Některé z faktorů, které ovlivňují rozhodnutí o distribuci dat

· objem využívaných dat

· způsob přístupu k datům (zda jde o čtení, zápis nebo aktualizaci)

· požadovaná doba přístupu k datům

· rozmístění uživatelů dat

· frekvence užití dat jednotlivými uzly

· použití aplikací v reálném čase

· požadavky na ochranu a archivaci dat

· požadavky na aktualizaci v reálném čase

Duplikovaná data

se používají především z důvodů:

· umožnit více uživatelům lokální přístup k databázi

· umožnit souběžný přístup několika uživatelům k danému souboru

· umožnit přístup k datům i v případě poruchy nějakého uzlu

· zvýšení spolehlivosti dat

Formy dat rozlišované z hlediska distribuce dat

1. Centralizovaná data (celá datová základna je umístěna v jednom uzlu)

2. Rozdělená data (data jsou umístěna v různých uzlech a žádná položka není umístěna ve stejném uzlu)

3. Duplikovaná dat (celá datová základna je umístěna v různých uzlech distribuovaného systému)

Strategie duplikace dat

1. Distribuovaná snímková datová základna

V tomto případě se udržuje jedna celková datová základna v jednom uzlu systému a z ní se extrakcí a duplikací vytvářejí kopie její části. Tyto části jsou postoupeny na daný uzel ke zpracování. Zde nastává problém, když v tom uzlu nastane aktualizace databáze (části), musí se na celkové databázi uzamknout a až po provedení aktualizace v lokálním uzlu se aktualizace provede i do celkové datové základny.

2. Distribuovaná duplikovaná datová základna

Celá datová základna je umístěna v různých uzlech. Pokud dochází k aktualizaci databáze, pak se musí změny automaticky promítnout do všech kopií dat, což je velmi časově nákladné.

Dělená datová základna

1. Distribuovaná neintegrovaná datová základna

Je to množina nezávisle provozovaných datových bází. K bázím lze přistupovat pomocí RDA (Remote Database Access) – přístupový mechanismus ke vzdálené databázi

2. Distribuovaná integrovaná datová základna

Data jsou distribuována do více uzlů, kdy datová základna je integrována., tj. aplikačnímu programu, který s touto datovou základnou bude pracovat, je prezentována jedna logicky centralizovaná databáze. Základna je popsána jedním globálním distribuovaným schématem.

Tato služba programům umožňuje:

· přístup k programům na sdíleném disku

· přístup k souborům umístěných mimo uzel, z kterého je program volán

· přispívá k transparenci umístění

· stejnými jazykovými prostředky přistupovat k lokálním i vzdáleným souborům

Funkce, které souborová služba zajišťuje, můžeme rozdělit do tří skupin:

1. Funkce pro práci se soubory (čtení, vytváření, zápis atd.)

2. Funkce pro práci s katalogem (katalog si můžeme představit jako speciální soubor, který obsahuje informace o mapování jmen (textových) souborů odpovídajícímu identifikátoru souboru, dále zajišťuje řízení přístupových práv k souborům. jména souborů – většinou binární čísla

3. Funkce zajišťující provádění transakcí na souboru (ty jsou především potřebné pro souběžné (paralelní) provádění transakcí

Většina implementací souborových systémů zajišťuje první dvě funkce, tu třetí jenom některé z nich.

Distribuce dat

Rozdělení celkové datové základny na jednotlivé části a umístění těchto částí do příslušných uzlů daného systému. Při návrhu distribuce se sledují tyto cíle:

1. Dosažení místního zpracování (data i aplikace jsou ve stejném uzlu jako program Þ rychlejší odezvy k datům)

2. Dosažení vyšší spolehlivosti při zpracování dat (ta se dosahuje umístěním kopií do několika uzlů systému)

3. Dosažení rozdělení pracovní zátěže (ta se provádí za účelem dosažení co nejvyššího stupně paralelního zpracování)

Postup:

1. Hlavní agent v uzlu A zahájí distribuovanou transakci (BEGIN TRANSACTION) a přečte zůstatek z konta ZKONTO.

2. Hlavní agent zřídí v uzlu B agenta 1 a předá mu „pokyn“ k provedení operace přičtení částky M k zůstatku konta NAKONTO. Agent 1 provede tuto činnost lokálně, pak se jeho činnost i celá distribuovaná transakce ukončí (COMMIT) pod řízením hlavního agenta.

Programové komponenty řídících provádění transakcí jsou označovány DTM v uzlu hlavního agenta, LMT (local) v ostatních uzlech.

Distribuce dat

Distribuci dat můžeme uživatelsky velmi ovlivnit. Je to jedna z významných fází projektování.

Formy dat:

· soubory

· data databázových systémů

Soubory

Soubory jsou umístěny v různých uzlech a pracuje s nimi souborová služba (zabezpečená file serverem). Souborová služba je základní komponentou distribuovaných systémů. Buď je součástí operačního systému nebo jeho nadstavbou.

Distribuovaná transakce

· musí v příslušných uzlech provést příslušné procesy, tzn. agenty dané transakce

· agent je lokální proces daného uzlu, který provádí určité operace pro distribuovanou transakci. Agenti spolu komunikují prostřednictvím zpráv.

· pro provádění distribuované transakce platí následující pravidla:

1. Celá transakce je zahájena hlavním agentem. Když aplikační program (případně SŘBD) požaduje provedení distribuované transakce, zahájí se proces hlavního agenta. Uzel, v němž je hlavní agent umístěn (kam přichází požadavek na provedení operace), se nazývá uzel vzniku transakce.

2. hlavní agent zodpovídá za vyslání operací začátku (BEGIN), ukončení (COMMIT, ABORT) a to vše se vysílá ke všem uzlům (agentům).

3. Vznik nových uzlů může vyvolat vždy hlavní agent.

4. Distribuovanou transakci je nutno ukončit na všech uzlech.

Příklad:

Převod částky v distribuovaném systému z jednoho konta na druhé s rozmístěním uzlů a zdrojů. Chceme převést jednou distribuovanou transakcí částku M z konta ZKONTO (K1) uloženého v souboru v uzlu A na konto NAKONTO (K2) v uzlu B.

Případ sériového provedení:

Při rozložení, kdy výsledek je stejný jako u sériového provedení Þ sériově ekvivalentní proložení

Plán provádění transakce - uspořádání elementárních kroků množiny prováděných transakcí.

Plán je sériově ekvivalentní, když výsledek je shodný.

Pro zajištění sériově ekvivalentního plánu je nutno použít prostředky synchronizace. Lze použít především zámky a časové značky.

Použití zámků

Každý datový objekt (věta, soubor…) může být první transakcí, která s ním pracuje, uzamknut. Transakce, která objekt uzamkne, tj. přidělí mu svůj zámek, způsobí nepřístupnost objektu pro ostatní transakce.

Pokud se transakce snaží uzamknout uzamknutý objekt, musí provést některou z následujících činností:

- čekat na zrušení zámku (nejobvyklejší, ale je možné „zatuhnutí systému“)

- neúspěšně ukončit provádění (ABORT) s využitím time out

- vyvolat neúspěšné ukončení původní transakce, aby získala přístup

Zámky mohou zajistit serializovatelnost (sériové provedení). Pokud je transakce dobře formovaná a dvoufázová, je výsledné provádění transakce serializovatelné.

Transakce je dobře formovaná, pokud:

- uzamkne každý objekt, k němuž přistupuje

- nezamkne žádný objekt, který už je zamknut

- po svém provedení zruší zámek

Transakce je dvoufázová, pokud uzamkne všechny své potřebné objekty dříve než zruší jakýkoliv ze svých zámků.

Transakce prochází 2 fázemi:

V první se provede vícefázové uzamčení, ve druhé se provede zrušení uzamčení.

Existují výlučné zámky (uzamkne objekt a je jeho výlučným uživatelem) a sdílené zámky (jiným objektům je omezený přístup, například pouze čtení)

Časové značky

Je to číslo spojené s objektem nebo s událostí (tj. kdy značka vznikla)

· každá transakce musí být označena časovou značkou, datový objekt je označen časovou značkou poslední transakce, která větu četla nebo zapsala

· dochází k aktualizaci značek při čtení nebo zápisu

· nastane konflikt, pokud stará transakce čte nejnovější značky

· serializovatelnost se zabezpečí zvolením návazností časových značek

· COMMIT znamená úspěšné ukončení transakce a trvalý zápis

· ABORT znamená neúspěšné ukončení transakce a návrat k předchozímu stavu

Do teď vše probíhalo v jednom uzlu.

Transakce T: Transakce U:

transakce T

Transakce U

Transakce T

Transakce U

read (a)

read (a)

read (c)

read (c)

write (c+3)

read (b)

read (b)

write (a-2)

write (a-2)

write (c+3)

read (b)

write (b+2)

write (b+2)

read (b)

write (b-3)

write (b-3)

Nesprávný výsledek Správný výsledek – sériově ekvivalentní proložení

Případ sériového provedení:

Výsledek: snížení A o 2, snížení B o 1, zvýšení C o 3

Příklad se špatným provedením

Příklad s dobrým provedením

Vlastnosti transakce

1. Atomicita (transakce se považuje za nedělitelnou činnost) – celá posloupnost činností tvořících transakci se buď provede zcela nebo se neprovede žádná činnost

2. Konzistence (transakce převádí systém z jednoho konzistentního stavu do druhého)

3. Izolace (transakce „vidí“ na systému pouze konzistentní stavy, jiné stavy jsou skryty)

4. Trvalost – pokud dojde k dokončení transakce (COMMIT), výsledky jejího provedení se trvale vepíší do souboru

Může se stát (narušení atomicity):

- porucha systému

- při souběžném provádění transakcí na stejném souboru by mohlo dojít k situaci, kdy jedna transakce získá přístup k nekonzistentnímu stavu Þ zajištění souběžného provádění transakcí (jedná se o problém synchronizace)

Příklad: Souběžné provádění transakcí na souboru

Uzel T provádí transakci T

Uzel U provádí transakci U

Transakce T: Transakce U:

čtení zůstatku (a) konta A čtení zůstatku (c) konta C

čtení zůstatku (b) konta B zápis nového zůstatku (c+3) na konto C

zápis nového zůstatku (a-2) na konto A čtení zůstatku (b) konta B

zápis nového zůstatku (b+2) na konto B zápis nového zůstatku (b-3) na konto B

Dělení transakcí:

1. Podle počtu uzlů, se kterými transakce pracuje

a) normální (všechny transakce jsou umístěny v jednom uzlu distribuovaného systému)

b) distribuovaná (transakce jsou umístěny v různých uzlech distribuovaného systému)

2. Podle doby trvání transakce

a) on-line - s krátkou dobou života (řádově sekundy), v distribuovaných systémech pracují obvykle s relativně malou částí databáze

b) batch (dávkové) -s dlouhou dobou života, pracují obvykle s velkou částí databáze

Významné vlastnosti transakce:

- provádění ve dvou fázích:

1. Operace transakce se provedou a nové hodnoty se nezapíší do databáze, ale do pracovního souboru

2. Teprve po provedení všech operací transakce se nové hodnoty zapíší do databáze

Architektura klient – server:

KLIENT SERVER

První transakce

(fáze)

Otevření transakce, požadavky

provedení požadavků a zápis do pracovního souboru

Druhá transakce (COMMIT)

(fáze)

Uzavření transakce

Trvalý zápis z pracovního souboru

do databáze

Þ transakce je atomická jednotka činnosti - buď se provede celá nebo se zruší (neprovede se žádná z těchto činností)

Zdroje práv

Z pohledu stromové struktury – odkud může uživatel ještě získat práva:

Ø User – jako samostatný uživatel

Ø Group – jako člen skupiny

Ø Security equivalent – jako rovnocenný k jinému uživateli

IRF – Inherited Rights Filter – filtr pro prosívání práv do nižších úrovní.

File system – typy práv:

Ø Supervisor

Ø Read – otevření a čtení souboru

Ø Write – Otevření a editace obsahu

Ø Modify – přejmenování adresáře či souborů a změna atributů

Ø File scan

Ø Erase – mazání

Ø Create – tvorba

Ø Access control

TRANSAKCE V DISTRIBUOVANÉM SYSTÉMU

Transakce = proces, který považujeme na dané rozlišovací úrovni pohledu na distribuovaný systém za dále nedělitelný a který převádí distribuovaný systém z jednoho konzistentního stavu do druhého konzistentního stavu.

Replikace

V systému se mohou vyskytovat repliky čtyř druhů:

Ø Master replika

Ø Read / write replika – obraz, který Admin přesunuje na jinou část sítě

Ø Read – only replika – slouží jen pro čtení

Ø Subordinate reference replika

Vychází z client-server architektury. Vytvoří se kopie serveru a uživatel má přístup ke stejným datům, jaká jsou na serveru. Když server spadne, uživatel dál může pracovat na kopii serveru.

Synchronizace replik – změna na serveru se projeví, až se změna projeví na všech replikách (veškeré změny systém povolí, až jsou aktualizovány všechny repliky).

Časové razítko – každá změna má svůj časový údaj a zpracovávají se v pořadí, jak byly provedeny. Je nutné, aby na všech serverech byl stejný čas.

NSD a práva

Bezpečnost je v Novellu obecně rozdělena do několika částí, které mají podobnou filozofii

Ø Login security

Ø NSD security

Ø Print security

Ø Console security