2009年6月15日月曜日

分散KVSについて

Pacificという名前の分散ストレージをつくり始めた件

こちらを読んでみて分散KVSっていったいなんだろうと思ったので、考えてみました。
分散KVSっていうのはデータベースにRDBMS shardingではないとのこと。

あれ?RDBMS側で分散させなかったら、いったいどこで分散させるんだ?
率直な疑問。
RDBMS上で分散させるのではなくて、他のフレームワークで分散させましょう!っていうことでしょ?

まぁ読んでいても結構分けのわからない単語が出てきているので曖昧な物も列挙 調査してみる。
sharding・・・分散?clusterとは違うの?
RDBMS sharding・・・RDBMS上でshardingするんだよ。
cluster・・・見るのが早い。http://www.slideshare.net/hirohama/mysql-cluster-presentation
分散キーバリューストア(分散KVS)・・・不明 明言できない 頭の中で整理がついたら書くかもしれないし書かないかもしれない。
参考文献:Float on the flow 以下引用 http://d.hatena.ne.jp/shozzy/20090302/1235962175
分散化、クラウド化という文脈では必須になってくることはわかるんだけど。使い勝手というか開発効率的にどうなの?みたいな。

以下、自分の現時点での理解

????????? o キー・バリュー型データストアとは、Javaで言えばMapのようなもの。
????????? o MapReduceとかHadoopとかは、計算を分散化させるための仕組み。何らかの計算をさせるための引数をMapに詰めて渡したら、分散処理して返してくれるイメージ。


この理解が正しいとすると、キー・バリュー型データストアはかなりプリミティブなAPIしか提供しないことになる。プログラミング言語が提供するコレクション・インタフェースと同等の。*1

つまり、SQLのような集合指向の便利な*2APIは提供してくれないものと思われる。
上記の参考文献URLに関しては最後の部分の方が気になります。 気になった方は見に行って下さい。
参考文献:ITpro 以下引用 http://itpro.nikkeibp.co.jp/article/OPINION/20090226/325527/
キー・バリュー型データストア(またはキー・バリュー型データベース)は、大量のユーザーとデータを抱え、データベースのパフォーマンス問題とコスト高に頭を悩ませるWeb企業が注目する技術である。記者は同日に開催された「Key-Value Store 勉強会」に参加させてもらった。午後7時から11時まで、キー・バリュー型データストアを開発・研究する若手技術者が立て続けに登場し、1人15分の持ち時間で成果を発表し、議論を重ねるという集まりだ。
レンジクエリ・・・ある幅を限定したクエリ(文中にも出てきたような最新の日記5件とか)
参考文献:文中より推察
トランザクション・・・一つの処理をまとめたもの
it用語辞典?
レンジ・・・チン!
参考文献:wikipedia

んー、調べてみたけどあまり分かりません。 これは、保留ですね。
また、技術の深い所での研究は若年層でも活発なようです。 わくわくしますね。 こういう話。 俺できないけどさヽ(;´Д`)ノ