InfoTalk Spring Break 2012(NoSQL) - Cassandra

InfoTalk Spring Break 2012(NoSQL) - Cassandra (今日は長丁場なのでセッション毎で纏めます) 日時:2012年3月18日(日) 13:45 - 14:40 会場:虎ノ門11森ビル 1F(株式会社ワークスアプリケーションズ) 続きを読む
0
斉藤之雄 / 社会福祉士 😺🗯 @yukio_saitoh

一貫性レベル。 QUORUM:多数決、DCQUORUM:クォーラムだけど他のDataCenter に跨る、ALL:すべてのノードに書き込まれることを保証。  #infotalk

2012-03-18 14:06:10
モリリン @Morlin1129

なんでそんなややこしいことするんだって思うけど、速度のためには必要だということか #infotalk

2012-03-18 14:07:00
斉藤之雄 / 社会福祉士 😺🗯 @yukio_saitoh

ANY と ONE は何が違う? ONE:そのデータを担当するべきノードどれか1つ、ANY:そのデータを担当しないノードでも良い、担当ノードが fail かも+担当しないノードはそのうち担当ノードに送る(Hinted Handoff) #infotalk

2012-03-18 14:07:16
ぜにまる・ザ・ジェントルマン・で・ごんす @zenimaru_UK

Google ←実は数字、というか千、とか万みたいに、桁の名前 #infotalk

2012-03-18 14:08:22
斉藤之雄 / 社会福祉士 😺🗯 @yukio_saitoh

一貫性レベルは読み込時にも使う。 古いデータ:新しいデータ。一貫性 (Write) として最新性を確保は W + R > N であれば古いデータない。 // たまに Windows Azure 複数ロールで BLOB 間で更新遅延するのを思い出した。  #infotalk

2012-03-18 14:09:54
斉藤之雄 / 社会福祉士 😺🗯 @yukio_saitoh

ノード上のデータ保持。 MemTable(カラムファミリー毎に1個作られる、単なるMAP、Java標準ConcurrentSkipListMap), SSTable (MemTableをDISKに書出したもの、WriteOnce,KEYで既にソート済み) #infotalk

2012-03-18 14:12:03
斉藤之雄 / 社会福祉士 😺🗯 @yukio_saitoh

SSTable は WriteOnce なのでシーケンシャル・リードだけで新しい SSTable を作ることができる。  #infotalk

2012-03-18 14:12:35
斉藤之雄 / 社会福祉士 😺🗯 @yukio_saitoh

Cassandra の書き込みが速い訳:実際にディスクに書き込まれるのは次の2つのみ:コミットログ、SSTable へのシーケンシャルなフラッシュ。 ※通常の書き込みコミットログのみでランダムアクセスは発生しない、とな!  #infotalk

2012-03-18 14:13:30
斉藤之雄 / 社会福祉士 😺🗯 @yukio_saitoh

// Cassandra は読み込みが遅かったのが有名でした。いまは書き込みが速いと有名と。  #infotalk

2012-03-18 14:14:21
斉藤之雄 / 社会福祉士 😺🗯 @yukio_saitoh

Cassandra Update の歴史。 ver.0.7 (2011/01) セカンダリ・インデックスの追加、スキーマの動的変更が可能に(0.6 までは xml, 0.7 からは yaml で)、カラムファミリーやキースペースを機能的に追加可能(非停止で) #infotalk

2012-03-18 14:16:53
斉藤之雄 / 社会福祉士 😺🗯 @yukio_saitoh

Cassandra 0.8 (2011/06) CQL (SQLみたいな抽象構文対応)、ベクタークロック(ノード数が増えるとサーバー間の時刻の動機がツライ、timestampの代用)※ベクタークロックと分散カウンター間違えないように  #infotalk

2012-03-18 14:18:08
斉藤之雄 / 社会福祉士 😺🗯 @yukio_saitoh

Cassandra 1.0 (2011/10) データの圧縮が可能になり I/O の節約が可能に、(Javaの)ヒープ外でのキャッシュがデフォルトに、書込みが40%高速化、読み込みが 400% 高速化。 at Cassandra ver.0.6 よりも。  #infotalk

2012-03-18 14:19:43
斉藤之雄 / 社会福祉士 😺🗯 @yukio_saitoh

Cassandra を使ってみた。 PARTAKE は実験のために使ってみた。 // ATND 風なやつ。  #infotalk

2012-03-18 14:20:25
斉藤之雄 / 社会福祉士 😺🗯 @yukio_saitoh

DataAccessObject をインタフェースにしたと。 基本 DAO API 、すべての Table は次のアクセスが出来る(ry  Table アクセスを抽象化して、必要に応じて裏側でRDBっぽく実装。 スキーマを持たない(Javaに型はある)  #infotalk

2012-03-18 14:22:14
斉藤之雄 / 社会福祉士 😺🗯 @yukio_saitoh

HAなので、Cassandra はDB 死んでも大丈夫(1台しか無かったら死ぬw)。 インスタンスが落ちても繋ぎなおせば復旧可能。 RDB マスタースレーブの復帰はめんどいw  #infotalk

2012-03-18 14:23:44
斉藤之雄 / 社会福祉士 😺🗯 @yukio_saitoh

スケーラブル。(とりあえず)新しいマシンを用意すれば負荷分散できる。ただ・・・w ※適当にやってもなんとかなるという【安心感】は何事にも代えがたいモノがある。 // ほんとその通りですねww  #infotalk

2012-03-18 14:24:41
モリリン @Morlin1129

いんふらえんじにあさん が よなかにたたきおこされることもなくなるんだね! #infotalk

2012-03-18 14:24:57
redwinesanshiro2 @redwinesanshir0

スケールを初期に考えなくて良いのは気軽にやりたい機能にはらくだなー。。。 #infotalk

2012-03-18 14:25:28
斉藤之雄 / 社会福祉士 😺🗯 @yukio_saitoh

Cassandra 欠点。検索機能が貧弱。ver.0.6 ではセカンダリーインデックスがなかった。あっても範囲検索できないw 結局、転置INDEX を作ることに。 (マスターに書いたらインデックスがあるか確認し、なかったら書きに行く)  #infotalk

2012-03-18 14:25:50
斉藤之雄 / 社会福祉士 😺🗯 @yukio_saitoh

起されるでせう、DevOps 環境でなければw  RT @Morlin1129: いんふらえんじにあさん が よなかにたたきおこされることもなくなるんだね! #infotalk

2012-03-18 14:26:17
Yuya Kusakabe @higebu

何これ楽しそう…Cloudian出るんだ… InfoTalk Spring Break 2012 NoSQL http://t.co/fV6NmRzX #infotalk

2012-03-18 14:26:53
斉藤之雄 / 社会福祉士 😺🗯 @yukio_saitoh

Cassandra: atomic 処理が貧弱。 同じカラムファミリー内で 1つの key に対しては処理が atomic、しかしw  #infotalk

2012-03-18 14:27:03