Co je Případné konzistence?
Případná konzistence je programovací model, ve kterém programátoři předpokládají, že po dostatečně dlouhou dobu a bez změn systému bude aktuální verze konkrétního programu nakonec distribuována, dokud nebude každá replika programu konzistentní. Koncept eventuální konzistence se používá v programovacích metodách, jako je optimistická replikace, distribuovaná sdílená paměť a distribuované transakce. Pokud jde o databáze, případné konzistence je dosaženo prostřednictvím tříkrokového procesu. Za prvé, distribuované informace jsou k dispozici v systému; následuje měkký stav, ve kterém různí uživatelé mohou stále pracovat s různými verzemi dat; a nakonec je dosaženo konzistence a všechny počítače mají přístup ke stejným datům.
Jeden z nejviditelnějších způsobů, jak je aplikována konzistence, souvisí s aktualizacemi softwaru distribuovanými online. Prvních několik sekund po vydání aktualizace ji nikdo nebude mít; uživatelům softwaru nezbývá dost času na stažení a instalaci aktualizace. To je „k dispozici“ state; aktualizace existuje, ale má přesto být distribuovány. Postupem času, jak uživatelé stahují aktualizaci, ji někteří budou mít a jiní ne. Po uplynutí dostatečného času však bude každý, kdo software používá, aktualizován na nejnovější verzi. Toto je předpoklad za stavem případné konzistence: při dostatečném čase se veškerá aktualizace bude plně šířit v celém systému.
Protože systém pracuje na možné konzistenci, jsou konflikty nevyhnutelné. K tomu dochází, když verze programu nebo informace aktuálně v počítači neodpovídají „modelové verzi“ programu. Programy jsou obvykle nastavit, aby k těmto konfliktům a řídit je. Pokud jsou soubory na konkrétním počítači starší než nejnovější verze příslušného softwaru nebo dat, systém obvykle vyzve uživatele, aby zahájil aktualizaci a vyřešil tak rozdíl.
K dispozici jsou tři možné metody k provedení těchto řešení: oprava zápisu, oprava čtení a asynchronní oprava. Všechny tyto metody uvádějí verzi programu nebo dat do souladu s konzistentním modelem. Klíčový rozdíl mezi nimi souvisí se způsobem, jakým systém časy opravuje. Všechny tyto operace mají výhody a nevýhody.
Při opravě zápisu se změny kódu uloženého v počítači provádějí během operace zápisu, kdy počítač již něco zapisuje na pevný disk systému. To opravuje nekonzistenci, uvádí program nebo data do souladu s modelem, ale také dočasně zpomaluje původní operaci zápisu. V případě opravy čtení dochází k nápravné operaci během cyklu čtení z pevného disku. To zase zpomaluje operace čtení. Při asynchronní opravě dochází k opravě, když nedochází ani ke čtení ani zápisu, což vede ke spotřebě nečinných cyklů na CPU.