Optimistic and pessimistic offline lock. Naivní přístup:  Uživatel A načte data  Uživatel B načte (stejná) data  Uživatel A upraví data a uloží je.

Slides:



Advertisements
Podobné prezentace
Využití cloudových služeb ve školství
Advertisements

systém pro sběr, organizaci, analýzu a syntézu dat
Harmonogram implementace IS v běžné praxi - informatika ZMVS.
Elektronizace agend nejen ve státní správě
Databázové systémy Přednáška č. 3 Proces návrhu databáze.
Přednáška č. 5 Proces návrhu databáze
Red-Black Stromy Binární Vyhledávací Stromy, u kterých je časová složitost operací v nejhorším případě rovná O(log n)
Operační systémy. OPERAČNÍ SYSTÉMY pomoc operátorovi, podpora vlastností reálného času, víceuživatelských a více úlohových systémů.
ZMVŠ. Bezpečnost Windows 8 Dynamic Access Control (DAC) Volně – Dynamický kontrolní přístup) rozšíření NTFS access control listů (ACL) o složitá pravidla.
T OOL FOR C OLLABORATIVE XML S CHEMA I NTEGRATION Jiří Meluzín.
Radek Špinka Přepínače MSSQL výběr.
1IT Relační datový model
Chceme mít také v ČR snadný přístup k vysokoškolským kvalifikačním pracím? (a co je pro to třeba udělat) Asociace knihoven vysokých škol ČR výroční konference.
Přístupová práva, maska přístupových práv Jiří Hořejší.
Informační systém základních registrů. Obsah Úvod Komunikace se základními registry Autentizace a autorizace Práce s údaji Funkcionalita v rámci Portálu.
D ATOVÉ MODELY Ing. Jiří Šilhán. D ATABÁZOVÉ SYSTÉMY Patří vedle textových editorů a tabulkových kalkulátorů k nejrozšířenějším představitelům programového.
Jan Trčka Dne: Obsah Zadání Pojmy Replikace databází Verzování Reconciling, reconcile Posting, post Scénáře při verzování v ArcSDE PostgreSQL.
Architektura databází Ing. Dagmar Vítková. Centrální architektura V této architektuře jsou data i SŘBD v centrálním počítači. Tato architektura je typická.
KEG Použití vzorů při vyhledávání na webu Václav Snášel.
Rozšíření jednouživatelské verze IS na víceuživatelskou Prezentace Diplomové práce Autor : Libor Tomášek Spoluautoři : Pobucký M., Drábek L. Vedoucí :
Databázové systémy Architektury DBS.
Offline concurrency patterns Petr Smrček Ondřej Svoboda ČVUT FEL A7B36ASS – Architektura SW sytémů LS 2013.
Informatika pro ekonomy II přednáška 10
Databázové systémy Přednáška č. 6 Proces návrhu databáze.
Jazyk PHP Programovací jazyk PHP (Hypertext preprocessor) je skriptovací jazyk, který běží na straně serveru. KLIENT - SERVER Server posílá do vašeho počítače.
Walter Schorge Archa – Open Source archivní informační systém v NTM Archivy, knihovny a muzea v digitálním světě
Dokumentace objektů a zveřejnění funkcí
Jak přenést svět na display
Licence WinFAS Skalský dvůr Licence Licence umožňuje provoz IS WinFAS dle následujících kategorií: režim provozu - časové rozlišení licenční.
Databázové systémy II Přednáška č. 9. Transakce je logická jednotka práce sestávající z jednoho nebo více SQL příkazů, které jsou atomické z hlediska.
Transakční zpracování v SQL P. Částek. Transakce Transakce = logická jednotka práce Podaří-li se všechny části transakce, potvrdíme je. COMMIT Jestliže.
Transakce Roman Špánek TU v Liberci Transakce Transakce = série příkazů čtení a zápisu do databáze A Atomic C Consistency I Isolation D Durability.
Databáze.
Dokumentace informačního systému
Úvod mapy pro orientační běh cíle práce stav řešené problematiky očekávané výsledky výsledky ukázka aplikace budoucnost aplikace.
Ukládání heterogenních dat pomocí rozvolněných objektů Michal Žemlička.
organizační struktury Implementace EOS III na Olomouckém kraji Pro:Krajský rok informatiky 2005 Autor:Jan Kadlec Datum:
Zablokování (deadlock, smrtelné objetí, uváznutí)
Počítačové sítě Základní pojmy.
Databázové systémy Informatika pro ekonomy, př. 18.
2005 Adobe Systems Incorporated. All Rights Reserved. 1 Inteligentní PDF formuláře Vladimír Střálka Territory Account Manager Adobe Řešení pro.
Přístup do IS z mobilních zařízení Tomáš Tureček Katedra Informatiky FEI VŠB-TU Ostrava.
Studentská PARDUBICE Implementace MIIS na Univerzitě Pardubice Petr Švec, Univerzita Pardubice.
Global network of innovation Identity a Access Management v heterogenním prostředí Marta Vohnoutová 19. dubna 2015.
Miroslav Skokan IT Security Consultant
Delphi a databáze MS SQL Server.
Foreign key mapping Jakub Chalupa Naim Ashhab ČVUT FEL
Nokia Czech Republic, s.r.o. Igor Šmerda, program manager.
Převody pojistných kmenů Team4 Ciasnocha Michal, Kokaisl Standa, Mathauser Jan, Molda Milan, Puncman Daniel.
Systém souborů. Množina souborů různých typů – Data – Spustitelné programy – Konfigurační a pomocné informace – I/O zařízení Způsob organizace množiny.
Model lidského zraku pro hodnocení kvality obrazu
Rezervační systém v prostředí XUL Zdeněk Novák, Petr Ondrejka.
EVŠKP na OU cesta integrace 10. Listopad, 2005 Jiří Šimonek a Robert Bohoněk Centrum Informačních Technologií Ostravská univerzita.
Školák.cz Piš a sdílej své sešity, jednoduše, rychle, v pohodě. Autoři: Jiří Hon a Lukáš Helebrandt.
Katastr nemovitostí na internetu a reálné možnosti jeho využití fyzickými a právnickými osobami Č e s k ý ú ř a d z e m ě m ě ř i c k ý a k a t a s t r.
Univerzitní informační systém III., Lednice 2004 E-přihlášky Ing. Tomáš Majer
Návrh, požadavky, implementace
Editační principy a postupy Portálu ÚAP ZK
Evidence aplikací a jejich dokumentace
Remote control, využití v teleKonzultaci
Projekt BOZP Výsledky první části České vysoké učení technické
Identity management v UIS
Lazy load Použity informace z knihy Patterns of Enterprise Application Architecture od M. Fowlera Jan Sládek.
Informatika pro ekonomy přednáška 8
Projekt studentů oboru Informatika
Přihlášení.
Tereza Bížová Představení se.
Návrh, požadavky, implementace
Přednášky z distribuovaných systémů
Přednáška 9 Triggery.
Transkript prezentace:

Optimistic and pessimistic offline lock

Naivní přístup:  Uživatel A načte data  Uživatel B načte (stejná) data  Uživatel A upraví data a uloží je (např do DB)  Uživatel B data také upraví a uloží ..... kde je problém? Řešení:  Zámky

Optimistic offline lock Základní prvky:  Založeno na myšlence, že nám nikdo nezmění data  Neprovádí se zamykání položek  Každý prvek má počítadlo Počítadlo (counter):  Při změně nebo smazání položky se provede inkrementace počítadla  Pamatujeme si hodnotu počítadla  Pokud nám někdo změnil data, hodnota počítadla nesouhlasí se zapamatovanou hodnotou Důsledky:  Konflikt se odhalí až při zápisu  Nutnost navrácení se do původního stavu

Optimistic offline lock

Vylepšení:  Rychlejší detekce uzamčení – časovač s vysokým rozlišením Ale:  nedoporučuje se ho používat – více serverů Kdy se používá:  Když se pravděpodobnost na konflikt mezi dvěma transakcemi nízká

Optimistic offline lock Jak by mohla vypadat implementace:

Pessimistic offline lock Základní prvky:  Založeno na myšlence, že ostatní budou měnit data  Provádí se zamykání položek  Pouze jeden přístup Druhy zámků:  Exclusive write lock  Exclusive read lock  Read / write lock Důsledky:  Nevznikají konflikty – není potřeba vracet se do původního stavu  V nejhorším případě jen jeden může pracovat s uzamčenými daty

Pessimistic offline lock

Nevýhody  Možnost vzniku deadloků – odstranění pomocí timeoutů

Pessimistic offline lock Ukázka použití

Optimistic and pessimistic offline lock Optimistic offline lock:  Neuzamyká data  Malé souběžné přístupy k datům  Detekce konfliktu na konci transakce Pessimistic offline lock:  Uzamyká data  Velké přístupy k datům  Detekce konfliktu na počátku transakce  Existence více druhů zámků

Vzor – shrnutí Jakou implementaci?  Jako u jiných návrhových vzorů závisí na prostředí nasazení...  Je potřeba zvážit: Jaký je poměr editací a prohlížení (read-only)? Jaká je pravděpodobnost souběhu přístupů? Pracuje systém se systémy třetích stran? Podporují rollback? (např. Banka...) Jaká je povaha zadávaných dat? (uživatelské údaje, smlouva o stovkách položek...) Související vzory  Všechno souvisí se vším a vzory lze různě kombinovat :)  Identity map – pokud k databázi přistupuje jedna instance serveru, nemusíme propagovat zámky do databáze, stačí je mít v Identity mapě  Table/Row Data Gateway – řešení zámků může být na této úrovni (?)