Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak.

16
Offline Lock OPTIMISTIC PESSIMISTIC Nikita Silin Aleksandr Primak

Transcript of Offline Lock OPTIMISTIC PESSIMISTIC Nikita SilinAleksandr Primak.

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/