V Spanner, TrueTime & Věta CAP , Eric Brewer píše:
Jednou z jemných věcí na Spanneru je, že získává serializovatelnost ze zámků, ale získává externí konzistence (podobná linearizovatelnosti ) z TrueTime [ zvýraznění přidáno ].
Jaká je definice vnější konzistence , a jak se liší od linearizovatelnosti ?
Komentáře
- To je skvělá otázka a přeji si, aby měl Eric zde trochu rozpracováno. Je to linearizovatelné nebo ne? 🙂
Odpověď
Vnější konzistence nemá pevný význam. V této souvislosti má význam v další větě dokumentu:
U všech dvou transakcí $ T_1 $ a $ T_2 $ (i když na opačných stranách glóbus): pokud se $ T_2 $ začne zavazovat po dokončení $ T_1 $, pak je časové razítko pro $ T_2 $ větší než časové razítko pro $ T_1 $.
Komentáře
- Čím víc o tom přemýšlím, zní mi to strašně hodně jako linearizovatelnost, protože všechny transakce jsou řazeny. Bohužel, někdy jsou tyto pojmy jemné. .. Kdokoli nesouhlasí? Mám na mysli, že transakce jsou serializovatelné a jsou zcela uspořádány na základě času odevzdání. Možná, že jemnost spočívá v tom, jak je 2PC implementován ve Spanneru?
- @ Bminer Linearizability je model konzistence, který platí pouze pro jednotlivé objekty, kde transakce mohou zahrnovat více o bjects.
- @LorinHochstein – Ha! To voní jako mletá slova. Smyslem terminologie je pomoci skutečným lidem pojmout, jaké záruky dostanou, zejména s ohledem na transakce. Linearizovatelnost + serializovatelnost je nejsilnější zárukou a myslím si, že ' to, na co odkazují dokumenty Spanner s termínem " externí konzistence. " Ale vyvstává otázka: ví někdo opravdu, jaká " vnější konzistence " prostředek? 🙂
Odpověď
Můžete uvažovat o vnější konzistenci z izolace transakcí (Tx) a pohledu pořadí . V izolaci Tx hovoříme o vnější konzistenci s přísnou serializovatelnou izolací, kde „strict“ je součást omezení v reálném čase (jako v linearizovatelnosti).
To opět znamená, že pro systémového klienta pozorovatelného Tx vedlejší účinky jsou ekvivalentní systému, kde všechny Tx probíhají izolovaně bez jakékoli souběžnosti a kde je zachováno jejich uspořádání v reálném čase, jak je vidí klient. Ještě důležitější je, že stejné objednávání vidí každý jiný nepříbuzný klient.
Další informace o rozdílech naleznete na tomto blogu .
Odpověď
Při zmínce o " vnější konzistenci " , Brewer reference B. Liskov. Praktické využití synchronizovaných hodin v distribuovaných systémech . ACM Principles of Distributed Computing (PODC). Montreal, Kanada, srpen 1991.
Liskov, v termínu, odkazuje na Gifford D.K. Ukládání informací v decentralizovaném počítačovém systému . Technická zpráva CSL-81-8, Xerox Corporation, březen 1983
Zde je uvedeno, jak Gifford definuje externí konzistenci:
Externí konzistence zaručuje, že transakce vždy obdrží aktuální informace. Pomocí konceptů, které jsme právě zavedli, můžeme poskytnout formální definici externí konzistence. Skutečné časové pořadí, ve kterém jsou transakce dokončeny, definuje jedinečný sériový plán. Tento sériový plán se nazývá externí plán . Říká se, že systém poskytuje externí konzistenci, pokud zaručuje, že plán, který použije ke zpracování sady transakcí, je ekvivalentní jeho externímu plánu.
Jak uvádí @Oleg, zní to jako přísná serializace .