InfoTalk Spring Break 2012(NoSQL) - Cassandra

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

Cassandra 川中 真耶 氏=Google ご登壇です。もともとワークスアプリケーションズの方。 カサンドラについてお話いただけます。 #infotalk

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

なんで Google なのに カサンドラなの? Google とはなんの関係もないとな。  #infotalk

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

川中さんの自己紹介。  @mayahjp 最近のお仕事 Webkit で Shadow DOM という規格を実装中。その他 PARTAKE、競技プログラミング、 OCaml, プログラミング言語など。。。  #infotalk

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

今日のお話:Cassandra とは?その中身、使ってみる。  #infotalk

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

Cassandra は fb によって開発された分散データベースである。 2008年7月に Apache 財団へ寄付された。公式サイトによると netflix, Reddit, digg, twitter などが使っている。  #infotalk

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

Cassandra は  >300TB, >400machines のクラスタでの稼働実績あり。利点はそこそこ速い。 数台で 数万 qps~、ノード追加で書込みがスケールする、SPoF(単一障害点)がない。データが単なる byte array ではない。  #infotalk

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

Cassandra は一貫性の制御に自由度がある。最初から Data Center 分散に関する機能がある。  #infotalk

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

Cassandra // memcached は Key を取ってくると byte array で書き換えが発生する。しかし(半)構造を持つ。 RDB table 風に使える。  #infotalk

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

Cassandra データセンタを跨って運用することを想定して作られている。 ex.) 2つ以上のデータセンタに対して書けという指示が出来る。  #infotalk

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

Cassandra の主な制限。トランザクションが制限、 join なんて気の利いたものはない。基本的に普通の KVS の制限がある。 #infotalk

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

Cassandra 概略:外から見えるデータ構造。分散データ保持サーバの決定(コンシステント・ハッシング、パーティショナー、冗長化)  #infotalk

2012-03-18 13:53:51
Akira Nakazawa @kompeito

デシリアライズする分のオーバーヘッドがないってことなのかな。。 #infotalk

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

Cassandra のデータ構造(KVS) :KeySpace には KEY (名前空間を分ける)に対してカラム(NAME, VALUE) を持ち、カラムファミリー(Tableのようなもの)と呼ぶ。  #infotalk

2012-03-18 13:55:27
モリリン @Morlin1129

NoSQLってたぶんRDBとはそもそも全く違うものくらいのつもりで思ってたほうがいいんだろうにゃ、と初心者まるだしの発言をしてみる #infotalk

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

Super Colum を通常のカラム代わりに使用できる。さらにもう1つ NAME → VALUE とできる。 NAME → VAKUE 構想は実際にタイムスタンプが付与される。書込み競合した際は新しい方を採用するために使用される。 #infotalk

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

Column は name で sort されている。 → O (log N) で取れる。  #infotalk

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

分散データ保持サーバの決定: コンシステントハッシング 2^64-1 or 0 で計算している。 間違った方法: KEY の hash mod N を取り、KEY mod N 番目のサーバにデータを保持する・・・サーバ増減でデータの大移動が発生w  #infotalk

2012-03-18 13:59:13
hukki_bou1213 @hukki_bou1213

データ構造がAzureのアレに似てる気がした #infotalk

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

新しくノードが増えても、各ノードが担当するハッシュを参照するのでデータコピーする対象を認識できる。コンシステント・ハッシング。 // 分散が適切になるようにハッシュを参照して書き込むのか。  #infotalk

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

KEY に対するプリフィックスを見てから順序を決定するので、探索ではなく検索して空きノード(もしくは負荷状態)へデータコピーする // ように聴こえる。  #infotalk

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

データの冗長化と一貫性。データを保持するノードは1台だけとは限らない・・・冗長化できる。複数台は設定で選べる。  #infotalk

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

一貫性レベル:3台に書き込みたいが、最低2台書込みでいい場合は、残りは「そのうちw」に write される。レベル ZERO:保証しない、ANY:どこかにかかれたことを保証、ONE:1台書かれたことを保証。  #infotalk

2012-03-18 14:05:22
railute @railute

いま、ZEROは廃止されてるよー。 #infotalk

2012-03-18 14:05:41