BigTable

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

BigTable(ビッグテーブル)とは、Googleの大規模なサーバ上の大量のデータを管理する為に設計されたデータベースシステムである。Googleの分散ストレージ・システムを支えている。

特徴[編集]

BigTableは、データ圧縮された高パフォーマンスのプロプライエタリなデータベースシステムである。Google File System(GFS)やChubby Lock Service、その他のいくつかのGoogleのプログラムで構築されている。今のところGoogle以外には供給されていない。2004年から作成され[1]、現在はMapReduce(BigTableに格納されたデータの生成や修正にしばしば使われている)[2]やGoogle Reader[3]Google マップ[4]、Google Print、「My Search History」、Google Earth、Blogger、Google Code hosting, Orkut[4]YouTube[5]のようないくつものGoogleのアプリケーションで使用されている。Googleが自社のデータベースを開発する理由はコスト、スケーラビリティ、パフォーマンス特性のより良いコントロールなどである[6]

技術[編集]

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

各テーブルは多次元である。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. ^ "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
  2. ^ "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
  3. ^ "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.
  4. ^ a b "There are currently around 100 cells for services such as Print, Search History, Maps, and Orkut." Google's BigTable
  5. ^ "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
  6. ^ "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
  7. ^ *"Database War Stories #7: Google File System and BigTable"

外部リンク[編集]