I Skruenøgle, TrueTime & CAP-sætningen , skriver Eric Brewer:
En subtil ting ved Spanner er, at den får seriabilitet fra låse, men den bliver ekstern konsistens (svarer til lineariserbarhed ) fra TrueTime [ fremhævelse tilføjet ].
Hvad er definitionen af ekstern konsistens , og hvordan adskiller det sig fra linearitet ?
Kommentarer
- Dette er et godt spørgsmål, og jeg ville ønske Eric ville have uddybet lidt her. Er det lineariserbart eller ikke? 🙂
Svar
Ekstern konsistens har ikke en fast betydning. I denne sammenhæng har den betydning, der vises i den næste sætning i dokumentet:
For to transaktioner, $ T_1 $ og $ T_2 $ (selvom det er på modsatte sider af globus): hvis $ T_2 $ begynder at begå, når $ T_1 $ er færdig med at begå, er tidsstemplet for $ T_2 $ større end tidsstemplet for $ T_1 $.
Kommentarer
- Jo mere jeg tænker over det, det lyder meget forfærdeligt meget som linearitet for mig, fordi alle transaktioner er bestilt. Desværre er disse vilkår undertiden subtile. .. Nogen er uenige? Jeg mener, transaktionerne kan serieliseres, og de ordnes fuldstændigt baseret på begivenhedstid. Måske ligger subtiliteten i, hvordan 2PC implementeres i Spanner?
- @Bminer Linearizability er en konsistensmodeller, der gælder kun for enkelte objekter, hvor transaktioner kan involvere flere o bjects.
- @LorinHochstein – Ha! Det lugter af hakning af ord. Hele pointen med terminologien er at hjælpe rigtige mennesker med at forestille sig, hvilke garantier de får, især med hensyn til transaktioner. Linearizability + serializability er den stærkeste garanti, og jeg tror, at ' er det, som Spanner docs henviser til med udtrykket " ekstern konsistens. " Men det rejser spørgsmålet: ved nogen virkelig, hvad " ekstern konsistens " midler? 🙂
Svar
Du kan tænke på ekstern konsistens fra transaktioner (Tx) isolering og rækkefølge . I Tx-isolation taler den eksterne konsistens svarende til den strenge serialiserbare isolation, hvor “streng” er den realtidsbegrænsende del (som i lineariserbarhed).
Det betyder igen alt for en systemklient, der kan observeres Tx bivirkninger svarer til et system, hvor alle Tx finder sted isoleret uden nogen samtidighed, og hvor deres realtidsbestilling, som set af klienten, bevares. Endnu vigtigere ses den samme ordre af enhver anden ikke-relateret klient.
Læs mere om forskellen på denne blog .
Svar
Når der nævnes " ekstern konsistens " , Bryggerhenvisninger B. Liskov. Praktiske anvendelser af synkroniserede ure i distribuerede systemer . ACM-principper for distribueret databehandling (PODC). Montreal, Canada, august 1991.
Liskov refererer i termen til Gifford D.K. Informationslagring i et decentraliseret computersystem . Teknisk rapport CSL-81-8, Xerox Corporation, marts 1983
Her definerer Gifford ekstern konsistens:
Ekstern konsistens garanterer, at en transaktion altid vil modtage aktuelle oplysninger. Ved hjælp af de koncepter, vi netop har introduceret, kan vi give en formel definition af ekstern konsistens. Den aktuelle tidsrækkefølge, hvor transaktioner gennemføres, definerer en unik seriel tidsplan. em> ekstern tidsplan . Et system siges at give ekstern konsistens, hvis det garanterer, at den plan, det vil bruge til at behandle et sæt transaktioner, svarer til dets eksterne tidsplan.
Som @Oleg nævner, lyder det som streng seriabilitet .