#devfest_jpで気になった用語を調べていきます。
Distributed Meme
・Divide & conquer (分割統治)
データと処理をTaskQueueに渡したり。
システム全部止めてバッチ処理なんてこといならないようにする。
・Sharding (訳語はなんだろう? Shared Nothing)
Database Sharding
http://www.codefutures.com/database-sharding/
↑この記事を日本語で解説してくれている記事。参考になりました。
http://agilecat.wordpress.com/2009/06/28/database-sharding-_1/
(これを読むとShardingとは、Googleによる造語らしい。)
例えばfig.3 にBookstoreスキーマをShardingした例がある。
これを見るとcustomerテーブルをcustomer.idごとに分割して別の
shard(断片)に格納しておいて、customterテーブルを参照する子テーブル
であるcustomer_orderとかはcustomer.idごとに別shardに格納される。
つまりcustomerをルートとするデータのツリーをshardごとに格納して
cross shard な joinが発生しないようにする、ということ。
・Tolerate / expect failure (失敗への耐性)
データセンターでは機器の故障は分から秒の単位で起こる。
・Idempotency (冪等性)
失敗して再試行することを前提に、何度実行しても同じ
結果になるような操作を定義しておく。
・Just scale it up (スケールアップせよ)
スケールアップしろと。
つづく
Distributed Meme
・Divide & conquer (分割統治)
データと処理をTaskQueueに渡したり。
システム全部止めてバッチ処理なんてこといならないようにする。
・Sharding (訳語はなんだろう? Shared Nothing)
Database Sharding
http://www.codefutures.com/database-sharding/
↑この記事を日本語で解説してくれている記事。参考になりました。
http://agilecat.wordpress.com/2009/06/28/database-sharding-_1/
(これを読むとShardingとは、Googleによる造語らしい。)
例えばfig.3 にBookstoreスキーマをShardingした例がある。
これを見るとcustomerテーブルをcustomer.idごとに分割して別の
shard(断片)に格納しておいて、customterテーブルを参照する子テーブル
であるcustomer_orderとかはcustomer.idごとに別shardに格納される。
つまりcustomerをルートとするデータのツリーをshardごとに格納して
cross shard な joinが発生しないようにする、ということ。
・Tolerate / expect failure (失敗への耐性)
データセンターでは機器の故障は分から秒の単位で起こる。
・Idempotency (冪等性)
失敗して再試行することを前提に、何度実行しても同じ
結果になるような操作を定義しておく。
・Just scale it up (スケールアップせよ)
スケールアップしろと。
つづく