Vektor verze - Version vector
A vektor verze je mechanismus pro sledování změn dat v a distribuovaný systém, kde může více agentů aktualizovat data v různých časech. Vektor verze umožňuje účastníkům určit, zda jedna aktualizace předcházela jiné (stalo se předtím ), následoval ji, nebo pokud k oběma aktualizacím došlo souběžně (a proto by mohly být ve vzájemném konfliktu). Tímto způsobem se povolují vektory verzí kauzalita sledování mezi replikami dat a jsou základním mechanismem pro optimistická replikace. Z matematického hlediska generuje vektor verze a předobjednávka který sleduje události, které předcházejí pozdějším aktualizacím a mohou proto ovlivnit jejich pozdější aktualizaci.
Vektory verzí udržují stav stejný jako v a vektorové hodiny, ale pravidla aktualizace se mírně liší; v tomto příkladu mohou repliky zaznamenat lokální aktualizace (např. uživatel, který upravuje soubor v místním uzlu), nebo mohou synchronizovat s jinou replikou:
- Zpočátku jsou všechny vektorové čítače nulové.
- Pokaždé, když replika zažije událost místní aktualizace, zvýší svůj vlastní čítač ve vektoru o jednu.
- Pokaždé dvě repliky A a b synchronizovat, oba nastavili prvky ve své kopii vektoru na maximum prvku přes oba čítače: . Po synchronizaci mají dvě repliky identické vektory verzí.
Dvojice replik, A, b, lze porovnat kontrolou jejich vektorů verzí a určit, zda jsou: identické (), souběžně (), nebo objednané ( nebo ). Uspořádaný vztah je definován jako: Vektor právě když každý prvek je menší nebo rovno odpovídajícímu prvku v a alespoň jeden z prvků je přísně menší než. Pokud ne nebo , ale vektory nejsou totožné, pak musí být oba vektory souběžné.
Vektory verzí[1] nebo varianty se používají ke sledování aktualizací v mnoha distribuovaných souborových systémech, například Coda (souborový systém) a Ficus a jsou hlavní datovou strukturou za optimistickou replikací.[2]
Další mechanismy
- Hash historie [3] vyhněte se používání čítačů udržováním sady hodnot hash každé aktualizované verze a porovnáním těchto sad zahrnutím sady. Tento mechanismus však může poskytnout pouze pravděpodobnostní záruky.
- Stručná verze vektorů [4] umožňují výrazné úspory místa při manipulaci s více replikovanými položkami, například v adresářových strukturách v souborových systémech.
- Verze Razítka [5] povolit sledování variabilního počtu replik a neuchylovat se k počítadlům. Tento mechanismus může v některých nastaveních zobrazit problémy se škálovatelností, ale může být nahrazen Intervalovými hodinami stromu.
- Intervalové hodiny stromu[6] zobecnit vektory verze a vektorové hodiny a umožňuje dynamický počet replik / procesů.
- Vázaná verze vektory [7] povolit omezenou implementaci s omezenými čítači velikosti, pokud lze atomově synchronizovat páry replik.
- Tečkovaná verze vektory [8] škálovatelnost adres s malou sadou serverů zprostředkujících přístup k replikám velkým počtem souběžných klientů.
Reference
- ^ Douglas Parker, Gerald Popek, Gerard Rudisin, Allen Stoughton, Bruce Walker, Evelyn Walton, Johanna Chow, David Edwards, Stephen Kiser a Charles Kline. Detekce vzájemné nekonzistence v distribuovaných systémech. Transakce v softwarovém inženýrství. 1983
- ^ David Ratner, Peter Reiher a Gerald Popek. Údržba vektoru dynamické verze. Technická zpráva CSD-970022, Department of Computer Science, University of California, Los Angeles, 1997
- ^ ByungHoon Kang, Robert Wilensky a John Kubiatowicz. Hash History Approach pro smíření vzájemné nekonzistence. ICDCS, str. 670-677, IEEE Computer Society, 2003.
- ^ Dahlia Malkhi a Doug Terry. Stručné vektory verzí ve WinFS. Distribuované výpočty, sv. 20, 2007.
- ^ Paulo Almeida, Carlos Baquero a Victor Fonte. Razítka verzí: Decentralizovaná verze verzí. ICDCS, str. 544-551, 2002.
- ^ Paulo Almeida, Carlos Baquero a Victor Fonte. Intervalové hodiny stromu. OPODIS, Lecture Notes in Computer Science, Vol. 5401, s. 259-274, Springer, 2008.
- ^ José Almeida, Paulo Almeida a Carlos Baquero. Vázaná verze vektory. DISC: International Symposium on Distributed Computing, LNCS, 2004.
- ^ Nuno Preguiça, Carlos Baquero, Paulo Almeida, Victor Fonte a Ricardo Gonçalves. Krátké oznámení: Efektivní sledování kauzality v distribuovaných úložných systémech s vektory s tečkovanou verzí. ACM PODC, str. 335-336, 2012.