Co je kontrola souběžnosti?
V programování správy dat je kontrola souběžnosti mechanismem navržený tak, aby zajistil, že přesné výsledky jsou generovány souběžnými operacemi. Tyto výsledky musí být také získány včas. Kontrola souběžnosti je velmi často vidět v databázích, kde existuje mezipaměť prohledávatelných informací pro uživatele.
programátoři se snaží navrhnout databázi tak, aby na sdílená data bude sériově ekvivalentní účinek důležitých transakcí. To znamená, že data, která vytvářejí kontakt se sadami transakcí, by byla v určitém stavu, kdy jsou výsledky dosažitelné, pokud všechny transakce provádějí sériově a v určitém pořadí. Někdy jsou tato data neplatná v důsledku toho, že byla upravena dvěma transakcemi, souběžně. To je však nadměrnéNedovolí programátorovi těžit z kontroly souběžnosti v distribuovaném systému. Kontrola souběžnosti umožňuje současné provádění více transakcí a zároveň tyto transakce udržuje od sebe, což zajišťuje linearizovatelnost. Jedním ze způsobů, jak implementovat kontrolu souběžnosti, je použití exkluzivního zámku na konkrétním zdroji pro provádění sériových transakcí, které sdílejí zdroje. Transakce zamknou objekt určený k použití, a pokud nějaká jiná transakce podá žádost o uzamčený objekt, tato transakce musí čekat na odemknutí objektu.
Implementace této metody v distribuovaných systémech zahrnuje správci zámků - servery, které vydávají zámky zdrojů. Je to velmi podobné serverům pro centralizované vzájemné vyloučení, kde mohou klienti vyžádat zámky a odesílat zprávy pro uvolnění zámků na konkrétní zdroj. Zachování sériové exeCutura je však stále nezbytná pro kontrolu souběžnosti. Pokud dvě samostatné transakce přistupují k podobné sadě objektů, musí být výsledky podobné a jako by tyto transakce byly provedeny v konkrétním pořadí. Pro zajištění pořadí přístupu ke zdroji se zavede dvoufázové zamykání, což znamená, že transakce nejsou povoleny nové zámky po uvolnění samostatného zámku.
Ve dvoufázovém uzamykání pro kontrolu souběžnosti se jeho počáteční fáze považuje za rostoucí fázi, kde transakce získává potřebný zámek. Další fáze je považována za zmenšující se fázi, ve které transakce uvolní zámky. S tímto typem uzamčení jsou problémy. Pokud transakce přeruší, jiné transakce mohou používat data z objektů upravených a odemčených přerušenými transakcemi. To by mělo za následek přerušení dalších transakcí.