Cassandraのinsertを計測する
データの大きさを変えるとinsertが遅くなってしまったので,もうちょっと細かく計測してみることにした.
計測方法
データの大きさを1バイトから10kバイトまで変えながらinsert.
それぞれ1000回繰り返した時の時間を計測.
require 'benchmark' require 'rubygems' require 'cassandra' client = Cassandra.new('MyKeyspace', 'server:9160') 0.step(10000, 100) do |data_size| puts Benchmark.measure { 1000.times { client.insert(:Scores, "Dan", {"cource" => {"math" => rand(10 ** data_size)}}) } } end
実行結果
0.470000 0.020000 0.490000 ( 0.728000) 0.500000 0.050000 0.550000 ( 0.712000) 0.550000 0.010000 0.560000 ( 0.736000) 0.580000 0.020000 0.600000 ( 0.768000) ... というのが延々と続く
これじゃ何だかさっぱりなので,グラフにする.
※縦軸は1回当たりの数値と見なすために1000で割っています.
user total realはほぼ一致していた.ただ,データサイズが大きくなるとその分遅くなる傾向になる.
ついでに,デフォルトだとConsistencyがONEなので,ZEROにした場合のデータも取ってみた.
ONEの時と全く変わらず...