Bigtable

ウィキペディアから無料の百科事典

Google Bigtable
開発元 Google Inc.
初版 2005年2月 (19年前) (2005-02)
プログラミング
言語
プラットフォーム Google Cloud Platform
種別 Cloud Storage
ライセンス プロプライエタリ
公式サイト cloud.google.com/bigtable/
テンプレートを表示

Bigtable(ビッグテーブル)とは、Googleの大規模なサーバ上の大量のデータを管理するために設計された、データ圧縮機能を持つ高性能なNoSQL型のプロプライエタリのデータストレージシステムである。Google File System分散ロックマネージャの1種であるChubby Lock Service、SSTable(LevelDB英語版に似たログ構造化ストレージ)、その他のいくつかのGoogleの技術を活用して構築されている。2015年5月6日、パブリックバージョンのBigtableが、Google Cloud Platformのサービスの1つとして公開された。BigtableはGoogle Cloud Datastoreのバックエンドとしても利用されている[1][2]

歴史

[編集]

2004年から開発が始まり[3]、2006年には設計が論文として公開された[4]

MapReduce(Bigtableに格納されたデータの生成や修正にしばしば使われている)[5]、Google Reader[6]Google マップ[7]、Google Print、My Search History、Google EarthBlogger、Google Code hosting、Orkut[7]YouTube[8]のようないくつものアプリケーションを支えている。

Googleが自社でデータベースを開発した理由はコスト、スケーラビリティ、パフォーマンス特性のより良いコントロールなどであるとされる[9]

GoogleのSpanner RDBMSは、各テーブルの2相コミットごとにPaxosグループを持つBigtableの実装上にレイヤーを作っている。Google F1英語版は、Spannerを用いてMySQLに依存する実装を置き換えるために作られた[10]

技術

[編集]

Bigtableは高速で超大規模な列指向DBMSである。行ではなく、列からの高速な読み込みに焦点を当てている。Bigtableは数百から数千台のサーバのペタバイトまでのデータを扱い、システムにサーバを簡単に増設して、再設定なしにそれらのリソースを自動的に利用し始めるように設計されている[11]

各テーブルは多次元である。1つ1つのフィールドはその時点のスナップショットを持ち、バージョニングを行う事が出来る。テーブルはGFSに最適化されており、大きなテーブルは複数のTablet segment(タブレットセグメント)に自動的に分割される。分割はタブレットが200メガバイトのサイズになるように行の境界で行われる。サイズが特定の限界を超える兆候が見られた場合、テーブルはBMDiffとZippyアルゴリズムを使用して圧縮される。これらはLZWより圧縮率で劣るが、計算量で勝っている。

タブレットのGFS内の位置(サーバのIPとPort)は、「META1」タブレットと呼ばれる複数の特別なタブレットにデータベースエントリとして記録されている。META1タブレットは1つだけある「META0」タブレットを照会する事で作成される。「META0」タブレットは通常は1つのマシンを占有している。「META1」タブレットの位置に関してクライアントから頻繁に問い合わせを受けるからである。「META1」タブレットはそれ自体が、実際のデータの位置についての答えを持っている。GFSマスターサーバのように、META0は通常はボトルネックにはならない。META1の位置を発見・送信する為に必要なプロセッサ時間と帯域はごく僅かである。クライアントは積極的に位置をキャッシュして、照会を必要最低限にするからである。

他の実装

[編集]

Hadoopプロジェクトは、Bigtableの現在の実装を目指して改良を加えられている。HBaseと呼ばれている。

"Just as Bigtable leverages the distributed data storage provided by the Google File System, Hbase will provide Bigtable-like capabilities on top of Hadoop."

関連事項

[編集]

参考文献

[編集]
  1. ^ Announcing Google Cloud Bigtable: The same database that powers Google Search, Gmail and Analytics is now available on Google Cloud Platform”. Google Blog (May 6, 2015). September 21, 2016閲覧。
  2. ^ Get started with Google Cloud Datastore - a fast, powerful, NoSQL database”. 2019年6月10日閲覧。
  3. ^ "First an overview. BigTable has been in development since early 2004 and has been in active use for about eight months (about February 2005)." Google's BigTable
  4. ^ Bigtable: A Distributed Storage System for Structured Data”. 2018年2月4日閲覧。
  5. ^ "Bigtable can be used with MapReduce, a framework for running large-scale parallel computations developed at Google. We have written a set of wrappers that allow a Bigtable to be used both as an input source and as an output target for MapReduce job". pg 3 of "Bigtable: A Distributed Storage System for Structured Data", 2006
  6. ^ "Reader is using Google's BigTable in order to create a haven for what is likely to be a massive trove of items." Official Google Reader blog.
  7. ^ a b "There are currently around 100 cells for services such as Print, Search History, Maps, and Orkut." Google's BigTable
  8. ^ "Their new solution for thumbnails is to use Google’s BigTable, which provides high performance for a large number of rows, fault tolerance, caching, etc. This is a nice (and rare?) example of actual synergy in an acquisition." YouTube Scalability Talk
  9. ^ "We have described Bigtable, a distributed system for storing structured data at Google....Our users like the performance and high availability provided by the Bigtable implementation, and that they can scale the capacity of their clusters by simply adding more machines to the system as their resource demands change over time...Finally, we have found that there are significant advantages to building our own storage solution at Google. We have gotten a substantial amount of flexibility from designing our own data model for Bigtable." from the Conclusion of "Bigtable: A Distributed Storage System for Structured Data", 2006
  10. ^ Shute, Jeffrey ‘Jeff’; Oancea, Mircea; Ellner, Stephan; Handy, Benjamin ‘Ben’; Rollins, Eric; Samwel, Bart; Vingralek, Radek; Whipkey, Chad et al. (2012), “Summary; F1 — the Fault-Tolerant Distributed RDBMS Supporting Google's Ad Business” (presentation), Research, Sigmod: Google, p. 19, http://research.google.com/pubs/pub38125.html, "We've moved a large and critical application suite from MySQL to F1" .
  11. ^ *"Database War Stories #7: Google File System and BigTable"

外部リンク

[編集]