roma 0.8.14 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
1
 
2
2
  module Roma
3
- VERSION = "0.8.14"
3
+ VERSION = "1.0.0"
4
4
  end
@@ -11,7 +11,7 @@ class ProtocolTest < Test::Unit::TestCase
11
11
  end
12
12
 
13
13
  def teardown
14
- @sock.close
14
+ @sock.close if @sock
15
15
  stop_roma
16
16
  rescue => e
17
17
  puts "#{e} #{$@}"
@@ -444,7 +444,7 @@ class TCStorageTest < Test::Unit::TestCase
444
444
  @st.delete(0, "key#{i}", 0)
445
445
  }
446
446
  count = 0
447
- @st.each_vn_dump(0){|data|
447
+ res = @st.each_vn_dump(0){|data|
448
448
  vn, last, clk, expt, klen = data.slice!(0..19).unpack('NNNNN')
449
449
  k = data.slice!(0..(klen-1))
450
450
  vlen, = data.slice!(0..3).unpack('N')
@@ -457,6 +457,7 @@ class TCStorageTest < Test::Unit::TestCase
457
457
  assert_nil( @st.load_stream_dump(vn, last, clk, expt, k, v) )
458
458
  @st.load_stream_dump(2, last, clk, expt, k, v)
459
459
  }
460
+ assert(res)
460
461
  assert_equal(100,count)
461
462
 
462
463
  count = 0
@@ -493,34 +494,40 @@ class TCStorageTest < Test::Unit::TestCase
493
494
  }
494
495
 
495
496
  count = 0
496
- @st.each_vn_dump(0){|data|
497
+ res = @st.each_vn_dump(0){|data|
497
498
  vn, last, clk, expt, klen = data.slice!(0..19).unpack('NNNNN')
498
499
  k = data.slice!(0..(klen-1))
499
500
  vlen, = data.slice!(0..3).unpack('N')
500
501
  v = data
501
502
  count += 1
502
503
  # puts "#{vn} #{last} #{clk} #{expt} #{klen} #{k} #{vlen} #{v}"
503
- assert_match(/key\d/, k)
504
- if k[3..-1].to_i < 80
505
- assert_match("val#{k[3..-1]}", v)
506
- elsif k[3..-1].to_i < 90
507
- assert_match("val#{k[3..-1].to_i + 1}", v)
508
- else
509
- assert(vlen == 0)
510
- end
511
-
512
- assert_nil( @st.load_stream_dump(vn, last, clk, expt, k, v) )
513
- @st.load_stream_dump(2, last, clk, expt, k, v)
514
504
  }
515
- assert_equal(100,count)
516
-
517
- count = 0
518
- @st.each_vn_dump(1){|data| count += 1 }
519
- assert_equal(0,count )
505
+ assert_equal(false, res)
506
+ assert_equal(0, count)
507
+ end
520
508
 
521
- count = 0
522
- @st.each_vn_dump(2){|data| count += 1 }
523
- assert_equal(100,count )
509
+ def test_db_stat_with_each_vn_dump
510
+ n = 100 # number of data
511
+ m = 10 # number of vnode
512
+ # set data
513
+ n.times do |i|
514
+ m.times do|vn|
515
+ @st.set(vn,"key#{vn}_#{i}",0,0x7fffffff,"val#{i}")
516
+ end
517
+ end
518
+
519
+ m.times do |vn|
520
+ dn = @st.instance_eval{ @hdiv[vn] }
521
+ count = 0
522
+ res = @st.each_vn_dump(vn) do
523
+ assert_equal(false, @st.each_vn_dump(vn){})
524
+ assert_equal(:normal, @st.dbs[dn])
525
+ assert_equal(false, @st.set_db_stat(dn, :safecopy_flushing))
526
+ count += 1
527
+ end
528
+ assert_equal(n, count)
529
+ assert(res)
530
+ end
524
531
  end
525
532
 
526
533
  def test_db_stat
@@ -235,12 +235,33 @@ class WriteBehindTest < FileWriterTest
235
235
  wb0 = read_wb("#{wb_path}/0.wb")
236
236
  assert_equal(1, wb0.length)
237
237
  wb0.each do |last, cmd, key, val|
238
+ puts "#{cmd} #{key} #{val.inspect}"
238
239
  assert_equal(1, cmd)
239
240
  assert_equal("abc", key)
240
241
  assert_equal("value abc", val)
241
242
  end
242
243
  end
243
244
 
245
+ def test_wb2_set2
246
+ send_cmd("localhost_11211", "wb_command_map {:set=>1, :set__prev=>2}")
247
+ assert_equal("STORED", @rc.set("abc","val1",0,true))
248
+ assert_equal("STORED", @rc.set("abc","val2",0,true))
249
+ send_cmd("localhost_11211", "writebehind_rotate roma")
250
+
251
+ res = [[1,"abc","val1"], [2,"abc","val1"], [1,"abc","val2"]]
252
+ wb0 = read_wb("#{wb_path}/0.wb")
253
+ assert_equal(3, wb0.length)
254
+ i = 0
255
+ wb0.each do |last, cmd, key, val|
256
+ # puts "#{cmd} #{key} #{val.inspect} #{i}"
257
+ assert_equal(res[i][0], cmd)
258
+ assert_equal(res[i][1], key)
259
+ assert_equal(res[i][2], val)
260
+ i+=1
261
+ end
262
+ end
263
+
264
+
244
265
  def test_wb2_storage_commands
245
266
  h = {:set=>1,:delete=>2,:add=>3,:replace=>4,:append=>5,:prepend=>6,:cas=>7,:incr=>8,:decr=>9,:set_expt=>10}
246
267
  send_cmd("localhost_11211", "wb_command_map #{h}")
@@ -256,16 +277,73 @@ class WriteBehindTest < FileWriterTest
256
277
  assert_equal("STORED", res)
257
278
  assert_equal(129, @rc.incr("abc"))
258
279
  assert_equal(128, @rc.decr("abc"))
259
- ## test for set_expt TODO
280
+ res = send_cmd("localhost_11211", "set_expt abc 100")
281
+ assert_equal("STORED", res.chomp)
260
282
  send_cmd("localhost_11211", "writebehind_rotate roma")
261
283
 
262
284
 
263
- res = {1=>'1',2=>'1',3=>'1',4=>'2',5=>'23',6=>'123',7=>'128',8=>'129',9=>'128'}
285
+ res = {1=>'1',2=>'1',3=>'1',4=>'2',5=>'23',6=>'123',7=>'128',8=>'129',9=>'128', 10=>nil}
264
286
  wb0 = read_wb("#{wb_path}/0.wb")
265
- assert_equal(9, wb0.length)
287
+ assert_equal(10, wb0.length)
266
288
  wb0.each do |last, cmd, key, val|
267
289
  # puts "#{cmd} #{key} #{val.inspect}"
268
- assert_equal(res[cmd], val)
290
+ assert_equal(res[cmd], val) if res[cmd]
291
+ end
292
+ end
293
+
294
+ def test_wb2_storage_commands2
295
+ h = {
296
+ :set=>1, :set__prev=>11,
297
+ :delete=>2, :delete__prev=>12,
298
+ :add=>3, :add__prev=>13,
299
+ :replace=>4, :replace__prev=>14,
300
+ :append=>5,:append__prev=>15,
301
+ :prepend=>6,:prepend__prev=>16,
302
+ :cas=>7,:cas__prev=>17,
303
+ :incr=>8,:incr__prev=>18,
304
+ :decr=>9,:decr__prev=>19,
305
+ :set_expt=>10,:set_expt__prev=>20
306
+ }
307
+ send_cmd("localhost_11211", "wb_command_map #{h}")
308
+ assert_equal("STORED", @rc.set("abc","1",0,true))
309
+ assert_equal("DELETED", @rc.delete("abc"))
310
+ assert_equal("STORED", @rc.add("abc","1",0,true))
311
+ assert_equal("STORED", @rc.replace("abc","2",0,true))
312
+ assert_equal("STORED", @rc.append("abc","3"))
313
+ assert_equal("STORED", @rc.prepend("abc","1"))
314
+ res = @rc.cas("abc", 0, true) do |v|
315
+ v = "128"
316
+ end
317
+ assert_equal("STORED", res)
318
+ assert_equal(129, @rc.incr("abc"))
319
+ assert_equal(128, @rc.decr("abc"))
320
+ res = send_cmd("localhost_11211", "set_expt abc 100")
321
+ assert_equal("STORED", res.chomp)
322
+
323
+ send_cmd("localhost_11211", "writebehind_rotate roma")
324
+
325
+ res = [
326
+ [1, "abc", "1"], [12, "abc", "1"],
327
+ [2, "abc", "1"],
328
+ [3, "abc", "1"], [14, "abc", "1"],
329
+ [4, "abc", "2"], [15, "abc", "2"],
330
+ [5, "abc", "23"],[16, "abc", "23"],
331
+ [6, "abc", "123"], [17, "abc", "123"],
332
+ [7, "abc", "128"], [18, "abc", "128"],
333
+ [8, "abc", "129"], [19, "abc", "129"],
334
+ [9, "abc", "128"],
335
+ [20, "abc"], [10, "abc"]
336
+ ]
337
+
338
+ wb0 = read_wb("#{wb_path}/0.wb")
339
+ assert_equal(18, wb0.length)
340
+ i = 0
341
+ wb0.each do |last, cmd, key, val|
342
+ # puts "#{cmd} #{key} #{val.inspect}"
343
+ assert_equal(res[i][0], cmd)
344
+ assert_equal(res[i][1], key)
345
+ assert_equal(res[i][2], val) if res.length < 3
346
+ i += 1
269
347
  end
270
348
  end
271
349
 
@@ -336,7 +414,7 @@ class WriteBehindTest < FileWriterTest
336
414
  assert_equal('CLEARED', @rc.map_clear("abc"))
337
415
  send_cmd("localhost_11211", "writebehind_rotate roma")
338
416
 
339
- res = {1=>'value1',2=>{},3=>{}}
417
+ res = {1=>{"mapkey1"=>"value1"},2=>{},3=>{}}
340
418
  wb0 = read_wb("#{wb_path}/0.wb")
341
419
  assert_equal(4, wb0.length)
342
420
  wb0.each do |last, cmd, key, val|
@@ -349,6 +427,43 @@ class WriteBehindTest < FileWriterTest
349
427
  end
350
428
  end
351
429
 
430
+ def test_wb2_map_commands2
431
+ h = {
432
+ :map_set=>1, :map_set__prev=>11,
433
+ :map_delete=>2, :map_delete__prev=>12,
434
+ :map_clear=>3, :map_clear__prev=>13
435
+ }
436
+ send_cmd("localhost_11211", "wb_command_map #{h}")
437
+ assert_equal('STORED', @rc.map_set('abc','mapkey1','value1'))
438
+ assert_equal('STORED', @rc.map_set('abc','mapkey2','value2'))
439
+ assert_equal('DELETED', @rc.map_delete('abc', 'mapkey1'))
440
+ assert_equal('STORED', @rc.map_set('abc','mapkey1','value1'))
441
+ assert_equal('CLEARED', @rc.map_clear("abc"))
442
+ send_cmd("localhost_11211", "writebehind_rotate roma")
443
+
444
+ res = [
445
+ [1, {"mapkey1"=>"value1"}],
446
+ [11, {"mapkey1"=>"value1"}], [1, {"mapkey1"=>"value1", "mapkey2"=>"value2"}],
447
+ [12, {"mapkey1"=>"value1", "mapkey2"=>"value2"}], [2, {"mapkey2"=>"value2"}],
448
+ [11, {"mapkey2"=>"value2"}], [1, {"mapkey2"=>"value2", "mapkey1"=>"value1"}],
449
+ [13, {"mapkey2"=>"value2", "mapkey1"=>"value1"}], [3, {}]
450
+
451
+ ]
452
+ wb0 = read_wb("#{wb_path}/0.wb")
453
+ assert_equal(res.length, wb0.length)
454
+ cnt = 0
455
+ wb0.each do |last, cmd, key, val|
456
+ begin
457
+ val = Marshal.load(val)
458
+ rescue
459
+ end
460
+ #puts "#{cmd} #{key} #{val.inspect}"
461
+ assert_equal(res[cnt][0], cmd)
462
+ assert_equal(res[cnt][1], val)
463
+ cnt += 1
464
+ end
465
+ end
466
+
352
467
  def send_cmd(host, cmd)
353
468
  con = Roma::Messaging::ConPool.instance.get_connection(host)
354
469
  con.write("#{cmd}\r\n")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roma
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.14
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Junji Torii
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: ruby/server/bin
11
11
  cert_chain: []
12
- date: 2014-03-28 00:00:00.000000000 Z
12
+ date: 2014-09-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: eventmachine
@@ -29,27 +29,27 @@ description: |2
29
29
  ROMA server
30
30
  email:
31
31
  executables:
32
- - recoverlost
33
- - chg_redundancy
34
- - mkroute
35
- - simple_bench
36
- - romad
37
- - recoverlost_alist
32
+ - tribunus
33
+ - cpdb
34
+ - recoverlost_alist_all
35
+ - log_merger
38
36
  - ssroute
37
+ - safecopy_test
39
38
  - mkconfig
40
- - roma_watcher
39
+ - safecopy_integration_test
40
+ - simple_bench
41
41
  - mkrecent
42
- - log_merger
43
- - tribunus
44
- - key_list
45
- - safecopy_test
46
- - test-scenario
47
- - recoverlost_alist_keys
42
+ - recoverlost
43
+ - mkroute
44
+ - recoverlost_alist
48
45
  - key_access
49
- - safecopy_integration_test
50
- - cpdb
46
+ - key_list
51
47
  - multi_commander
52
- - recoverlost_alist_all
48
+ - roma_watcher
49
+ - recoverlost_alist_keys
50
+ - chg_redundancy
51
+ - test-scenario
52
+ - romad
53
53
  extensions: []
54
54
  extra_rdoc_files:
55
55
  - README
@@ -103,6 +103,7 @@ files:
103
103
  - ruby/server/lib/roma/plugin/plugin_alist.rb
104
104
  - ruby/server/lib/roma/plugin/plugin_cmd_aliases.rb
105
105
  - ruby/server/lib/roma/plugin/plugin_debug.rb
106
+ - ruby/server/lib/roma/plugin/plugin_gui.rb
106
107
  - ruby/server/lib/roma/plugin/plugin_map.rb
107
108
  - ruby/server/lib/roma/plugin/plugin_mapcount.rb
108
109
  - ruby/server/lib/roma/plugin/plugin_storage.rb