A csavarkulcsban, TrueTime & A CAP-tétel , Eric Brewer írja:
A Spanner egyik finom vonása, hogy a zárakból szerializálhatóságot kap, de külső konzisztencia (hasonló a linearizálhatósághoz ) a TrueTime-ből [ kiemelés hozzáadva ].
Mi a külső konzisztencia meghatározása, és miben különbözik a linearizálhatóság tól?
Megjegyzések
- Ez nagyszerű kérdés, és bárcsak Ericnek volna részletesen kidolgoztam itt. Linearizálható vagy sem? 🙂
Válasz
A külső konzisztenciának nincs rögzített jelentése. Ebben az összefüggésben a jelentése a dokumentum legközelebbi mondatában jelenik meg:
Bármely két tranzakció esetén $ T_1 $ és $ T_2 $ (még akkor is, ha a földgömb): ha $ T_2 $ elkezdi elkövetni, miután $ T_1 $ befejezte az elkövetést, akkor a $ T_2 $ időbélyege nagyobb, mint a $ T_1 $ időbélyege.
Megjegyzések
- Minél jobban belegondolok, ez számomra nagyon is linearizálhatóságnak tűnik, mert minden tranzakció rendezett. Sajnos, néha ezek a kifejezések finomak. .. Valaki nem ért egyet? Úgy értem, hogy a tranzakciók sorosíthatók, és teljesen az elkötelezettség alapján vannak sorrendben. Talán a finomság abban rejlik, hogy a 2PC hogyan valósul meg a Spannerben?
- @Bminer Linearizability olyan konzisztencia modell, amely csak egyetlen objektumra vonatkozik, ahol a tranzakciók több o-t is magában foglalhatnak bjektek.
- @LorinHochstein – Ha! Ez szaggatja a szavak aprítását. A terminológia lényege az, hogy segítsen a valós embereknek megfogalmazni, hogy milyen garanciákat kapnak, különösen a tranzakciók tekintetében. A linearizálhatóság + a szerializálhatóság a legerősebb garancia, és úgy gondolom, hogy ' az, amire a Spanner dokumentumai utalnak, a " külső konzisztencia kifejezéssel. " De felveti a kérdést: valóban tudja valaki, mi " külső konzisztencia " eszközök? 🙂
Válasz
Gondolhat a tranzakciók (Tx) elszigetelésének külső sorrendjére és a megrendelés szempontjából . A Tx izolációban a külső konzisztencia egyenértékű a szigorú, szerializálható izolációval, ahol a “szigorú” a valós idejű kényszer rész (mint a linearizálhatóságnál).
Ez megint azt jelenti, hogy egy rendszer kliens számára megfigyelhető Tx A mellékhatások egyenértékűek egy olyan rendszerrel, ahol az összes Tx külön-külön zajlik, egyidejűség nélkül, és ahol az ügyfél által látott valós idejű megrendelésük megmarad. Ennél is fontosabb, hogy ugyanezt a sorrendet más független ügyfelek is láthassák.
További információ a megkülönböztetésről a e blogon található.
Válasz
A " külső konzisztencia " megemlítésekor , Brewer references B. Liskov. A szinkronizált órák gyakorlati felhasználása elosztott rendszerekben . Az elosztott számítás (PODC) alapelvei. Montreal, Kanada, 1991. augusztus.
Liskov, kifejezés szerint Gifford D.K. Információk tárolása decentralizált számítógépes rendszerben . Műszaki jelentés CSL-81-8, Xerox Corporation, 1983. március
Gifford itt határozza meg a külső konzisztenciát:
Külső A következetesség garantálja, hogy egy tranzakció mindig aktuális információkat fog kapni. Az imént bevezetett fogalmakkal megadhatjuk a külső konzisztencia hivatalos meghatározását. A tranzakciók befejezésének tényleges sorrendje egyedi soros ütemtervet határoz meg. Ezt a soros ütemezést külső ütemezés . Azt mondják, hogy egy rendszer külső konzisztenciát biztosít, ha garantálja, hogy a tranzakciók halmazának feldolgozásához használt ütemezés megegyezik a külső ütemezésével.
Ahogy @Oleg megemlíti, ez úgy hangzik, mint szigorú sorosíthatóság .