Multi Version Concurent Control: Porovnání verzí

Z PostgreSQL
Přejít na: navigace, hledání
 
 
(Žádný rozdíl)

Aktuální verze z 7. 12. 2005, 17:10

Úkolem databázového systému je zajištění konzistence dat při současném zpracování požadavků více uživatelů. Snahou je vzájemně izolovat jednotlivé transakce - chceme, aby nepotvrzené změny dat způsobené ostatními transakcemi byly v transakci neviditelné. Nevýhodou řešení založeném na zamykání (tabulek, stránek, řádků) jsou možné vykonnostní problémy. Řešením je MVCC architektura, kdy namísto zamknutí modifikovaného řádku (ať operací Upadate nebo Delete) se provede kopie řádku - vytvoří se nová verze.

Nepotvrzené verze a přepsané verze se odstraňují až ve chvíli, kdy nejsou viditelné z žádné transakce. Neodstraňují se automaticky, je třeba spouštět příkaz VACUUM. Kromě odstranění nedostupných záznamů má příkaz VACUUM na starosti taká aktualizaci statistik používaných plánovačem dotazů, a ochranu před přetečením identifikačních čísel transakcí (stabilní záznamy obdrží id 2, tj. FrozenXID).