KVS入門にまつわるKVSな議論

IBMが作成した"KVS入門"をめぐる議論。
7
E. Nakai @enakai00

「KVS入門」公開しました!KVSを初めて学ぶ方を意識して、厳密性は多少犠牲にして、分かりやすく書いています。(BASEな感じで。。。)改善コメントWelcomeです。 http://bit.ly/d3ld95

2010-05-19 15:02:16
Tatsuya Kawano @tatsuya6502

拝見しました。初心者に優しい内容で良いですね。2点改善コメントがあります(続く)QT @enakai00:「KVS入門」公開しました!KVSを初めて学ぶ方を意識して、厳密性は多少犠牲にして、分かりやすく書いています。 http://bit.ly/d3ld95

2010-05-19 19:00:16
Tatsuya Kawano @tatsuya6502

. @enakai00 まず、 HBase の管理ノードがSPOFと書かれてますが、これはどのノードでしょうか? もしHBase Masterでしたら、実際はActive - Stand by構成に対応してます。 HBase multiple mastersで検索してください

2010-05-19 19:15:00
Tatsuya Kawano @tatsuya6502

. @enakai00 もしSPOFが HDFS Name Node のことでしたら、それは正しいです。ちょっと苦しいのですか、DRDBとHeartbeatで回避するのが一般的なようです。Hadoopユーザー会のNTT Dataさんの資料で紹介されていたと思います。

2010-05-19 19:16:15
Tatsuya Kawano @tatsuya6502

. @enakai00 もう一点は細かい話なのですが、 HBase は、4月の下旬から Apache Software Foundation のTLP(トップレベルプロジェクト)になりました。現在、メーリングリストやサイトのURLを移行中です

2010-05-19 19:20:40
Shinpei Ohtani @shot6

@enakai00 cassandraのデータモデルというところが、HBaseが主語になってます。

2010-05-19 19:26:37
Shinpei Ohtani @shot6

@tatsuya6502 DRBD+Heartbeatもいいですが、NameNode自体で冗長化してほしいところですよね。AvatorNameNodeに期待してます。

2010-05-19 19:27:31
Shinpei Ohtani @shot6

@enakai00 あ、失礼しました。HBaseとの比較のためにそういう書き方をしているのですね。私の読み方がまずかったです。

2010-05-19 19:28:40
Shinpei Ohtani @shot6

@enakai00 ACID特性という切り口でも良いのですが、CAPのどれを重視しているのかという観点があるともっとよくなると思いました。HBaseとCassandraの違いがよくわかるので。

2010-05-19 19:41:07
Shinpei Ohtani @shot6

@enakai00 ACID特性という切り口でも良いのですが、CAPのどれを重視しているのかという観点があるともっとよくなると思いました。HBaseとCassandraの違いがよくわかるので。

2010-05-19 19:41:07
E. Nakai @enakai00

@tatsuya6502 もろもろコメントありがとうございます。はい。SPOFはHDFSのNameNode / SecondaryNameNodeです。補足しておきますね。TLP移行のところも補足しておきます。

2010-05-19 21:07:38
E. Nakai @enakai00

@shot6 CAPの記述も考えたのですが、(このガイドの読者として意識している)RDBな世界の方には、ACIDとCAPの微妙な定義の違いから入らないといけないのと、ACIDに比べて歴史の短いCAPは人によって定義が変わることがあるので、とりあえず、避けました。。。

2010-05-19 21:30:24
てろりー @terurou

@enakai00 KVS入門を拝見しました。「KVSの特徴」ですが、そこに至る文脈から『KVS=BigTableライク・column-orientedなもの』とは読み取れます。しかしmemcache系のシンプルなデータモデルのものはKVには含まれないようにも読み取れてしまいます

2010-05-19 21:51:33
E. Nakai @enakai00

@terurou はい。広い意味では、memcachedもKVSと考えています。が、KVSという言葉の歴史が浅く、人によって定義がことなることがあるので、この資料では、Bigtableライクなものに記述をしぼっています。(とはいえ、コメントはつけておきます。)

2010-05-19 22:08:43
Shinpei Ohtani @shot6

@enakai00 CAPの定義があまり変わるとは思えませんです。ACIDだけでは重要なP(分割耐性)が説明できないので、そこは補足すべきではと思うのですがいかがでしょうか。

2010-05-19 23:11:01
E. Nakai @enakai00

@shot6 なるほど。。。ちなみに、C, A, P をそれぞれ、どのように定義されています?(私の頭の中の定義がそもそも違うとどうしようもないので。。。。)

2010-05-19 23:21:44
Shinpei Ohtani @shot6

@enakai00 140文字で書くのも難しいですが、BrewerのCAP定理のとおりConsistency、Availability、Partition Toleranceですね。Pの解釈ですが、ネットワークが分断されたときにシステム全体が停止せず動作するかどうか、です。

2010-05-19 23:29:51
E. Nakai @enakai00

@shot6 ・・・とすると、例えば、HDFSの標準的な構成では、クラスターが2つに分断されるとデータブロックの不足でHDFSが停止する可能性があるので、HBaseはPが○にならない気がしますが、この理解はあってますか?

2010-05-19 23:36:36
Shinpei Ohtani @shot6

@enakai00 そうですね。HBaseはCAPでいうとCAを重視していると思います。

2010-05-20 00:03:42
Shinpei Ohtani @shot6

一貫性の話も、読み込み時にクライアントから見える一貫性の話と、実際の永続化したデータとしての一貫性の話というパースペクティブの違いも実はありますね。突き詰めるとConsistentとは何か、というはなしに・・・

2010-05-20 00:08:14
E. Nakai @enakai00

@shot6 うーん。http://bit.ly/cxErPX を読むと、「分割したらConsistencyを欠く結果を出さない様、分割が回復するまで待つ(その間システムは停止する)」のもOKなのがPの定義です。この定義だとHBaseはPが○?CAPに詳しい方、ヘルプを。。。

2010-05-20 00:13:53
Shinpei Ohtani @shot6

@enakai00 HBaseはPが得意ではないですね。仰るようにHDFSのノードダウンでのブロック不足の場合ダメですから。そのケースではDataNodeが復旧されるまで待つことになります。ご指摘の部分はCAP定義の部分ではなく、分解耐性諦め路線の場合の対策という理解です。

2010-05-20 00:21:12
yssk22.tar.gz @yssk22_tar_gz

お世話になったこともあるので、あえて書きますが、「KVSとは」が、memcache と Column Oriented と設計思想の異なるものがなぜか一緒くたに書かれているので、"入門"としてはすごくまずい気がします。 to @enakai00

2010-05-20 00:23:33
E. Nakai @enakai00

@yssk22 なるほど。そこでしたか。ありがとうございます。

2010-05-20 00:34:45
Shinpei Ohtani @shot6

というわけでACMであさってみた。Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web servicesというのは発見。明日読んでみます。

2010-05-20 00:35:12
1 ・・ 4 次へ