2010-06-01から1ヶ月間の記事一覧

MyCassandraにRedisを追加

MyCassandraでRedisを使えるようにしました。前述の通りJDBCを使うJDBC-Redisは実装がいまいちでしたので、独自api実装のJRedisを利用するようにしました。これでMyCassadraは物理ストレージとしてSSTable,MySQL,Redisを使うことが出来ます。(Dynamo的な部分…

MySQLのバルク処理は書かなきゃ駄目。

db

前回のYCSBのload phaseがMyCassandra(Cassandra+MySQL)ではめちゃくちゃ遅いという件でしたが、タイトル通りです。さて大量のインサートをするときに、以下の3つの手法によってどれくらい差が出るのだろうか? singleインサートを何度もやる マルチプルイ…

遅いのはSQLパーサー?

db

前述したYCSBを使ってCassandraとMyCassandraのベンチマークを取っているところ。まだ途中なのでちゃんとした結果は公表出来ないのですが、とりあえず1ノードで1KBのレコードを100万件ロードして、ベンチをとったところ、基本的に予想通りな結果になってます…

JDBC-Redisは使えない

db

MyCassandraとは別にCassandraのMemTable,SSTableを別のデータベースに差し替えてみようと考え、試しにKVSのRedisに注目した。Redisは簡単に言うと永続化可能なmemcachedであり、 通常はオンメモリなKVSと動作し、インターバルごと、書き込みの頻度、もしく…

YCSBパラメータ

db

実行パラメータ load: loading phaseを実行 t: transaction phaseを実行 db: 使用するdbインタフェース層 P: workload用のファイル hosts: サーバーホスト(コンマで区切って複数指定可能) recordcount: ロードするレコード数(デフォルトは1,000) threads: YC…

YCSB導入

db

実装したMyCassandraをフォーマルなクラウドベンチマークで測定する為にgithubのWikiを参考にYCSBを導入した。http://wiki.github.com/brianfrankcooper/YCSB/getting-startedまずはCassandraについて動かせるようにしたのでメモしておく。 Cassandraのバー…

No More KVS

db

Cassandraよりも早いオンメモリRDBとされるVoltDBについて調べてて思ったのだが、一般的なRDBは例えオンメモリでもKVSには遠く及ばないわけだけど、 そこで原因になってるSQLレイヤーを介さずにC++によるUDF使って直接RDBのストレージにアクセスする手法はど…

MyCassandra測定

Yahoo PNUTSの論文を読んでみて、 別にNoSQL使わなくてもMySQLでも性能は出るんじゃないかと思い、 CassandraのSSTableをMySQLに入れ替えたMyCassandraを実装しました。シーケンシャルな書き込みを重視するCassandraですが、MyCassandraではMySQL同様に書き…

Cassandraのロック機能

ReentrantReadWriteLockクラスを使ったロック 読み込みロックは複数のスレッドが取得できる 書き込みロックは1つのスレッドのみが取得できる 読み込みロックの取得中は、他のスレッドは書き込みロックを取得できない 書き込みロックの取得中は、他のスレッド…