Spanner (データベース)とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Spanner (データベース)の意味・解説 

Spanner (データベース)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/12/06 09:43 UTC 版)

GoogleクラウドサミットにおけるCloud Spannerの展示

Spanner(スパナ)は、Googleで開発され、利用されている分散データベースである[1]。2012年に設計が論文として公開された[1]。2017年からはGoogle Cloud Platform上で提供が始まり、一般ユーザでも利用できるようになった[2]

概要

関係データベース管理システム(RDBMS)の構造と非関係データベース(NoSQL)のスケーラビリティを兼ね備えるとされる[3]

Googleは、Spanner以前にもスケーラブルな分散型データベースであるBigTable(NoSQLデータベース)を社内で利用していた。BigTableは多くのプロジェクトで活用されてきた一方で、従来のスキーマ型のRDBMSのようにデータの一貫性が欲しいという不満も受けていた[1]。この問題を解決するために、Spannerが開発された。

何百ものデータセンターに渡る100万台規模のサーバに分散、スケールするように設計されている[1]

また、SQL文を利用してデータの更新や集計などが可能である[4]

後述の通り、タイムスタンプを利用してデータの一貫性を保証する特徴がある。これにより、データベースへの処理が行われている最中であっても、一貫したデータの読み書きが行えるだけでなく、一貫したバックアップMapReduce処理が可能であるとされる[1]

技術詳細

上記の通り、Spanner ではデータの一貫性を担保する必要があった。これを実現するために、BigTableとは異なり、Spanner ではタイムスタンプが必ずデータに付与される[1]。このデータ構造はtabletと呼ばれ以下のようなマッピングを持つ:

(key:string, timestamp:int64) -> string

これらデータはGoogle File Systemの後継であるColossus上に全て保存される。

上記のようにタイムスタンプを用いることで、全てのトランザクション処理コミットがどの順番で行われたかを管理でき、これによって、一貫性を保証できる(詳細はMultiVersion Concurrency Controlを参照)。

ここで重要となるのは、タイムスタンプを一貫した時刻基準を用いて押し、処理した順番を誤って前後させないことである。しかしながら、Spannerのようにデータが複数のサーバに分散される場合は実現が難しい。全てのサーバを常に、かつ厳密に同時刻に保つことは困難なためである。

これを解決するために、Spannerでは、TrueTime APIを利用して、現在の絶対時刻をある幅TTinterval: [earliest, latest]を持たせて取得する[1]。これは、現在の絶対時刻

Alphabet歴史サービス企業
開発
サービス
ハードウェア
X



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Spanner (データベース)」の関連用語

Spanner (データベース)のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Spanner (データベース)のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのSpanner (データベース) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS