Ruby経由でCassandra 4回目
今度はinsert時に書き込むデータの大きさを変えてみる.
1バイトから10000バイトまでグルグル回す
やってる中身は前回と同じです.
require 'benchmark' require 'rubygems' require 'cassandra' client = Cassandra.new('MyKeyspace', 'server:9160') [1, 10, 100, 1000, 10000].each do |data_size| puts "-- #{data_size} --" Benchmark.bm(15) do |x| x.report('insert') { 10000.times { client.insert(:Scores, "Dan", {"cource" => {"math" => rand(10 ** data_size)}}) } } x.report('get') { 10000.times { client.get(:Scores, "Dan", "cource", "math") } } x.report('count_columns') { 10000.times { client.count_columns(:Scores, "Dan", "cource") } } end end
実行結果
結構時間掛かった.
-- 1 -- user system total real insert 8.300000 2.070000 10.370000 ( 14.536000) get 4.970000 4.850000 9.820000 ( 17.320000) count_columns 1.040000 5.810000 6.850000 ( 14.628000) -- 10 -- user system total real insert 8.470000 1.970000 10.440000 ( 14.516000) get 5.180000 4.660000 9.840000 ( 17.324000) count_columns 1.120000 5.570000 6.690000 ( 14.632000) -- 100 -- user system total real insert 8.610000 2.050000 10.660000 ( 14.676000) get 5.330000 4.450000 9.780000 ( 17.348000) count_columns 1.090000 5.520000 6.610000 ( 14.632000) -- 1000 -- user system total real insert 14.350000 2.580000 16.930000 ( 21.576000) get 5.400000 3.290000 8.690000 ( 18.312000) count_columns 1.080000 5.750000 6.830000 ( 14.628000) -- 10000 -- user system total real insert 601.300000 7.620000 608.920000 (618.624000) get 1.330000 8.170000 9.500000 ( 22.728000) count_columns 1.230000 3.040000 4.270000 ( 17.560000)
insertサイズが10000になると異様に遅くなる.何だこりゃ.