Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Jan Trčka Dne: 8.4.2013. Obsah Zadání Pojmy Replikace databází Verzování Reconciling, reconcile Posting, post Scénáře při verzování v ArcSDE PostgreSQL.

Podobné prezentace


Prezentace na téma: "Jan Trčka Dne: 8.4.2013. Obsah Zadání Pojmy Replikace databází Verzování Reconciling, reconcile Posting, post Scénáře při verzování v ArcSDE PostgreSQL."— Transkript prezentace:

1 Jan Trčka Dne: 8.4.2013

2 Obsah Zadání Pojmy Replikace databází Verzování Reconciling, reconcile Posting, post Scénáře při verzování v ArcSDE PostgreSQL – uzamykání Deadlock Závěr Literatura

3 Zadání Popsat mechanizmy pro správu víceuživatelského přístupu a pro dlouhé transakce. Popsat víceuživatelské přístupy v rámci ArcSDE (verzování a replikování). Jak se řeší víceuživatelské přístupy v různých technologiích, zaměřit se především na prostorová data.

4 Pojmy Databáze – jedná se o uspořádanou množinu informací uloženou na paměťovém médiu. Můžeme ji definovat jako souhrn vázaných dat, které jsou ukládány bez tzv. redundance. Databáze obsahuje 4 základní části: hardware, software, datové prvky a uživatelé. Vkládání, mazání a změny dat jsou prováděny centrálně. Redundance – častý jev v databázích, kdy může dojít k duplicitě dat = zbytečně rozsáhlé databáze. Databázový systém – je tvořen databází a systémem řízení báze dat. Obsahuje 4 základní části: hardware, software, datové prvky a uživatelé. Transakce – jedná se o skupinu příkazů, které převedou databázi z jednoho konzistentního stavu do druhého. Z pohledu uživatele je to realizace jedné ucelené operace, která charakterizuje posloupnost operací nad prvky databáze.

5 Pojmy Dlouhá transakce – jedná se o proces transakce trvající několik desítek minut až hodin. Verzování – umožňuje vytváření více stálých reprezentací databáze bez zdvojení a omezujícího zamykání dat. Hlavním účelem verzování je zjednodušit proces editace dlouhých transakcí. Replikace – replikuji se především data, ke kterým je potřebný rychlý přístup a která jsou často aktualizována, případně mají vyšší stupeň důležitosti. Replikace databází můžeme chápat jako vytvoření a udržování více kopií stejné databáze. Zámky - můžeme označit jako synchronizační primitiva pro zajištění výhradního přístupu k systémovým prostředkům ve víceúlohovém prostředí, kde tak brání souběhu. Zámky jsou používány jak v případě, že dochází k cyklickém u přepínání mezi běžícími úlohami, tak při skutečně paralelním běhu úloh ve víceprocesorových systémech.

6 Replikace databází Replikace databází může být využita v mnoha systémech řízení báze dat, obvykle vazba mezi originálem a kopiemi bývá typu master/slave. Master zaznamenává změny, které poté posílá do slavu. Slave zpět oznámí zprávou, že update úspěšně přijal, čímž umožní odeslání (a případné opětovné posílání až do chvíle než je úspěšně aplikován) následujících updatů. Replikace zvyšuje výkon při operaci SELECT, snižuje výkon pro operaci UPDATE, DELETE, INSERT.

7 Replikace databází Master/Slave replikaci podporuje jeden hlavní server, který přijímá požadavky na zápis a čtení, a několik podřízených serverů, které umožňují pouze čtení (SELECT). Nejrozšířenějším volně dostupným řešením tohoto typu je Slony-l. Multi-master replikaci podporuje existenci několika serverů s povoleným zápisem na více replikovaných serverech. Toto řešení zvyšuje zátěž serverů, protože je nutná synchronizace serverů. Nejrozšířenějším volně dostupným řešením je PGCluste.

8 Verzování je jedna z funkcí prostorové databáze ArcSDE od společnosti ESRI. Hlavním účelem verzování je zjednodušit proces editace dlouhých transakcí. Pojem verzování se tedy týká pouze jediného produktu, ale to neznamená, že podobnou strategii není možné využít i v jiných prostorových nadstavbách klasických databází.

9 Reconciling, reconcile proces, který začlení změny z nadřazené (rodičovské) verze do verze, která je editována. reconciling je náročná operace, která automaticky vloží, smaže a aktualizuje mnoho prvků editované verze. Odtud plyne možnost vzniku konfliktů, úkolem reconcile je všechny tyto konflikty vyřešit. reconcile provádíme na editované verzi vzhledem k její libovolné nadřazené verzi, nemůže být provedena vzhledem k verzi na stejné nebo nižší úrovni. Jako jiné operace může být vrácena do původního stavu, tzn. existuje zpětná operace.

10 Posting, post proces, který posílá změny z následníka na předka. operaci post musí bezprostředně předcházet operace reconcile ke stejné cílové verzi. Pokud mezi operací reconcile a post jiný uživatel změní cílovou verzi databáze, musí být proces reconcile proveden znovu. Díky tomuto opatření během procesu posting nemůže dojít k žádnému konfliktu (vše vyřeší reconcile). Změny provedené operací post jsou nevratné.

11 Operace reconcile a post

12 Verzování v ArcSDE přímé editování standardní databáze: každý uživatel edituje automaticky vytvořenou, nepojmenovanou, dočasnou verzi - nemusí zvlášť vytvářet verzi vlastní. Po dokončení editace nebo po uložení změn jsou na dočasné verzi automaticky provedeny operace reconcile a post vzhledem k DEFAULT verzi. když nastane konflikt, editor musí rozhodnout, které změny uloží. Přímé editování verze DEFAULT se uplatní tam, kde jednotlivé transakce nejsou časově náročné.

13 Verzování v ArcSDE dvouvrstvá verze: odděluje práce spojené s jedním konkrétním projektem. je vhodný pro dlouhé transakce - po dobu editování se změny ukládají do vlastní vytvořené verze databáze, která znamená novou dlouhou transakci, na které může pracovat více uživatelů. Když je projekt dokončen provedou se operace reconcile a post vzhledem k DEFAULT verzi. Po té může být verze projekt smazána nebo uchována pro archivaci.

14 Verzování v ArcSDE dvouvrstvá verze: v tomto přístupu jsou uživatelská práva k hlavní databázi omezena pouze na čtení, což donutí editory založit si vlastní verzi databáze. Výhodou dvouvrstvého verzování je logické uspořádání prací na projektu a větší ochrana hlavní databáze. Každý editor může vyvinout vlastní návrh bez ovlivnění původní databáze.

15 Verzování v ArcSDE náhradník verze DEFAULT: v tomto přístupu jsou uživatelská práva k hlavní databázi omezena pouze na čtení, což donutí editory založit si vlastní verzi databáze. výhodou je logické uspořádání prací na projektu a větší ochrana hlavní databáze. Každý editor může vyvinout vlastní návrh bez ovlivnění původní databáze.

16 Verzování v ArcSDE vícevrstvá verze: použití u složitějších projektů komplexnější projekt zahrnuje mnoho editorů často pracujících v různých týmech na samostatných úkolech. Efektní způsob organizace práce za takovýchto podmínek spočívá v tom, že týmy pracující na různých částech projektu si vytvoří vlastní verzi, do které editují změny. Po dokončení projektu je verze operacemi reconcile a post aktualizována do hlavní databáze.

17 Verzování v ArcSDE cyklická verze: každá dlouhá transakce z předchozích scénářů může být rozdělena podle fází pracovního procesu. Například návrh, schválení a realizace představují tři fáze jednoho projektu a zároveň tři verze databáze. nová verze je vytvořena po dokončení předchozí a obsahuje všechny její změny. Operace reconcile a post proto stačí provést jen na poslední verzi v pracovním schématu. Tím se výrazně šetří čas, který by byl nutný, pokud by proces reconcile a post probíhal po skončení každé fáze. Při archivaci jednotlivých vývojových částí projektu můžeme snadno zjistit, co bylo navrhnuto, co schváleno a co realizováno.

18 Verzování v ArcSDE cyklická verze:

19 Verzování v ArcSDE správa historických verzí: klíčovým požadavkem mnoha projektů je zachycení historie vývoje v čase pro archivaci a pozdější kontrolu. je možné využít verzování a zaznamenat tak časové změny Uchovávání historických verzí je založeno na událostech při změně databáze (change events). Událost je vyvolána po každé změně stavu databáze. Na základě požadavků projektu nastavíme, v jakých intervalech se mají vytvářet nové verze. takovýto přístup podporuje dotazy typu: "Jaký byl stav databáze v určitý čas?", "Jak se změnil určitý objekt během daného období?". Přesnost odpovědi závisí na frekvenci ukládání verzí. U složitějších projektů je tak ukládáno velké množství informací.

20 Verzování v ArcSDE správa historických verzí:

21 PostgreSQL - uzamykání PgSQL server při transakčním zpracování dat provádí automatické zamykání řádků a tabulek, což napomáhá k integritě, především v případě, kdy několik transakcí požaduje přístup k jednomu zdroji. Nastartovaná transakce zamkne řádky tabulek, na nichž probíhají aktivní operace, jako například UPDATE a DELETE, po dobu svého trvání, aby dvě se konkurenční operace nepokoušely měnit data v tabulce, přičemž jedna z nich by aktualizovala data, která již nejsou platná.

22 PostgreSQL - uzamykání u zamykání máme několik módů, které se liší tím, co dovolují a co nikoliv, klíčovými slovy jsou: EXCLUSIVE - Výlučný zámek, který nedovoluje zamknout kterékoliv jiné transakci, jinému příkazu, tabulku, nebo řádek. Tento mód zámku je dafaultní, tzn. není li uvedeno EXCLUSIVE, nebo SHARE, je použit tento druh zámku. SHARE - Další příkazy/transakce mohou sdílet tento zámek. Je-li tabulka/řádek zamknuta tímto zámkem, není možné jej "přebít" pomocí zámku EXCLUSIVE. ROW - Uzamčení řádk(u/ů) tabulky. TABLE - Uzamčení celé tabulky, nejvíce restriktivní, pokud jej PostgreSQL serveru nepřikážeme explicitně, tak ta jej použije jen velmi vyjímečně. ACCESS - Zamčení schématu tabulky, tzn. že není možné měnit její strukturu

23 Deadlock V případě velkého provozu na databázi (například při souběžném připojení velikého počtu klientských aplikací) lze narazit na stav, kdy dvě transakce budou vzájemně čekat na výsledek té druhé (1. transakce ke svému dokončení potřebuje výsledek z první a naopak), který se označuje jako Deadlock. Systém automaticky jednu z těchto transakcí vrátí (ROLLBACK), protože tyto by jinak mohli čekat do nekonečna. Tomuto stavu lze předejít díky zámkům. PgSQL server má většinu zámků u konkurenčních databází konfliktních, což znamená, že zamkne-li se z aplikace tabulka, nebo řádek, a z jiného klienta je použit zámek, který je konfliktní s tím současným, je tato transakce odmítnuta. Pouhým pohledem do tabulky módů zámků lze najít autokonfliktní zámky (tj. jsou v konfliktu sami se sebou), což znamená, že je výhodné je použít. Pokud není možné použít zamčení na stejný typ zámků, bylo by výhodné zajistit, aby nejdříve byly uplatněny ty nejpřísnější zámky z požadovaných.

24 Závěr Práce popisuje problematiku víceuživatelských přístupů. Analyzuje především přístup k databázím v programu ArcSDE a PostgreSQL.

25 Literatura Replikace databází, Wikipedie, [online]. [cit. 2013-15-03]. Dostupné na WWW: Replikace v PostgreSQL. CSPUG, Praha [online]. [cit. 2013-25-03] Dostupné na WWW: Šilhavý, J., Versioning a víceuživatelská editace databáze. Západočeská univerzitav Plzni, FAV. [online]. [cit. 2013-18-03] Dostupné na WWW: <http://gis.zcu.cz/studium/pdb/referaty/2007/Silhavy_VerzovaniGDB/index.html#middleware Manual Oracle [online]. [cit. 2013-29-03]. Dostupné na WWW: PostgreSQL:Documentations:Manuals:Concurrency Control [online]. [cit. 2013-04-04]. Dostupné na: PostgreSQL [online]. [cit. 2013-06-04]. Dostupné na:

26 Děkuji za pozornost


Stáhnout ppt "Jan Trčka Dne: 8.4.2013. Obsah Zadání Pojmy Replikace databází Verzování Reconciling, reconcile Posting, post Scénáře při verzování v ArcSDE PostgreSQL."

Podobné prezentace


Reklamy Google