Distribuovaný SQL - Distributed SQL

Distribuované SQL databáze je jediná relační databáze , která replikuje data mezi více serverů. Distribuované databáze SQL jsou silně konzistentní a většina podporuje konzistenci napříč racky, datovými centry a širokopásmovými sítěmi, včetně zón dostupnosti cloudu a cloudových geografických zón . Distribuované databáze SQL obvykle používají k dosažení shody napříč více uzly algoritmy Paxos nebo Raft .

Distribuované databáze SQL jsou někdy označovány jako NewSQL, ale NewSQL je termín zahrnující databáze, které nejsou distribuovanými databázemi .

Dějiny

Google ‚s klíč popularizoval moderní distribuovanou koncepci databáze SQL. Google popsal databázi a její architekturu v dokumentu white paper z roku 2012 s názvem „Spanner: Google's Globally-Distributed Database“. Článek popsal Spannera, který se vyvinul z úložiště klíčových hodnot podobných Big Table do dočasné vícegenerační databáze, kde jsou data uložena ve „schematizovaných polorelačních tabulkách“.

Spanner používá atomové hodiny s algoritmem Paxos k dosažení konsensu ohledně stavu distribuovaného mezi servery. V roce 2010 a dřívější implementaci se ClustrixDB přesunul z hardwarového zařízení do softwarové databáze založené na Paxosu a později byl získán společností MariaDB jako Xpand a přidán do cloudové nabídky SaaS s názvem SkySQL . V roce 2017 společnost opustili dva inženýři Google, aby vytvořili Cockroach DB, která dosahuje podobných výsledků pomocí algoritmu Raft bez atomových hodin nebo vlastního hardwaru. V návaznosti na to vstoupili na trh další prodejci, jako jsou SkySQL a YugabyteDB společnosti MariaDB. Kromě nároků na implementaci a výkon mohou tyto nabídky běžet na více veřejných a v některých případech soukromých cloudech nebo infrastruktuře.

Klíč se používá především pro případy použití transakcí a časových řad. Google však tento výzkum podpořil následováním článku o Google F1, který popisuje jako hybridní transakční/analytickou zpracovatelskou databázi postavenou na Spanneru.

Architektura

Distribuované databáze SQL mají následující obecné charakteristiky:

  • synchronní replikace
  • silná transakční konzistence napříč alespoň zónami dostupnosti (tj. dodržování ACID )
  • struktura front -endu relační databáze - což znamená data reprezentovaná jako tabulky s řádky a sloupci podobné jakýmkoli jiným RDBMS
  • automaticky dělené úložiště dat
  • základní úložiště klíč – hodnota
  • nativní implementace SQL

Podle věty CAP jsou distribuované databáze SQL „CP“ nebo konzistentní a tolerantní k oddílům. Algoritmicky obětují dostupnost v tom, že selhání primárního uzlu může způsobit, že databáze nebude k dispozici pro zápisy. Dostupnosti je však dosaženo vyšší spolehlivostí softwaru a hardwaru, volbou nových primárních voleb a metodami heuristické obnovy.

Všechny distribuované implementace SQL vyžadují nějaký druh dočasné synchronizace, aby byla zajištěna konzistence. S výjimkou Spanneru většina k poskytování atomových hodin nepoužívá vlastní hardware. Spanner je schopen synchronizovat zápisy s dočasnými zárukami. Implementace bez vlastního hardwaru vyžadují, aby servery porovnávaly posuny hodin a potenciálně opakovaly čtení.

Ve srovnání s NewSQL

CockroachDB a další se někdy označovali jako databáze NewSQL . Některé z databází NewSQL, jako jsou Citus a Vitess, mají zásadně odlišnou architekturu, ale jako příklady NewSQL je uvedl Matthew Aslett, který tento termín vytvořil. Distribuované databáze SQL jsou v podstatě stavěny od základu a databáze NewSQL zahrnují technologie replikace a dělení přidané do stávajících relačních databází klient-server, jako je PostgreSQL . Někteří odborníci definují databáze DistributedSQL jako konkrétnější podmnožinu databází NewSQL.

Reference

  1. ^ a b c https://storage.googleapis.com/pub-tools-public-publication-data/pdf/41344.pdf
  2. ^ Higginbotham, Stacey (3. května 2010). „Clustrix staví webový škálový svatý grál: databáze, která se stupňuje“ . gigaom.com .
  3. ^ „MariaDB získává Clustrix“ .
  4. ^ Baer (dbInsight), Tony. „Pro MariaDB je čas dát dohromady kousky“ . ZDNet .
  5. ^ Morgan, Timothy Prickett (22. února 2017). „Google Spanner inspiruje CockroachDB, aby ji předběhl“ . Další platforma .
  6. ^ „Architektura distribuované databáze SQL“ - prostřednictvím www.youtube.com.
  7. ^ „DZone“ . dzone.com .
  8. ^ „Život bez atomových hodin“ . Laboratoře švábů . 21. dubna 2020.
  9. ^ „O čem mluvíme, když mluvíme o NewSQL - příliš mnoho informací“ .
  10. ^ "Databáze SQL vs. NoSQL: Jaký je rozdíl?" . www.ibm.com .
  11. ^ Prabagaren, Gokul (30. října 2019). „NewSQL - další vývoj v databázích“ . Střední .