14
東京工業大学 Tokyo Tech. 中村 俊介 Shunsuke Nakamura (@sunsuk7tp)

MyCassandraコトハジメ

Embed Size (px)

DESCRIPTION

10/11/01にNoSQL Afternoon@楽天タワーで飛び入りで発表させていただきました。今後ともよろしくお願いします。

Citation preview

Page 1: MyCassandraコトハジメ

東京工業大学 Tokyo Tech. 中村 俊介 Shunsuke Nakamura (@sunsuk7tp)

Page 2: MyCassandraコトハジメ

= Dynamo + Bigtable

Page 3: MyCassandraコトハジメ

 Better

Cassandra

MySQL

Page 4: MyCassandraコトハジメ

Cassandra

MySQL

 Better

Page 5: MyCassandraコトハジメ

ずばりストレージ部分でRead/Write性能が決まる!! (といっても過言ではないのでは….)

Hbase, Cassandra Sherpa, MySQL

Storage SSTable MySQL

Write Diff Sequential Write Keylookup Update

Read Diff Merge Read Sequential Read

性能 Writeが速い Readが速い

Page 6: MyCassandraコトハジメ

Cassandraのストレージ部分をSSTableを MySQLに差し替えてみました

イメージ ◦ MySQLのストレージエンジン

Page 7: MyCassandraコトハジメ

= Dynamo + Bigtable

Page 8: MyCassandraコトハジメ

= Dynamo + MySQL, etc.

東京工業大学 情報理工学研究科 数理・計算科学専攻 中村 俊介

Page 9: MyCassandraコトハジメ

  JDBC経由でMySQLにアクセスするだけ   Data ModelやWorkflowはCassandraのまま   JDBCサポートされてるものなら差し替え可能 ◦  cf. PostgreSQL, Redis, MongoDB, ….

JDBC

ColumnFamilyStore

SSTable

Request

(CommitLog) (Memtable)

MySQL Redis MongoDB

or

or or

Page 10: MyCassandraコトハジメ

0 1 2 3 4

Update(50:50)

Read(50:50)

Update(10:90)

Read(10:90)

Read(0:100)

MyCassandra(Redis)

MyCassandra(MySQL)

Cassandra

Read差:最大84.7%

Write差:最大76.0%

(ms)

WorkloadA

WorkloadB

WorkloadC

Page 11: MyCassandraコトハジメ

 今やっているところです!!(笑)  果たしてノード数 / クライアント数(負荷)に対してスケールするのか否か?!

  MySQLをK/Vとしてしか使っていないので、もっとスリムでindexingが充実したRDB/永続型KVSの利用 ◦  VoltDB ? Redis ? ◦  HandlerSocket? ◦  (教えてください!! )

Page 12: MyCassandraコトハジメ

  NoSQLは分散の仕掛け+ストレージに分離できる ◦  MySQL: レプリケーション、クエリパース部分+ストレージ部分   ストレージエンジンでTransactionや並行性制御はサポート ◦  MemCache: 分散の仕掛け(cf. Consistent Hashing)を

Client側で実装

  分離の利点 ◦  アプリ開発者の要望に柔軟に対応

  例) 非集中で参照クエリに適したNoSQLを使いたい 通常: 適切なデータストアを探す、もしくは自分で実装 =>1つの共通システム内で入れ替えが可能

Page 13: MyCassandraコトハジメ

  StorageType(SSTable,MySQL,..)ごとにレプリカを用意   リクエストのプライマリノードをStorageTypeで決める ◦ 更新系クエリはSSTableノードに ◦ 参照系クエリはMySQLノードに

 課題は一貫性の問題 & v.s. Network Proximity

Proxy Proxy

Read Write

MySQL MySQL SSTable SSTable

Redis Redis

Async Read

Sync Read

Async Write

Sync Write

Page 14: MyCassandraコトハジメ

ご清聴ありがとうございました!!