class Object
Constants
- MKROUTE_PATH
- MULTICAST_ADDR
- ROMAD_OPTIONS
- ROMAD_PATH
- ROMAD_WORK_DIR
- ROMA_LOAD_PATH
- RUBY_COMMAND_OPTIONS
- UDP_PORT
Public Instance Methods
check_count(rc, range, c)
click to toggle source
# File lib/roma/tools/consistency_test.rb 33 def check_count(rc, range, c) 34 range.each do |i| 35 ts = DateTime.now 36 res = rc.get("key_#{i}") 37 if res != c.to_s 38 puts "error k=key_#{i} #{res}" 39 end 40 t=(DateTime.now - ts).to_f * 86400.0 41 @tmax=t if t > @tmax 42 @tmin=t if t < @tmin 43 @cnt+=1 44 end 45 end
get_routing_data(nid)
click to toggle source
# File lib/roma/tools/chg_redundancy.rb 10 def get_routing_data(nid) 11 sender = Roma::Client::Sender.new 12 sender.send_routedump_command(nid) 13 end
get_sequence(ini_nodes, n)
click to toggle source
# File lib/roma/tools/simple_bench.rb 61 def get_sequence(ini_nodes, n) 62 puts __method__ 63 rc=Roma::Client::RomaClient.new(ini_nodes) 64 65 n.times do |i| 66 ts = DateTime.now 67 res=rc.get("key_#{i}") 68 puts "get #{i} #{res}" if res != "value_#{i}" 69 t=(DateTime.now - ts).to_f * 86400.0 70 @tmax=t if t > @tmax 71 @tmin=t if t < @tmin 72 @cnt+=1 73 end 74 end
random_request_sender(ini_nodes, n)
click to toggle source
# File lib/roma/tools/simple_bench.rb 21 def random_request_sender(ini_nodes, n) 22 puts __method__ 23 rc=Roma::Client::RomaClient.new(ini_nodes) 24 25 loop do 26 i=rand(n) 27 ts = DateTime.now 28 case rand(3) 29 when 0 30 res=rc.set(i.to_s,'hoge'+i.to_s) 31 puts "set k=#{i} #{res}" if res==nil || res.chomp != 'STORED' 32 when 1 33 res=rc.get(i.to_s) 34 puts "get k=#{i} #{res}" if res == :error 35 when 2 36 res=rc.delete(i.to_s) 37 puts "del k=#{i} #{res}" if res != 'DELETED' && res != 'NOT_FOUND' 38 end 39 t=(DateTime.now - ts).to_f * 86400.0 40 @tmax=t if t > @tmax 41 @tmin=t if t < @tmin 42 @cnt+=1 43 end 44 end
random_rquest_sender(ini_nodes, n)
click to toggle source
# File lib/roma/tools/safecopy_integration_test.rb 23 def random_rquest_sender(ini_nodes, n) 24 puts __method__ 25 rc=Roma::Client::RomaClient.new(ini_nodes) 26 27 loop do 28 i=rand(n) 29 ts = DateTime.now 30 case rand(3) 31 when 0 32 res=rc.set(i.to_s,'hoge'+i.to_s) 33 puts "set k=#{i} #{res}" if res==nil || res.chomp != 'STORED' 34 when 1 35 res=rc.get(i.to_s) 36 puts "get k=#{i} #{res}" if res == :error 37 when 2 38 res=rc.delete(i.to_s) 39 puts "del k=#{i} #{res}" if res != 'DELETED' && res != 'NOT_FOUND' 40 end 41 t=(DateTime.now - ts).to_f * 86400.0 42 @tmax=t if t > @tmax 43 @tmin=t if t < @tmin 44 @cnt+=1 45 end 46 end
randstr(n)
click to toggle source
# File lib/roma/tools/data_accumulation.rb 21 def randstr(n) 22 s = ("a".."z").to_a 23 n.times.map{ s.sample }.join 24 end
safecopy_stats(nid)
click to toggle source
# File lib/roma/tools/safecopy_integration_test.rb 127 def safecopy_stats(nid) 128 ret = stats(nid, 'storage.safecopy_stats') 129 return eval $1 if ret =~ /^.+\s(\[.+\])/ 130 nil 131 end
send_cmd(nid, cmd)
click to toggle source
# File lib/roma/tools/safecopy_integration_test.rb 98 def send_cmd(nid, cmd) 99 conn = Roma::Client::ConPool.instance.get_connection(nid) 100 conn.write "#{cmd}\r\n" 101 ret = conn.gets 102 Roma::Client::ConPool.instance.return_connection(nid, conn) 103 ret 104 rescue =>e 105 STDERR.puts "#{nid} #{cmd} #{e.inspect}" 106 nil 107 end
set_counts(rc, range, c)
click to toggle source
# File lib/roma/tools/consistency_test.rb 21 def set_counts(rc, range, c) 22 range.each do |i| 23 ts = DateTime.now 24 res=rc.set("key_#{i}","#{c}") 25 puts "set k=#{i} #{res}" if res==nil || res.chomp != 'STORED' 26 t=(DateTime.now - ts).to_f * 86400.0 27 @tmax=t if t > @tmax 28 @tmin=t if t < @tmin 29 @cnt+=1 30 end 31 end
set_sequence(ini_nodes, n, v_size)
click to toggle source
# File lib/roma/tools/data_accumulation.rb 26 def set_sequence(ini_nodes, n, v_size) 27 puts __method__ 28 rc=Roma::Client::RomaClient.new(ini_nodes) 29 30 n.times do |i| 31 ts = DateTime.now 32 res=rc.set("key_#{i}", randstr(v_size)) 33 puts "set k=#{i} #{res}" if res==nil || res.chomp != 'STORED' 34 t=(DateTime.now - ts).to_f * 86400.0 35 @tmax=t if t > @tmax 36 @tmin=t if t < @tmin 37 @cnt+=1 38 39 puts"=====#{(i*100)/n}%(#{i}keys) has finished.=====" if i%100000 == 0 40 end 41 end
set_storage_status(nid, fno, stat)
click to toggle source
# File lib/roma/tools/safecopy_integration_test.rb 133 def set_storage_status(nid, fno, stat) 134 cnt = 0 135 begin 136 res = send_cmd(ARGV[0], "set_storage_status #{fno} #{stat}") 137 res.chomp! if res 138 puts res if cnt > 0 139 sleep 0.5 140 cnt += 1 141 end while res != 'PUSHED' 142 res 143 end
stats(nid, regexp=nil)
click to toggle source
# File lib/roma/tools/safecopy_integration_test.rb 109 def stats(nid, regexp=nil) 110 conn = Roma::Client::ConPool.instance.get_connection(nid) 111 if regexp 112 conn.write "stats #{regexp}\r\n" 113 else 114 conn.write "stats\r\n" 115 end 116 ret = "" 117 while(conn.gets != "END\r\n") 118 ret << $_ 119 end 120 Roma::Client::ConPool.instance.return_connection(nid, conn) 121 ret 122 rescue =>e 123 STDERR.puts "#{nid} #{e.inspect}" 124 nil 125 end
test_change_status()
click to toggle source
# File lib/roma/tools/safecopy_integration_test.rb 152 def test_change_status 153 154 puts "write (0...10000) = 0" 155 set_counts(ARGV, 0...10000, "default_key",0) 156 Thread.new { random_rquest_sender(ARGV, 10000) } 157 158 set_counts(ARGV, 0...1000, "flushing_key", 0) 159 set_counts(ARGV, 0...1000, "caching_key", 0) 160 161 nid = ARGV[0] 162 163 sleep(5) 164 165 10.times do |n| 166 puts "\n#{n+1}th loop(#{n}.tc) " + "*" * 70 167 168 #======================================================================================== 169 #flushing(normal => safecopy_flushed) 170 flush_loop_count = 0 171 @range_cnt = 0 172 @flag = false 173 174 t = Thread.new { 175 loop{ 176 flush_loop_count += 1 177 set_counts(ARGV, 0...1000, "flushing_key", flush_loop_count) 178 @flag = true 179 } 180 } 181 puts "\s\s[debug]sleep flushing start" 182 sleep(1) while !@flag 183 puts "\s\s[debug]sleep flushing end" 184 puts "\s\s#{set_storage_status(nid, n, 'safecopy')}" 185 puts "#{wait_status(nid, n, :safecopy_flushed)}" 186 187 #sleep(5) 188 t.kill 189 190 flushing_range_cnt = @range_cnt 191 puts "flushing_range_cnt = #{@range_cnt}" 192 puts "\s\s#{safecopy_stats(nid)}\n\n" 193 194 #======================================================================================== 195 #Caching(safecopy_flushed => normal) 196 #sleep(30) 197 cache_loop_count = 0 198 @range_cnt = 0 199 @flag = false 200 t = Thread.new { 201 loop{ 202 cache_loop_count += 1 203 set_counts(ARGV, 0...1000, "caching_key", cache_loop_count) 204 @flag = true 205 } 206 } 207 puts "\s\s[debug]sleep caching start" 208 sleep(1) while !@flag 209 puts "\s\s[debug]sleep caching end" 210 211 puts "\s\s#{set_storage_status(nid, n, 'normal')}" 212 puts "#{wait_status(nid, n, :normal)}" 213 214 #sleep(5) 215 t.kill 216 217 caching_range_cnt = @range_cnt 218 puts "caching_range_cnt = #{@range_cnt}" 219 puts "\s\s#{safecopy_stats(nid)}" 220 221 #======================================================================================== 222 #check 223 puts "\n[Check]" 224 puts "\s\sflushing key" 225 check_count(ARGV, 0..flushing_range_cnt, "flushing_key", flush_loop_count) 226 check_count(ARGV, flushing_range_cnt+1...1000, "flushing_key", flush_loop_count-1) 227 228 puts "\n\s\scaching key" 229 check_count(ARGV, 0..caching_range_cnt, "caching_key", cache_loop_count) 230 check_count(ARGV, caching_range_cnt+1...1000, "caching_key", cache_loop_count-1) if cache_loop_count != 1 231 end 232 end
test_round()
click to toggle source
# File lib/roma/tools/consistency_test.rb 47 def test_round 48 rc=Roma::Client::RomaClient.new(ARGV) 49 n = 0 50 loop{ 51 n += 1 52 set_counts(rc, 0...10000, n) 53 check_count(rc, 0...10000, n) 54 if (n%100 == 0) 55 puts "#{n} loop has finished." 56 end 57 } 58 end
usage()
click to toggle source
# File lib/roma/tools/roma_watcher.rb 140 def usage 141 puts File.basename(__FILE__) + " config.yml" 142 end
wait_status(nid, fno, stat)
click to toggle source
# File lib/roma/tools/safecopy_integration_test.rb 145 def wait_status(nid, fno, stat) 146 while safecopy_stats(nid)[fno] != stat 147 sleep 5 148 end 149 stat 150 end