higgs 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. data/ChangeLog +67 -0
  2. data/bin/higgs_apply_jlog +1 -1
  3. data/bin/higgs_backup +1 -1
  4. data/bin/higgs_dump_index +1 -1
  5. data/bin/higgs_dump_jlog +1 -1
  6. data/bin/higgs_ping +1 -1
  7. data/bin/higgs_verify +1 -1
  8. data/lib/cgi/session/higgs.rb +3 -3
  9. data/lib/higgs/block.rb +3 -3
  10. data/lib/higgs/cache.rb +17 -13
  11. data/lib/higgs/dbm.rb +3 -3
  12. data/lib/higgs/exceptions.rb +3 -3
  13. data/lib/higgs/flock.rb +3 -3
  14. data/lib/higgs/index.rb +35 -17
  15. data/lib/higgs/jlog.rb +3 -3
  16. data/lib/higgs/lock.rb +5 -5
  17. data/lib/higgs/services.rb +3 -3
  18. data/lib/higgs/sman.rb +7 -3
  19. data/lib/higgs/storage.rb +14 -3
  20. data/lib/higgs/store.rb +3 -3
  21. data/lib/higgs/tar.rb +3 -3
  22. data/lib/higgs/thread.rb +130 -8
  23. data/lib/higgs/tman.rb +15 -13
  24. data/lib/higgs/utils/bman.rb +3 -3
  25. data/lib/higgs/utils.rb +3 -3
  26. data/lib/higgs/version.rb +4 -4
  27. data/lib/higgs.rb +2 -2
  28. data/misc/cache_bench/cache_bench.rb +2 -2
  29. data/misc/dbm_bench/.strc +1 -1
  30. data/misc/dbm_bench/Rakefile +1 -1
  31. data/misc/dbm_bench/dbm_multi_thread.rb +2 -2
  32. data/misc/dbm_bench/dbm_rnd_delete.rb +2 -2
  33. data/misc/dbm_bench/dbm_rnd_read.rb +2 -2
  34. data/misc/dbm_bench/dbm_rnd_update.rb +2 -2
  35. data/misc/dbm_bench/dbm_seq_read.rb +2 -2
  36. data/misc/dbm_bench/dbm_seq_write.rb +2 -2
  37. data/misc/dbm_bench/run.rb +52 -0
  38. data/misc/dbm_bench/st_verify.rb +2 -2
  39. data/misc/io_bench/cksum_bench.rb +1 -1
  40. data/misc/io_bench/jlog_bench.rb +2 -2
  41. data/misc/io_bench/write_bench.rb +1 -1
  42. data/misc/thread_bench/lock_bench.rb +2 -2
  43. data/test/Rakefile +1 -1
  44. data/test/run.rb +3 -3
  45. data/test/test_block.rb +1 -1
  46. data/test/test_cache.rb +9 -9
  47. data/test/test_cache_mvcc.rb +403 -168
  48. data/test/test_cgi_session.rb +3 -3
  49. data/test/test_dbm.rb +14 -5
  50. data/test/test_flock.rb +1 -1
  51. data/test/test_index.rb +5 -7
  52. data/test/test_jlog.rb +1 -1
  53. data/test/test_lock.rb +21 -21
  54. data/test/test_online_backup.rb +1 -1
  55. data/test/test_services.rb +1 -1
  56. data/test/test_storage.rb +4 -4
  57. data/test/test_storage_conf.rb +1 -1
  58. data/test/test_storage_init_opts.rb +1 -1
  59. data/test/test_store.rb +2 -2
  60. data/test/test_tar.rb +19 -19
  61. data/test/test_thread.rb +46 -46
  62. data/test/test_tman.rb +2 -2
  63. data/test/test_tman_init_opts.rb +1 -1
  64. data/test/test_tman_mvcc.rb +11 -11
  65. data/test/test_utils_bman.rb +4 -2
  66. metadata +10 -18
  67. data/Rakefile +0 -81
  68. data/mkrdoc.rb +0 -11
  69. data/rdoc.yml +0 -13
data/lib/higgs/store.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # = storage like pstore
2
2
  #
3
3
  # Author:: $Author: toki $
4
- # Date:: $Date: 2007-10-24 00:46:00 +0900 (Wed, 24 Oct 2007) $
5
- # Revision:: $Revision: 653 $
4
+ # Date:: $Date: 2008-07-29 00:13:27 +0900 (Tue, 29 Jul 2008) $
5
+ # Revision:: $Revision: 781 $
6
6
  #
7
7
  # == license
8
8
  # :include:LICENSE
@@ -218,7 +218,7 @@ module Higgs
218
218
  #
219
219
  class Store < StorageManager
220
220
  # for ident(1)
221
- CVS_ID = '$Id: store.rb 653 2007-10-23 15:46:00Z toki $'
221
+ CVS_ID = '$Id: store.rb 781 2008-07-28 15:13:27Z toki $'
222
222
 
223
223
  DECODE = proc{|r| Marshal.load(r) }
224
224
  ENCODE = proc{|w| Marshal.dump(w) }
data/lib/higgs/tar.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # = unix TAR utilities
2
2
  #
3
3
  # Author:: $Author: toki $
4
- # Date:: $Date: 2007-09-26 00:20:20 +0900 (Wed, 26 Sep 2007) $
5
- # Revision:: $Revision: 559 $
4
+ # Date:: $Date: 2008-07-29 00:13:27 +0900 (Tue, 29 Jul 2008) $
5
+ # Revision:: $Revision: 781 $
6
6
  #
7
7
  # == license
8
8
  # :include:LICENSE
@@ -14,7 +14,7 @@ require 'higgs/exceptions'
14
14
  module Higgs
15
15
  module Tar
16
16
  # for ident(1)
17
- CVS_ID = '$Id: tar.rb 559 2007-09-25 15:20:20Z toki $'
17
+ CVS_ID = '$Id: tar.rb 781 2008-07-28 15:13:27Z toki $'
18
18
 
19
19
  include Exceptions
20
20
 
data/lib/higgs/thread.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # = multi-thread utilities
2
2
  #
3
3
  # Author:: $Author: toki $
4
- # Date:: $Date: 2008-01-14 00:55:53 +0900 (Mon, 14 Jan 2008) $
5
- # Revision:: $Revision: 742 $
4
+ # Date:: $Date: 2008-07-29 00:13:27 +0900 (Tue, 29 Jul 2008) $
5
+ # Revision:: $Revision: 781 $
6
6
  #
7
7
  # == license
8
8
  # :include:LICENSE
@@ -12,10 +12,132 @@ require 'forwardable'
12
12
  require 'higgs/exceptions'
13
13
  require 'thread'
14
14
 
15
+ class Module
16
+ # alias for Higgs::Synchronized
17
+ alias __higgs_ruby_native_attr__ attr
18
+
19
+ # alias for Higgs::Synchronized
20
+ alias __higgs_ruby_native_attr_accessor__ attr_accessor
21
+
22
+ # alias for Higgs::Synchronized
23
+ alias __higgs_ruby_native_attr_reader__ attr_reader
24
+
25
+ # alias for Higgs::Synchronized
26
+ alias __higgs_ruby_native_attr_writer__ attr_writer
27
+
28
+ # re-define for Higgs::Synchronized
29
+ def attr(name, assignable=false)
30
+ __higgs_ruby_native_attr__(name, assignable)
31
+ if (assignable) then
32
+ [ name, "#{name}=" ]
33
+ else
34
+ name
35
+ end
36
+ end
37
+
38
+ # re-define for Higgs::Synchronized
39
+ def attr_accessor(name, *optional_names)
40
+ names = [ name ] + optional_names
41
+ __higgs_ruby_native_attr_accessor__(*names)
42
+ return *names.map{|n| [ n, "#{n}=" ] }.flatten
43
+ end
44
+
45
+ # re-define for Higgs::Synchronized
46
+ def attr_reader(name, *optional_names)
47
+ names = [ name ] + optional_names
48
+ __higgs_ruby_native_attr_reader__(*names)
49
+ return *names
50
+ end
51
+
52
+ # re-define for Higgs::Synchronized
53
+ def attr_writer(name, *optional_names)
54
+ names = [ name ] + optional_names
55
+ __higgs_ruby_native_attr_writer__(*names)
56
+ return *names.map{|n| "#{n}=" }
57
+ end
58
+ end
59
+
60
+ module Forwardable
61
+ # alias for Higgs::Synchronized
62
+ alias __higgs_ruby_native_def_instance_delegators__ def_instance_delegators
63
+
64
+ # alias for Higgs::Synchronized
65
+ alias __higgs_ruby_native_def_instance_delegator__ def_instance_delegator
66
+
67
+ # re-define for Higgs::Synchronized
68
+ def def_instance_delegators(accessor, *methods)
69
+ __higgs_ruby_native_def_instance_delegators__(accessor, *methods)
70
+ return *methods
71
+ end
72
+
73
+ # re-define for Higgs::Synchronized
74
+ def def_instance_delegator(accessor, method, ali = method)
75
+ __higgs_ruby_native_def_instance_delegator__(accessor, method, ali)
76
+ ali
77
+ end
78
+
79
+ # re-define for Higgs::Synchronized
80
+ alias def_delegators def_instance_delegators
81
+
82
+ # re-define for Higgs::Synchronized
83
+ alias def_delegator def_instance_delegator
84
+ end
85
+
15
86
  module Higgs
87
+ module Synchronized
88
+ def self.included(mod)
89
+ r = super
90
+ mod.extend(SynchronizedSyntax)
91
+ r
92
+ end
93
+
94
+ attr_accessor :__lock__
95
+ end
96
+
97
+ module SynchronizedSyntax
98
+ def synchronized(name_or_names, *optional_names)
99
+ case (name_or_names)
100
+ when Array
101
+ names = name_or_names
102
+ else
103
+ names = [ name_or_names ]
104
+ end
105
+ names += optional_names
106
+
107
+ for name in names
108
+ name = name.to_sym
109
+ thread_unsafe_name = "thread_unsafe_#{name}".to_sym
110
+
111
+ if (public_instance_methods(true).any?{|n| n.to_sym == name }) then
112
+ visibility = 'public'
113
+ elsif (private_instance_methods(true).any?{|n| n.to_sym == name }) then
114
+ visibility = 'private'
115
+ elsif (protected_instance_methods(true).any?{|n| n.to_sym == name }) then
116
+ visibility = 'protected'
117
+ else
118
+ raise NoMethodError, "undefined method `#{name}' for #{self}"
119
+ end
120
+
121
+ class_eval(<<-EOF, "synchronized(#{name}) => #{__FILE__}", __LINE__ + 1)
122
+ alias_method #{thread_unsafe_name.inspect}, #{name.inspect}
123
+ private #{thread_unsafe_name.inspect}
124
+
125
+ def #{name}(*args, &block)
126
+ @__lock__.synchronize{
127
+ __send__(#{thread_unsafe_name.inspect}, *args, &block)
128
+ }
129
+ end
130
+ #{visibility} #{name.inspect}
131
+ EOF
132
+ end
133
+
134
+ name_or_names
135
+ end
136
+ end
137
+
16
138
  class Latch
17
139
  # for ident(1)
18
- CVS_ID = '$Id: thread.rb 742 2008-01-13 15:55:53Z toki $'
140
+ CVS_ID = '$Id: thread.rb 781 2008-07-28 15:13:27Z toki $'
19
141
 
20
142
  def initialize
21
143
  @lock = Mutex.new
@@ -43,7 +165,7 @@ module Higgs
43
165
 
44
166
  class CountDownLatch
45
167
  # for ident(1)
46
- CVS_ID = '$Id: thread.rb 742 2008-01-13 15:55:53Z toki $'
168
+ CVS_ID = '$Id: thread.rb 781 2008-07-28 15:13:27Z toki $'
47
169
 
48
170
  def initialize(count)
49
171
  @count = count
@@ -73,7 +195,7 @@ module Higgs
73
195
 
74
196
  class Barrier
75
197
  # for ident(1)
76
- CVS_ID = '$Id: thread.rb 742 2008-01-13 15:55:53Z toki $'
198
+ CVS_ID = '$Id: thread.rb 781 2008-07-28 15:13:27Z toki $'
77
199
 
78
200
  def initialize(count)
79
201
  @count = count
@@ -102,7 +224,7 @@ module Higgs
102
224
 
103
225
  class SharedWork
104
226
  # for ident(1)
105
- CVS_ID = '$Id: thread.rb 742 2008-01-13 15:55:53Z toki $'
227
+ CVS_ID = '$Id: thread.rb 781 2008-07-28 15:13:27Z toki $'
106
228
 
107
229
  def initialize(&work)
108
230
  unless (work) then
@@ -191,7 +313,7 @@ module Higgs
191
313
 
192
314
  class ReadWriteLock
193
315
  # for ident(1)
194
- CVS_ID = '$Id: thread.rb 742 2008-01-13 15:55:53Z toki $'
316
+ CVS_ID = '$Id: thread.rb 781 2008-07-28 15:13:27Z toki $'
195
317
 
196
318
  def initialize
197
319
  @lock = Mutex.new
@@ -325,7 +447,7 @@ module Higgs
325
447
 
326
448
  class Pool
327
449
  # for ident(1)
328
- CVS_ID = '$Id: thread.rb 742 2008-01-13 15:55:53Z toki $'
450
+ CVS_ID = '$Id: thread.rb 781 2008-07-28 15:13:27Z toki $'
329
451
 
330
452
  class ShutdownException < Exceptions::ShutdownException
331
453
  end
data/lib/higgs/tman.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # = transaction manager
2
2
  #
3
3
  # Author:: $Author: toki $
4
- # Date:: $Date: 2008-01-20 22:28:02 +0900 (Sun, 20 Jan 2008) $
5
- # Revision:: $Revision: 745 $
4
+ # Date:: $Date: 2008-07-29 00:13:27 +0900 (Tue, 29 Jul 2008) $
5
+ # Revision:: $Revision: 781 $
6
6
  #
7
7
  # == license
8
8
  # :include:LICENSE
@@ -17,7 +17,7 @@ require 'singleton'
17
17
  module Higgs
18
18
  class TransactionManager
19
19
  # for ident(1)
20
- CVS_ID = '$Id: tman.rb 745 2008-01-20 13:28:02Z toki $'
20
+ CVS_ID = '$Id: tman.rb 781 2008-07-28 15:13:27Z toki $'
21
21
 
22
22
  include Exceptions
23
23
 
@@ -92,6 +92,7 @@ module Higgs
92
92
  if (@read_only == :standby && ! @jlog_apply_dir) then
93
93
  raise ArgumentError, "need for `:jlog_apply_dir' parameter in standby mode"
94
94
  end
95
+ @cnum_func = @storage.method(:change_number)
95
96
  @mvcc_cache = MVCCCache.new
96
97
  @master_cache = SharedWorkCache.new(@master_cache) {|key|
97
98
  (id = @storage.unique_data_id(key) and @secondary_cache[id]) or
@@ -104,7 +105,7 @@ module Higgs
104
105
  def transaction(read_only=@read_only)
105
106
  r = nil
106
107
  @lock_manager.transaction(read_only) {|lock_handler|
107
- @mvcc_cache.transaction(@storage.change_number) {|snapshot|
108
+ @mvcc_cache.transaction(@cnum_func) {|snapshot|
108
109
  if (read_only) then
109
110
  tx = ReadOnlyTransactionContext.new(lock_handler, @storage, snapshot, @master_cache, @secondary_cache, @decode, @encode)
110
111
  else
@@ -113,9 +114,8 @@ module Higgs
113
114
  end
114
115
  tx = ReadWriteTransactionContext.new(lock_handler, @storage, snapshot, @master_cache, @secondary_cache, @decode, @encode)
115
116
  end
116
- Thread.current[:higgs_current_transaction] = tx
117
117
  r = yield(tx)
118
- tx.commit unless read_only
118
+ tx.commit(false) unless read_only
119
119
  }
120
120
  }
121
121
  r
@@ -151,7 +151,7 @@ module Higgs
151
151
 
152
152
  class TransactionContext
153
153
  # for ident(1)
154
- CVS_ID = '$Id: tman.rb 745 2008-01-20 13:28:02Z toki $'
154
+ CVS_ID = '$Id: tman.rb 781 2008-07-28 15:13:27Z toki $'
155
155
 
156
156
  include Enumerable
157
157
 
@@ -506,7 +506,7 @@ module Higgs
506
506
  end
507
507
  private :write_list
508
508
 
509
- def commit
509
+ def commit(continue=true)
510
510
  write_list = write_list()
511
511
  if (write_list.empty?) then
512
512
  return
@@ -529,7 +529,7 @@ module Higgs
529
529
  case (ope)
530
530
  when :write
531
531
  if (@storage.key? key) then
532
- properties = Marshal.load(Marshal.dump(@storage.fetch_properties(key)))
532
+ properties = deep_copy(@storage.fetch_properties(key))
533
533
  old_write_list << [ :value, key, :data, @master_cache[key] ]
534
534
  old_write_list << [ :value, key, :properties, properties ]
535
535
  old_write_list << [ :value, key, :identity, @storage.identity(key) ]
@@ -541,7 +541,7 @@ module Higgs
541
541
  end
542
542
  when :system_properties, :custom_properties
543
543
  if (@storage.key? key) then
544
- properties = Marshal.load(Marshal.dump(@storage.fetch_properties(key)))
544
+ properties = deep_copy(@storage.fetch_properties(key))
545
545
  old_write_list << [ :value, key, :properties, properties ]
546
546
  old_write_list << [ :value, key, :properties_change_number, @storage.properties_change_number(key) ]
547
547
  else
@@ -549,7 +549,7 @@ module Higgs
549
549
  end
550
550
  when :delete
551
551
  if (@storage.key? key) then
552
- properties = Marshal.load(Marshal.dump(@storage.fetch_properties(key)))
552
+ properties = deep_copy(@storage.fetch_properties(key))
553
553
  old_write_list << [ :value, key, :data, @master_cache[key] ]
554
554
  old_write_list << [ :value, key, :properties, properties ]
555
555
  old_write_list << [ :value, key, :identity, @storage.identity(key) ]
@@ -575,8 +575,10 @@ module Higgs
575
575
  @ope_map.clear
576
576
 
577
577
  @storage.write_and_commit(write_list)
578
- @snapshot.ref_count_down
579
- @snapshot.ref_count_up(@storage.change_number)
578
+ if (continue) then
579
+ @snapshot.ref_count_down
580
+ @snapshot.ref_count_up(@storage.method(:change_number))
581
+ end
580
582
  }
581
583
 
582
584
  nil
@@ -1,8 +1,8 @@
1
1
  # = backup manager
2
2
  #
3
3
  # Author:: $Author: toki $
4
- # Date:: $Date: 2007-11-21 23:35:49 +0900 (Wed, 21 Nov 2007) $
5
- # Revision:: $Revision: 688 $
4
+ # Date:: $Date: 2008-07-29 00:13:27 +0900 (Tue, 29 Jul 2008) $
5
+ # Revision:: $Revision: 781 $
6
6
  #
7
7
  # == license
8
8
  # :include:LICENSE
@@ -164,7 +164,7 @@ module Higgs
164
164
  #
165
165
  class BackupManager
166
166
  # for ident(1)
167
- CVS_ID = '$Id: bman.rb 688 2007-11-21 14:35:49Z toki $'
167
+ CVS_ID = '$Id: bman.rb 781 2008-07-28 15:13:27Z toki $'
168
168
 
169
169
  def initialize(options={})
170
170
  @from = options[:from]
data/lib/higgs/utils.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # = namespace for utilities
2
2
  #
3
3
  # Author:: $Author: toki $
4
- # Date:: $Date: 2007-09-26 00:20:20 +0900 (Wed, 26 Sep 2007) $
5
- # Revision:: $Revision: 559 $
4
+ # Date:: $Date: 2008-07-29 00:13:27 +0900 (Tue, 29 Jul 2008) $
5
+ # Revision:: $Revision: 781 $
6
6
  #
7
7
  # == license
8
8
  # :include:LICENSE
@@ -12,7 +12,7 @@ module Higgs
12
12
  # = namespace for command-line utilities
13
13
  module Utils
14
14
  # for ident(1)
15
- CVS_ID = '$Id: utils.rb 559 2007-09-25 15:20:20Z toki $'
15
+ CVS_ID = '$Id: utils.rb 781 2008-07-28 15:13:27Z toki $'
16
16
  end
17
17
  end
18
18
 
data/lib/higgs/version.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # = version
2
2
  #
3
3
  # Author:: $Author: toki $
4
- # Date:: $Date: 2008-01-20 23:03:17 +0900 (Sun, 20 Jan 2008) $
5
- # Revision:: $Revision: 747 $
4
+ # Date:: $Date: 2008-07-29 00:13:27 +0900 (Tue, 29 Jul 2008) $
5
+ # Revision:: $Revision: 781 $
6
6
  #
7
7
  # == license
8
8
  # :include:LICENSE
@@ -10,9 +10,9 @@
10
10
 
11
11
  module Higgs
12
12
  # for ident(1)
13
- CVS_ID = '$Id: version.rb 747 2008-01-20 14:03:17Z toki $'
13
+ CVS_ID = '$Id: version.rb 781 2008-07-28 15:13:27Z toki $'
14
14
 
15
- VERSION = '0.1.5'
15
+ VERSION = '0.1.6'
16
16
  end
17
17
 
18
18
  # Local Variables:
data/lib/higgs.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # = pure ruby transactional storage compatible with unix TAR format
2
2
  #
3
3
  # Author:: $Author: toki $
4
- # Date:: $Date: 2007-10-14 18:43:23 +0900 (Sun, 14 Oct 2007) $
5
- # Revision:: $Revision: 636 $
4
+ # Date:: $Date: 2008-07-29 00:13:27 +0900 (Tue, 29 Jul 2008) $
5
+ # Revision:: $Revision: 781 $
6
6
  #
7
7
  # == license
8
8
  # :include:LICENSE
@@ -1,9 +1,9 @@
1
1
  #!/usr/local/bin/ruby
2
2
 
3
3
  # for ident(1)
4
- CVS_ID = '$Id: cache_bench.rb 559 2007-09-25 15:20:20Z toki $'
4
+ CVS_ID = '$Id: cache_bench.rb 781 2008-07-28 15:13:27Z toki $'
5
5
 
6
- $: << File.join(File.dirname($0), '..', '..', 'lib')
6
+ $:.unshift File.join(File.dirname($0), '..', '..', 'lib')
7
7
 
8
8
  require 'benchmark'
9
9
  require 'higgs/cache'
data/misc/dbm_bench/.strc CHANGED
@@ -1,4 +1,4 @@
1
- # $Id: .strc 559 2007-09-25 15:20:20Z toki $
1
+ # $Id: .strc 781 2008-07-28 15:13:27Z toki $
2
2
  number_of_read_io: 2
3
3
  data_cksum_type: MD5
4
4
  jlog_sync: false
@@ -1,5 +1,5 @@
1
1
  # for idnet(1)
2
- CVS_ID = '$Id: Rakefile 559 2007-09-25 15:20:20Z toki $'
2
+ CVS_ID = '$Id: Rakefile 781 2008-07-28 15:13:27Z toki $'
3
3
 
4
4
  LIB_DIR = File.join(File.dirname(__FILE__), '..', '..', 'lib')
5
5
 
@@ -1,9 +1,9 @@
1
1
  #!/usr/local/bin/ruby
2
2
 
3
3
  # for ident(1)
4
- CVS_ID = '$Id: dbm_multi_thread.rb 559 2007-09-25 15:20:20Z toki $'
4
+ CVS_ID = '$Id: dbm_multi_thread.rb 781 2008-07-28 15:13:27Z toki $'
5
5
 
6
- $: << File.join(File.dirname($0), '..', '..', 'lib')
6
+ $:.unshift File.join(File.dirname($0), '..', '..', 'lib')
7
7
 
8
8
  require 'benchmark'
9
9
  require 'higgs/dbm'
@@ -1,9 +1,9 @@
1
1
  #!/usr/local/bin/ruby
2
2
 
3
3
  # for ident(1)
4
- CVS_ID = '$Id: dbm_rnd_delete.rb 559 2007-09-25 15:20:20Z toki $'
4
+ CVS_ID = '$Id: dbm_rnd_delete.rb 781 2008-07-28 15:13:27Z toki $'
5
5
 
6
- $: << File.join(File.dirname($0), '..', '..', 'lib')
6
+ $:.unshift File.join(File.dirname($0), '..', '..', 'lib')
7
7
 
8
8
  require 'benchmark'
9
9
  require 'higgs/dbm'
@@ -1,9 +1,9 @@
1
1
  #!/usr/local/bin/ruby
2
2
 
3
3
  # for ident(1)
4
- CVS_ID = '$Id: dbm_rnd_read.rb 559 2007-09-25 15:20:20Z toki $'
4
+ CVS_ID = '$Id: dbm_rnd_read.rb 781 2008-07-28 15:13:27Z toki $'
5
5
 
6
- $: << File.join(File.dirname($0), '..', '..', 'lib')
6
+ $:.unshift File.join(File.dirname($0), '..', '..', 'lib')
7
7
 
8
8
  require 'benchmark'
9
9
  require 'higgs/dbm'
@@ -1,9 +1,9 @@
1
1
  #!/usr/local/bin/ruby
2
2
 
3
3
  # for ident(1)
4
- CVS_ID = '$Id: dbm_rnd_update.rb 559 2007-09-25 15:20:20Z toki $'
4
+ CVS_ID = '$Id: dbm_rnd_update.rb 781 2008-07-28 15:13:27Z toki $'
5
5
 
6
- $: << File.join(File.dirname($0), '..', '..', 'lib')
6
+ $:.unshift File.join(File.dirname($0), '..', '..', 'lib')
7
7
 
8
8
  require 'benchmark'
9
9
  require 'higgs/dbm'
@@ -1,9 +1,9 @@
1
1
  #!/usr/local/bin/ruby
2
2
 
3
3
  # for ident(1)
4
- CVS_ID = '$Id: dbm_seq_read.rb 559 2007-09-25 15:20:20Z toki $'
4
+ CVS_ID = '$Id: dbm_seq_read.rb 781 2008-07-28 15:13:27Z toki $'
5
5
 
6
- $: << File.join(File.dirname($0), '..', '..', 'lib')
6
+ $:.unshift File.join(File.dirname($0), '..', '..', 'lib')
7
7
 
8
8
  require 'benchmark'
9
9
  require 'higgs/dbm'
@@ -1,9 +1,9 @@
1
1
  #!/usr/local/bin/ruby
2
2
 
3
3
  # for ident(1)
4
- CVS_ID = '$Id: dbm_seq_write.rb 559 2007-09-25 15:20:20Z toki $'
4
+ CVS_ID = '$Id: dbm_seq_write.rb 781 2008-07-28 15:13:27Z toki $'
5
5
 
6
- $: << File.join(File.dirname($0), '..', '..', 'lib')
6
+ $:.unshift File.join(File.dirname($0), '..', '..', 'lib')
7
7
 
8
8
  require 'benchmark'
9
9
  require 'higgs/dbm'
@@ -0,0 +1,52 @@
1
+ #!/usr/local/bin/ruby
2
+
3
+ $:.unshift File.dirname(__FILE__)
4
+ $:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
5
+
6
+ # for ident(1)
7
+ CVS_ID = '$Id: run.rb 781 2008-07-28 15:13:27Z toki $'
8
+
9
+ require 'fileutils'
10
+ require 'rbconfig'
11
+
12
+ include Config
13
+ include FileUtils
14
+
15
+ LIB_DIR = File.join(File.dirname(__FILE__), '..', '..', 'lib')
16
+ LOOP_COUNT = ENV['LOOP_COUNT'] || '100'
17
+ DATA_COUNT = ENV['DATA_COUNT'] || '10'
18
+ MAX_DAT_LEN = ENV['MAX_DAT_LEN'] || '32768'
19
+
20
+ def run(cmd)
21
+ ruby = CONFIG['RUBY_INSTALL_NAME']
22
+ system ruby, '-I', LIB_DIR, cmd, LOOP_COUNT, DATA_COUNT, MAX_DAT_LEN
23
+ end
24
+
25
+ def benchmarks
26
+ print "\n"
27
+ yield 'dbm_seq_write.rb'
28
+ run 'st_verify.rb'
29
+ yield 'dbm_seq_read.rb'
30
+ run 'st_verify.rb'
31
+ yield 'dbm_rnd_read.rb'
32
+ run 'st_verify.rb'
33
+ yield 'dbm_rnd_update.rb'
34
+ run 'st_verify.rb'
35
+ yield 'dbm_rnd_delete.rb'
36
+ run 'st_verify.rb'
37
+ #yield 'st_reorganize.rb'
38
+ #run 'st_verify.rb'
39
+ nil
40
+ end
41
+
42
+ def clean
43
+ for db in Dir['foo.*']
44
+ rm_f db
45
+ end
46
+ end
47
+
48
+ clean
49
+
50
+ benchmarks do |rb|
51
+ run rb
52
+ end
@@ -1,9 +1,9 @@
1
1
  #!/usr/local/bin/ruby
2
2
 
3
3
  # for ident(1)
4
- CVS_ID = '$Id: st_verify.rb 559 2007-09-25 15:20:20Z toki $'
4
+ CVS_ID = '$Id: st_verify.rb 781 2008-07-28 15:13:27Z toki $'
5
5
 
6
- $: << File.join(File.dirname($0), '..', '..', 'lib')
6
+ $:.unshift File.join(File.dirname($0), '..', '..', 'lib')
7
7
 
8
8
  require 'benchmark'
9
9
  require 'higgs/storage'
@@ -1,7 +1,7 @@
1
1
  #!/usr/local/bin/ruby
2
2
 
3
3
  # for dient(1)
4
- CVS_ID = '$Id: cksum_bench.rb 559 2007-09-25 15:20:20Z toki $'
4
+ CVS_ID = '$Id: cksum_bench.rb 781 2008-07-28 15:13:27Z toki $'
5
5
 
6
6
  require 'benchmark'
7
7
  require 'digest/md5'
@@ -1,9 +1,9 @@
1
1
  #!/usr/local/bin/ruby
2
2
 
3
3
  # for dient(1)
4
- CVS_ID = '$Id: jlog_bench.rb 559 2007-09-25 15:20:20Z toki $'
4
+ CVS_ID = '$Id: jlog_bench.rb 781 2008-07-28 15:13:27Z toki $'
5
5
 
6
- $: << File.join(File.dirname($0), '..', '..', 'lib')
6
+ $:.unshift File.join(File.dirname($0), '..', '..', 'lib')
7
7
 
8
8
  require 'benchmark'
9
9
  require 'fileutils'
@@ -1,7 +1,7 @@
1
1
  #!/usr/local/bin/ruby
2
2
 
3
3
  # for dient(1)
4
- CVS_ID = '$Id: write_bench.rb 559 2007-09-25 15:20:20Z toki $'
4
+ CVS_ID = '$Id: write_bench.rb 781 2008-07-28 15:13:27Z toki $'
5
5
 
6
6
  require 'benchmark'
7
7
 
@@ -1,9 +1,9 @@
1
1
  #!/usr/local/bin/ruby
2
2
 
3
3
  # for ident(1)
4
- CVS_ID = '$Id: lock_bench.rb 559 2007-09-25 15:20:20Z toki $'
4
+ CVS_ID = '$Id: lock_bench.rb 781 2008-07-28 15:13:27Z toki $'
5
5
 
6
- $: << File.join(File.dirname($0), '..', '..', 'lib')
6
+ $:.unshift File.join(File.dirname($0), '..', '..', 'lib')
7
7
 
8
8
  require 'benchmark'
9
9
  require 'higgs/thread'
data/test/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
1
  # for ident(1)
2
- CVS_ID = '$Id: Rakefile 561 2007-09-26 15:46:49Z toki $'
2
+ CVS_ID = '$Id: Rakefile 781 2008-07-28 15:13:27Z toki $'
3
3
 
4
4
  LIB_DIR = File.join(File.dirname(__FILE__), '..', 'lib')
5
5
  RCOV_DIR = File.join(File.dirname(__FILE__), 'coverage')
data/test/run.rb CHANGED
@@ -1,10 +1,10 @@
1
1
  #!/usr/local/bin/ruby
2
2
 
3
- $: << File.dirname(__FILE__)
4
- $: << File.join(File.dirname(__FILE__), '..', 'lib')
3
+ $:.unshift File.dirname(__FILE__)
4
+ $:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
5
5
 
6
6
  # for ident(1)
7
- CVS_ID = '$Id: run.rb 575 2007-09-29 08:13:51Z toki $'
7
+ CVS_ID = '$Id: run.rb 781 2008-07-28 15:13:27Z toki $'
8
8
 
9
9
  mask = // # any match
10
10
  if ($0 == __FILE__) then
data/test/test_block.rb CHANGED
@@ -10,7 +10,7 @@ module Higgs::Test
10
10
  include Higgs::Block
11
11
 
12
12
  # for ident(1)
13
- CVS_ID = '$Id: test_block.rb 654 2007-10-23 16:04:47Z toki $'
13
+ CVS_ID = '$Id: test_block.rb 781 2008-07-28 15:13:27Z toki $'
14
14
 
15
15
  def setup
16
16
  @io = File.open('block.test_io', 'w+')