kotaの雑記帳

日々気になったことの忘備録として記していきます。



クラウドとHypertable(つづき)

前回Hypertableの記事を書いてから少し間があいてしまったが、GoogleのHypertableの話を続けよう。
http://d.hatena.ne.jp/kota2009/20091212/1260590088

System Conponents

Hyperspace

これは我々のシステムにおけるChubbyである。Hyperspaceはごくわずかのメタデータを格納するためのファイルシステムを提供する。それはまた排他的あるいは共有ロック機構とファイル・ディレクトリのデータを獲得する機能を管理する。現在、一つのサーバとしてそれは実装されているが、将来は分散された可溶性の高いものとされる。GoogleはChubbyをすべての分散データ構造のルートとして参照している。

Range Server

テーブルは連続した行のデータに分割され、それらはRange Serverに管理される。最初、各テーブルは一つのRangeからなる(それは全row key spaceに広がっている)。テーブルにデータが追加されるに従いその範囲はサイズ詩喜一を超え、二つのRangeに分割される。そしてMasterにより二つの1一つが他のRangeServerにアサインされる。この分割プロセスは以後も続く。各Range Servarはそれが管理するRangeに対するTableデータの読み書きすべてを処理する。Range ServerはCellCacheと呼ばれるメモリキャッシュを使用する。定期的にCellCacheはディスクにフラッシュされ、CellStoreと呼ばれるファイルにデータは書きこまれる。あるアクセスグループ内のデータをスキャンする時は、Range ServerはCellCacheとCellSotoreの両方のデータを考慮に入れる。

処理図が原文にあり。

Master

マスターはテーブルの生成削除のようなすべてのメタ操作を処理する。クライアントデータはマスターを通って移動しない。そのためマスターはクライアントに気付かれることなく短時間ならばダウンすることができる。マスターはRange Serverの故障の検出も行い、必要ならばレンジの再アサインを行う。さらにマスターは負荷分散の責任を負っている。現在シングルマスタープロセスのみサポートされているが、マスターのホットスタンバイも可能なように設計されている。

DFS Broker

Hypertable は任意のファイルシステムの上で動作する。これを実現するために、システムはDFS Brokerを通じてファイルシステムにアクセスする。DFS Brokerはファイルシステムアブストラクションを行っている。