Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak.
-
Upload
olga-vavrova -
Category
Documents
-
view
222 -
download
0
Transcript of Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak.
Offline LockOPTIMISTIC
PESSIMISTIC
Nikita Silin
Aleksandr Primak
Proč?
Účel:Řeší problém datové integrity při konkurentním přístupu.
Motivace:• Intensivní přístup k DB několika klientů
• Kontrola verzí zdrojaků
• Bankovní transakcí
Typický problém
Optimistic Offline LockPopis
Zabraňuje konflikty mezi souběžnými business transakcí pomocí detekci konfliktu a rollbacku transakce.
Optimistic Offline LockObecná struktura
Optimistic Offline LockÚčastníci
Optimistic Offline Lock
Příklad
Optimistic Offline LockVýhody a nevýhody
Výhody• Jednoduchý na implementaci
• Povoluje souběžné čtení
• Dá se rozšířit pomocí merge strategií
Nevýhody
• Ztracená data
• Sám o sobě je prevenci, není to lék
Pessimistic Offline LockPopis
Zabrání konfliktům mezi souběžnými business transakcemi tím, že pouze jedna business transakce může přístupovat k datům.
Pessimistic Offline LockObecná struktura
Pessimistic Offline Lock
Příklad
Pessimistic Offline LockTypy zámků
Exclusive read lock
Pouze jedna transakce má přístup k datům
Exclusive write lock
Pouze jedna transakce může data měnit
Read/Write lock
Kombinace předchozích
Pessimistic Offline LockVýhody a nevýhody
Výhody• Není ztracená práce
Nevýhody
• Pracuje jenom jeden uživatel
• Někdo může zapomenout uvolnit zámek
Optimistic vs. Pessimistic Lock
Optimistic Pessimistic
Částečně řeší konflikty
Konflikt pravděpodobně nenastane
Práce uživatele není tak důležitá
Relativně jednoduchý
Zabrání konfliktům
Velká šance konfliktu
Práce uživatele je kritická
Potřebuje řešení i v doménovém
modelu
Související návrhové vzory
Implicit Lock
Povoluje frameworku nebo nadvrstvě získat offline lock
Coarse-Grained Lock
Zavírá množinu souvisejících objektů pomocí 1 zámku
Literatura
Optimistic Offline Lock by David Rice
http://ideababy.ru/0321127420_ch16lev1sec1.shtml Pessimistic Offline Lock by David Rice
http://ideababy.ru/0321127420_ch16lev1sec2.shtml Catalog of Patterns of Enterprise Application Architecture
http://martinfowler.com/eaaCatalog/