分散SQL

分散SQLデータベースは、複数のサーバーにデータを複製する単一のリレーショナルデータベースです。分散SQLデータベースは強力な一貫性を備えており、ラック、データセンター、広域ネットワーク(クラウドのアベイラビリティゾーンやクラウドの地理的ゾーンを含む)にわたる一貫性をサポートします。分散SQLデータベースでは、通常、複数のノード間での合意形成にPaxosまたはRaftアルゴリズムが使用されます。

分散 SQL データベースはNewSQLと呼ばれることもありますが、NewSQL は分散データベースではないデータベースも含む、より包括的な用語です

歴史

GoogleSpannerは、現代的な分散SQLデータベースの概念を普及させました。Googleは2012年に発表したホワイトペーパー「Spanner:Googleのグローバル分散データベース」で、このデータベースとそのアーキテクチャについて解説しました。このホワイトペーパーでは、SpannerはBig Tableのようなキーバリューストアから、データが「スキーマ化されたセミリレーショナルテーブル」に格納される、時間的なマルチバージョンデータベースへと進化したと説明されています。[1]

Spannerは、Paxosアルゴリズムと原子時計を用いて、サーバー間で分散された状態に関する合意形成を実現しています。2010年、ClustrixDB(現MariaDB Xpand)は、ハードウェアアプライアンスからPaxosベースのソフトウェアデータベースに移行しました[2]。その後、MariaDB [3]に買収され、 SkySQLと呼ばれるSaaSクラウドサービスに追加されました[4]2015年には、2人のGoogleエンジニアが同社を去り、Cockroach DBを開発しました。Cockroach DBは、原子時計やカスタムハードウェアを使用せずにRaftアルゴリズムを用いて同様の結果を達成しています[5] 。

Spannerは主にトランザクション処理と時系列処理のユースケースに使用されます。しかし、Googleはこの研究をさらに進め、Google F1に関する続編論文を発表しました。Google F1は、Spanner上に構築されたハイブリッドなトランザクション/分析処理データベースであると説明されています。[1]

建築

分散 SQL データベースには、次のような一般的な特性があります。

CAP定理に従い、分散SQLデータベースは「CP」、つまり一貫性と分断耐性を備えています。アルゴリズム的には、プライマリノードの障害によりデータベースへの書き込みができなくなるため、可用性が犠牲になります。

すべての分散SQL実装は、一貫性を保証するために何らかの時間同期を必要とします。Spannerを除いて、ほとんどの実装では原子時計を提供するためにカスタムハードウェアを使用していません。Spannerは時間保証付きで書き込みを同期できます。カスタムハードウェアを使用しない実装では、サーバーがクロックのオフセットを比較し、場合によっては読み取りを再試行する必要があります。[8]

分散SQL実装

ベンダーAPIライセンスモデル
アマゾンオーロラPostgreSQLMySQL独自の
コックローチDBPostgreSQLのような独自の
Google スパナ独自のSQLライク独自の
MySQL クラスタMySQLオープンソース(GPLv2)
ヌーDB独自のSQL独自の
ユガバイトDBPostgreSQLCassandraのCQLライクオープンソース(Apache 2.0)
ティドブMySQLのようなオープンソース(Apache 2.0)
MariaDB XPandマリアDB独自の
テラデータ独自のSQLライク独自の
YDB [9]独自のSQLライク、PostgreSQLライクオープンソース(Apache 2.0)

NewSQLと比較して

CockroachDB、YugabyteDB などは、自らをNewSQLデータベースと呼ぶことがあります。NewSQL データベースの中には根本的に異なるアーキテクチャを持つものもありますが、この用語を考案した Matthew Aslett によって NewSQL の例として挙げられました。[10]本質的に、分散 SQL データベースはゼロから構築され、NewSQL データベースにはPostgreSQLのような既存のクライアントサーバー型リレーショナルデータベースにレプリケーションとシャーディング技術が追加されています。[11]一部の専門家は、分散 SQL データベースを NewSQL データベースのより具体的なサブセットと定義しています。[12]

参考文献

  1. ^ abc https://storage.googleapis.com/pub-tools-public-publication-data/pdf/41344.pdf [裸のURL PDF ]
  2. ^ Higginbotham, Stacey (2010年5月3日). 「ClustrixがWebスケールの聖杯を構築:スケールするデータベース」gigaom.com .[リンク切れ]
  3. ^ 「MariaDBがClustrixを買収」2018年9月20日。
  4. ^ Baer (dbInsight), Tony. 「MariaDBにとって、今こそすべての要素をまとめる時だ」ZDNet
  5. ^ Morgan, Timothy Prickett (2017年2月22日). 「Google SpannerがCockroachDBに勝利のきっかけを与える」The Next Platform .
  6. ^ データベースの未来:分散SQLとMariaDB® 、 2022年12月21日取得
  7. ^ 「分散SQLデータベースのアーキテクチャ」。2020年9月23日 – www.youtube.com経由。
  8. ^ 「原子時計なしで生きる」Cockroach Labs . 2020年4月21日.
  9. ^ 「YDB は、高可用性とスケーラビリティを強力な一貫性と ACID トランザクションと組み合わせたオープンソースの分散 SQL データベースです」。ydb.tech
  10. ^ 「NewSQL について話すときに何を話すか — 情報が多すぎる」。
  11. ^ 「SQLデータベースとNoSQLデータベースの違いは何か?」www.ibm.com 2022年6月12日
  12. ^ Prabagaren, Gokul (2019年10月30日). 「NewSQL — データベースの次なる進化」. Medium .
「https://en.wikipedia.org/w/index.php?title=Distributed_SQL&oldid=1299088859」から取得