Computerra elosztott newsql-boltozat arany csavarkulcs csavarkulcs kulcs google

Nem progredi est regredi. Ne menj előre -, akkor menjen vissza. Ősi, rágási ezt az egyetemes bölcsesség, persze, úgy látják, hogy ez lesz érvényes, és évszázaddal később. És így is történt.

Kipróbált és sikeres működését több tucat szolgáltatások NoSQL-határozat Bigtable nem volt képes megbirkózni a fő követelmény Google+, - összhang a felhasználói adatok, több ezer példányban, amelyek elszórva több százezer Google szervereit.

Tárolás Bigtable egyszerűen nem volt mechanizmusokat, amelyek biztosítják az abszolút sorrendben működési idő alatt megjegyzések Google+ felhasználói adatokat. Mechanizmusokat, amelyek tökéletesen működik egy relációs adatbázis, amely támogatja ACID koncepciót végrehajtásával kapcsolatban az elosztott SQL-tranzakciók.

NewSQL - skálázhatóság és adatok konzisztenciája az ugyanabban a csónakban

Miért NewSQL? Ez egyszerű. Termékek ennek megfelelő tárolási koncepció kompromisszum szükségességét méretarányos tárolás és a szigorú következetesség a bennük tárolt adatok.

Google csavarkulcs, természetesen nem az egyetlen NewSQL-döntés, de minden bizonnyal a legkiterjedtebb és egyedülálló építészeti teszi különösen érdekessé.

Építészeti őse csavarkulcs, minden bizonnyal Bigtable, amelyből a szétválasztása új örökölt táblázatok egy tablettát, és azok eloszlása ​​egy több span-szerverek.

Tárolt adatok a csavarkulcs, mint Bigtable, támogatják a multiverzum miatt átmeneti m jelek (timestamps), de kulcs tábla önmagában nem lapos, hanem információkon alapul és logikai modell és támogatja az SQL-lekérdezések. Ez a hibrid megoldás megadja a jogot, hogy hívja kulcs polurelyatsionnoy adatkezelést.

Csavarkulcs cluster architektúra olyan széles, hogy az úgynevezett Universe (Univerzum). Az Európai Parlament „Galaxy» zónák által lakott sok span-szerverek, amelyek képesek kezelni az SQL-lekérdezések.

Támogatása SQL és az elosztott tranzakciók - ez a fontos, hanem a fő előnye csavarkulcs máshol. A Google új tárolórendszer képes adni a garancia arra, hogy ha az ügylet nem a számos másolatai eltérések fogja előterjeszteni érintő integritását és adatok konzisztenciáját.

Csavarkulcs, hogyan kezeljék ezt a problémát? A rendszer segítségével a speciális szoftver interfész úgynevezett TrueTime API (az angol valódi idő - «valós idejű").

Falióra és a master Armageddon szolgálatában szigorú következetesség

A TrueTime API épül a koncepció egy alkalommal, a jelenlegi egész csavarkulcs tárolás elosztva több adatközpontban. Ez az úgynevezett globális falióra idő - «globális órák”, amelyek közösek az összes adatközpontok.

Global idő csavarkulcs, persze, nem egy helyen tárolni. Azt is oszlik. Ennek részeként minden adatközpont különített speciális szerverek, a továbbiakban a „mesterek az idő» (Time Master Devices - TMD). Legtöbbjük veszi az idő jelet a GPS műholdas rendszer, de a biztonság kedvéért (soha nem lehet tudni, mi történik, műholdas csatorna a döntő pillanatban) között TMD speciális esetek, amikor az úgynevezett „mesterek Armageddon» (Armageddon Masters). Ezek a „órások” a fedélzeten ... pontos atomórát. És még ez nem minden. Minden TMD szerver folyamatosan szinkronizálja időben kommunikál egymással egy speciális szolgáltatás timeslave. Valóban TrueTime.

Ahhoz Könyvtár TrueTime visszatérhettek egyes Span-pontos globális szerver idő a kulcs tartalmazza a „Master of Time” - csomópontok kapcsolódó GPS-rendszer, és még használni a saját atomóra.

Global idő TrueTime API nem olyan globális. Nem lenne helyes, hogy ez egy időben korlátozott bizonytalanság. Miért? Egy elosztott rendszer, ez gyakorlatilag lehetetlen elérni azonnali választ minden csomópont „itt és most”. Ezért TT.now function () TrueTime könyvtár értéket ad vissza időben, amikor egy intervallumot (TT.now () legújabb -. TT.now () legkorábban.), Figyelembe véve az elkerülhetetlen hibát. Így minden csomópont hívás kulcs TT.now () függvény hatására a visszatérés a jelenlegi globális idő, de egy idő intervallumban.

A jelenléte ezen ideiglenes rés, és lehetővé teszi a csomópontok kulcs címe következetesség kérdését a változó adatokat tranzakciót. Az alap ebben az esetben az úgynevezett kétfázisú protokoll (2-Phase Commit Protocol), jól bevált elosztott relációs adatbázis. Ez alapján egy nagyon egyszerű elv: ha az ügylet teljesítési egyközpontú befolyásolja változások a csomópontok, amelyek egy másolata a csomópont adatokat, meg kell akár fix (az eredmény változó tárolt fogadó lemez) minden ezeken a csomópontokon, vagy nem végzett (rollback) minden őket.


Középpontjában a TrueTime koncepció kombinációja elve nem feltétlenül bizonyos globális idő és kétfázisú protokoll ügyletek szigorúbban adatok konzisztenciája.

Megvalósítása kétfázisú véglegesítés protokollt használják kulcs tesztelt működés közben Bigtable Paxos algoritmust konfliktusok megoldásában.

Mi történik, ha az egyik csomópont nem lesz ideje beszámolt felkészültség rögzítéséről a megadott időintervallumban? Koordinátor visszaállíthatja a tranzakció, és nem engedi, hogy a csapat, hogy rögzítse a házigazdák felek, amelyet szintén kénytelen visszaállíthatja. Akkor próbáld ki a tranzakció újra.

Nyilvánvaló, hogy a végrehajtás a kétfázisú protokoll rendkívül megbízható adatbázis-kiszolgálók futtató relációs adatbázisok, ez nagyon eltér annak végrehajtását a közismerten megbízhatatlanok Google szerverek a klaszterben. És miért van egy egyedülálló kombinációja a hardver végre a TMD-csomópont szinkronizációs technológia és a globális idő TrueTime könyvtári funkciókat képviselő ezúttal formájában egy intervallum, amelyen belül csomópontok ideje, hogy „tárgyalni” körülbelül adatok konzisztenciáját.

Nem csoda, hogy a Google elemzi az új kulcs áruház ( „kulcs”). A fogalmat ebben NewSQL-rendszer szorosan kapcsolódik egymáshoz a legjobb, hogy sikerült elérni a területén Bigtable példátlan skálázhatóságot és rugalmasságot, a szigorú következetesség a tárolt adatok jellemző az elosztott relációs adatbázis. Öt év energiát fordított a Google mérnökei, hogy megkapja ezt az erős kapcsolat a technológia, nem hiába.