offline lock optimistic pessimistic nikita silinaleksandr primak

16
Offline Lock OPTIMISTIC PESSIMISTIC Nikita Silin Aleksandr Primak

Upload: olga-vavrova

Post on 22-Dec-2015

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak

Offline LockOPTIMISTIC

PESSIMISTIC

Nikita Silin

Aleksandr Primak

Page 2: Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr 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í

Page 3: Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak

Typický problém

Page 4: Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak

Optimistic Offline LockPopis

Zabraňuje konflikty mezi souběžnými business transakcí pomocí detekci konfliktu a rollbacku transakce.

Page 5: Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak

Optimistic Offline LockObecná struktura

Page 6: Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak

Optimistic Offline LockÚčastníci

Page 7: Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak

Optimistic Offline Lock

Příklad

Page 8: Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak

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

Page 9: Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak

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.

Page 10: Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak

Pessimistic Offline LockObecná struktura

Page 11: Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak

Pessimistic Offline Lock

Příklad

Page 12: Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak

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

Page 13: Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak

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

Page 14: Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak

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

Page 15: Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak

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

Page 16: Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak

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/