GoogleがBeta Cloud Spannerを開始-NewSQL Generation Database Engine





Googleは、分散トランザクションをサポートする、グローバルに分散された高度にスケーラブルなマルチバージョンNewSQLデータベースであるCloud Spannerのベータ版をすべての人に公開しました



Googleは数年間、このサービスを社内のニーズにのみ使用していました。 AdWordsやGoogle Playなどの主要なGoogleシステムを実行します。 Spannerは、Google Bigtableの前身であるNoSQLの進化的開発です。 Spanner自体は、ソリューションのNewSQLファミリに属します。つまり、リレーショナルDBMSと非リレーショナルDBMSの利点を組み合わせています。 これらは、NoSQLに固有の水平スケーリングと高可用性を犠牲にしない、従来のDBMSのACIDトランザクションとSQL構文です。



社内のシステムの経験に基づいて、Googleは顧客に99.9999%のアップタイム(シックスナイン、つまり年間最大31.5秒のダウンタイム)、Java、Go、Python、Node.jsなどをサポートするクライアントライブラリを提供します。



Spannerの動作原理は、James C. Corbett、Jeffrey Dean、Michael Epstein、Andrew Fikes、Christopher Frost、JJ Furmanなどの科学的研究に記載されています。 Spanner:Googleのグローバル分散データベース。 OSDIの議事録、 2012。HabréのSpanner(2013)の説明も参照してください。







数年間の内部使用の後、Googleは一般的な使用のためにこのインフラストラクチャサービスを展開することを決定しました。 サブスクライブは、信頼性の高いフェールセーフクラウドアプリケーションを展開する必要がある企業クライアントに提供されます。 以前は、トランザクションの一貫性が保証された従来のデータベースと、シンプルな管理、水平スケーリング、分散データストレージを備えたNoSQLデータベースのいずれかを選択する必要がありました。 Cloud Spannerは、両方のテクノロジーのすべての利点を組み合わせることにより、これらの矛盾を解決するように設計されています。





Cloud Spannerは、Google Cloud Platform Cloud(GCP)でデータベースサービスのラインを完成させ、Cloud SQL、Cloud Datastore、Cloud Bigtableを補完します。



Cloud Spannerには、最大ベースサイズに理論的な制限はありません。 同時に、このサービスは小規模なプロジェクトに使用できます。 ここでの主な利点は、スケーラビリティだけでなく、世界中のすべてのデータセンターでグローバルトランザクションを同時に実行できることです。



Cloud Spannerサービス使用するコストは 、ノードあたり1時間あたり0.90ドル、1ギガバイトの使用済みディスク領域に対して1か月あたり0.30ドルに設定されています。 リージョン内、米国リージョン間-ギガバイトあたり0.01ドル、国間-ギガバイトあたり0.08ドルから0.12ドル、中国-ギガバイトあたり0.20ドルから0.23ドル、オーストラリアから-のトラフィックには無料ギガバイトあたり0.15〜0.19ドル。



Spannerの主要なイノベーション



GoogleがNTP(Network Time Protocol)を放棄し、より正確で信頼性の高いGPSと原子時計を備えた独自の時間検証システムを実装しなければならなかった理由、Habrに記事が公開されました。 TrueTime APIと呼ばれていました。 このようなシステムの導入は、Google Spannerデータベースの整合性を確保するために必要でした。



新しいトランザクション時間コーディングシステムによりデータの整合性を確保することは、Spannerの主要な革新の1つです(前述の科学研究で示されています)。 Googleのエンジニアは、時間をチェックし、トランザクションの時間間隔を記録し、タイムスタンプの信頼性レベルを評価するためのマルチレベルシステムを開発しました。 これは、システムの信頼性が依存する重要な要素です。



外部クロックからデータを受信する代わりに、Googleは独自の原子時計とGPS受信機をデータセンターに装備しました。 この機器は、データセンター内の他のすべてのサーバーにタイムスタンプを配布する一部のサーバーに接続されています。 実際、データセンターの各マシンでは、デーモンがバックグラウンドで実行され、データセンターのタイムサーバーと他のデータセンターの同様のタイムサーバーを常にポーリングします。 したがって、世界中のGoogleサーバーは同時に動作することが保証されています。









Google TrueTime APIは、さまざまなデータセンターがデータベース内の同じセルに同時に書き込もうとするときにデータの同期を提供します。 TrueTime APIは、TTinterval時間間隔の値を報告します。これは、測定誤差と不確実性が固定された時間です。 2つの競合するトランザクションのTTinterval間隔が重ならない場合、どちらが早く発生したかを自信を持って言えます。 それらが交差する場合、これは一定量の不確実性を意味します。



CAP定理の遵守



Spannerは、 CAP定理に違反することなく、リレーショナルDBMSと非リレーショナルDBMSのプロパティを組み合わせます。 これがどのように可能になったか-カリフォルニア大学の前教授で現在Googleのインフラストラクチャ担当副社長であるCAP定理 Eric Eric Brewer の著者は説明しています。






Cloud Spanner Betaは、しばらくの間、一部のパートナーによって使用されています。 たとえば、Quizletのエンジニア彼の経験についてした。 これは、Spannerインターフェースとプロトコルの内部からの興味深い外観です。公式のドキュメントは別として、このユニークなサービスに関する情報はまだないためです。



All Articles