io_shuten 0.1.0.dev7 → 0.1.1.dev1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. data/Gemfile +8 -14
  2. data/Gemfile.lock +42 -58
  3. data/README.md +148 -24
  4. data/Rakefile +0 -29
  5. data/benchmark/viiite-template-redis.rb +75 -0
  6. data/benchmark/viiite-template.rb +24 -31
  7. data/benchmarks.sh +7 -46
  8. data/benchmarks/redis.kvc.rb +8 -0
  9. data/benchmarks/redis.kvs.rb +8 -0
  10. data/io_shuten.gemspec +30 -92
  11. data/lib/io_shuten/redis.rb +1 -1
  12. data/lib/io_shuten/stores/redis/key_value/collection.rb +15 -3
  13. data/lib/io_shuten/version.rb +1 -1
  14. data/spec/lib/redis_spec.rb +5 -5
  15. data/spec/spec_helper.rb +1 -3
  16. metadata +109 -131
  17. data/.rvmrc +0 -71
  18. data/.simplecov +0 -16
  19. data/.yardopts +0 -3
  20. data/doc/IO_3A_3ABuffer.html +0 -198
  21. data/doc/IO_shuten.html +0 -126
  22. data/doc/IO_shuten/Base.html +0 -1062
  23. data/doc/IO_shuten/Base/FileAccessError.html +0 -129
  24. data/doc/IO_shuten/Base/FileNotFoundError.html +0 -129
  25. data/doc/IO_shuten/Base/NodeNameError.html +0 -129
  26. data/doc/IO_shuten/Base/NodeNotFoundError.html +0 -129
  27. data/doc/IO_shuten/Base/NotYetImplemented.html +0 -129
  28. data/doc/IO_shuten/Buffer.html +0 -1822
  29. data/doc/IO_shuten/Errors.html +0 -119
  30. data/doc/IO_shuten/Errors/FileAccessError.html +0 -129
  31. data/doc/IO_shuten/Errors/FileNotFoundError.html +0 -129
  32. data/doc/IO_shuten/Errors/NodeExistsError.html +0 -129
  33. data/doc/IO_shuten/Errors/NodeNameError.html +0 -129
  34. data/doc/IO_shuten/Errors/NodeNameExistsError.html +0 -129
  35. data/doc/IO_shuten/Errors/NodeNotFoundError.html +0 -129
  36. data/doc/IO_shuten/Errors/NotYetImplemented.html +0 -129
  37. data/doc/IO_shuten/Memory.html +0 -1778
  38. data/doc/IO_shuten/Mongo.html +0 -166
  39. data/doc/IO_shuten/Redis.html +0 -868
  40. data/doc/IO_shuten/Stores.html +0 -121
  41. data/doc/IO_shuten/Stores/BaseContainer.html +0 -377
  42. data/doc/IO_shuten/Stores/Mongo.html +0 -121
  43. data/doc/IO_shuten/Stores/Mongo/Collection.html +0 -109
  44. data/doc/IO_shuten/Stores/Mongo/GridFS.html +0 -109
  45. data/doc/IO_shuten/Stores/Redis.html +0 -123
  46. data/doc/IO_shuten/Stores/Redis/Container.html +0 -778
  47. data/doc/IO_shuten/Stores/Redis/KeyValue.html +0 -279
  48. data/doc/IO_shuten/Stores/Redis/KeyValue/Collection.html +0 -504
  49. data/doc/IO_shuten/Stores/Redis/KeyValue/Single.html +0 -438
  50. data/doc/IO_shuten/Stores/Redis/PubSub.html +0 -245
  51. data/doc/IO_shuten/Zmq.html +0 -166
  52. data/doc/_index.html +0 -375
  53. data/doc/class_list.html +0 -47
  54. data/doc/css/blame.css +0 -11
  55. data/doc/css/common.css +0 -1
  56. data/doc/css/full_list.css +0 -55
  57. data/doc/css/style.css +0 -322
  58. data/doc/file.README.html +0 -158
  59. data/doc/file_list.html +0 -49
  60. data/doc/frames.html +0 -13
  61. data/doc/index.html +0 -158
  62. data/doc/js/app.js +0 -205
  63. data/doc/js/full_list.js +0 -167
  64. data/doc/js/jquery.js +0 -16
  65. data/doc/method_list.html +0 -390
  66. data/doc/top-level-namespace.html +0 -105
@@ -0,0 +1,75 @@
1
+ # encoding: utf-8
2
+ $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
3
+ require "rubygems"
4
+ require "viiite"
5
+ require "bundler/setup"
6
+ require "io_shuten"
7
+ require "logger"
8
+
9
+ lorem_ipsum = <<LOREM
10
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
11
+ tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
12
+ At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
13
+ no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet,
14
+ consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
15
+ dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
16
+ dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem
17
+ ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
18
+ diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
19
+ voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
20
+ gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
21
+ LOREM
22
+
23
+
24
+ ioc = IO_shuten.const_get $CUR_IMPL
25
+ ioc.redis = Redis::Namespace.new("io_shuten:benchmark", :redis => Redis.new)
26
+ runs = 1..5
27
+ outer_loops = 32
28
+ internal_loops = 128
29
+
30
+ Viiite.bench do |b|
31
+ b.variation_point :ruby, Viiite.which_ruby
32
+ b.variation_point :type, "#{$CUR_IMPL}:#{$CUR_BACKEND}:#{$CUR_TYPE}"
33
+
34
+ b.range_over(runs, :run) do |run|
35
+
36
+ ioc.purge_instances!
37
+ b.report :writes do
38
+ outer_loops.times do |o|
39
+ iob = ioc.new("rbuff-#{run}-#{o}",$CUR_BACKEND,$CUR_TYPE)
40
+
41
+ internal_loops.times do |i|
42
+ iob.write lorem_ipsum
43
+ end
44
+ end
45
+ end
46
+
47
+ ioc.purge_instances!
48
+ b.report :reads do
49
+ outer_loops.times do |o|
50
+ iob = ioc.new("rbuff-#{run}-#{o}",$CUR_BACKEND,$CUR_TYPE)
51
+
52
+ internal_loops.times do |i|
53
+ iob.read
54
+ end
55
+ end
56
+
57
+ ioc.purge_instances!
58
+ b.report :logging do
59
+ outer_loops.times do |o|
60
+ logdev = ioc.new("rlogdev-#{run}-#{o}",$CUR_BACKEND,$CUR_TYPE)
61
+ logger = Logger.new(logdev)
62
+
63
+ internal_loops.times do |i|
64
+ logger.info lorem_ipsum
65
+ logger.debug "counter: #{run}-#{o}"
66
+ end
67
+ end
68
+ end
69
+
70
+ end
71
+
72
+ ioc.redis_clear!
73
+ end
74
+
75
+ end
@@ -20,12 +20,11 @@ voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita ka
20
20
  gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
21
21
  LOREM
22
22
 
23
- tmp_path = File.expand_path("../../tmp", __FILE__)
24
- Dir.mkdir(tmp_path) unless File.exists?(tmp_path)
25
23
 
26
24
  ioc = IO_shuten.const_get $CUR_IMPL
27
25
  runs = 1..5
28
- internal_loops = 1_024
26
+ outer_loops = 32
27
+ internal_loops = 128
29
28
 
30
29
  Viiite.bench do |b|
31
30
  b.variation_point :ruby, Viiite.which_ruby
@@ -35,45 +34,39 @@ Viiite.bench do |b|
35
34
 
36
35
  ioc.purge_instances!
37
36
  b.report :writes do
38
- internal_loops.times do |i|
39
- iob = ioc.new("wbuff-#{run}-#{i}")
40
- iob.write lorem_ipsum
41
- end
42
- end
37
+ outer_loops.times do |o|
38
+ iob = ioc.new("wbuff-#{run}-#{o}")
43
39
 
44
- ioc.purge_instances!
45
- b.report :logging do
46
- internal_loops.times do |i|
47
- logdev = ioc.new("logdev-#{run}-#{i}")
48
- logger = Logger.new(logdev)
49
- logger.info lorem_ipsum
50
- logger.debug "counter: #{run}-#{i}"
40
+ internal_loops.times do |i|
41
+ iob.write lorem_ipsum
42
+ end
51
43
  end
52
44
  end
53
45
 
54
- ioc.purge_instances!
55
- b.report :file_writes do
56
- internal_loops.times do |i|
57
- iob = ioc.new("#{tmp_path}/wbuff-#{run}-#{i}")
58
- iob.write lorem_ipsum
59
- iob.save_to_file
46
+ # no purging for reads!
47
+ b.report :reads do
48
+ outer_loops.times do |o|
49
+ iob = ioc.open("wbuff-#{run}-#{o}")
50
+
51
+ internal_loops.times do |i|
52
+ iob.read
53
+ end
60
54
  end
61
55
  end
62
56
 
63
57
  ioc.purge_instances!
64
- b.report :file_reads do
65
- internal_loops.times do |i|
66
- iob = ioc.new("#{tmp_path}/wmem-#{run}-#{i}")
67
- iob.write lorem_ipsum
68
- iob.save_to_file
58
+ b.report :logging do
59
+ outer_loops.times do |o|
60
+ logdev = ioc.new("logdev-#{run}-#{o}")
61
+ logger = Logger.new(logdev)
62
+
63
+ internal_loops.times do |i|
64
+ logger.info lorem_ipsum
65
+ logger.debug "counter: #{run}-#{o}"
66
+ end
69
67
  end
70
68
  end
71
69
 
72
70
  end
73
71
 
74
- # File cleaning …
75
- Dir["#{tmp_path}/**/*"].each do |f|
76
- File.unlink f
77
- end
78
-
79
72
  end
data/benchmarks.sh CHANGED
@@ -1,57 +1,18 @@
1
1
  #!/bin/bash
2
- echo "Loading RVM ..."
3
- [[ -s $rvm_path/scripts/rvm ]] && source $rvm_path/scripts/rvm >/dev/null 2>&1
4
-
5
- RUBIES="ruby-1.8.7-p357 ree ruby-1.9.2-p290 ruby-1.9.3-p0"
6
2
  GEMSET="io_shuten"
7
3
  BENCHMARKS=`ls benchmarks`
8
4
  BENCH_OUT="benchmark/out.rash"
9
5
  BENCH_REP="benchmark/report"
10
- BENCH_RUN=10
11
- CUR_RAKE_VER=`gem list rake | awk '$1~/rake/{print $2}'`
12
-
13
- [[ -e "$BENCH_OUT" ]] && rm $BENCH_OUT && touch $BENCH_OUT
14
-
15
- for ruby in $RUBIES; do
16
-
17
- echo
18
- echo "Switching to: $ruby@$GEMSET"
19
- rvm use --create $ruby@$GEMSET >/dev/null 2>&1
20
-
21
- ruby_rake_ver=`gem list rake | awk '$1~/rake/{print $2}'`
22
-
23
- if [[ "$ruby_rake_ver" != "$CUR_RAKE_VER" ]]; then
24
- echo "Installing rake $CUR_RAKE_VER ..."
25
- gem install rake -v=$CUR_RAKE_VER >/dev/null 2>&1
26
- else
27
- echo "rake $CUR_RAKE_VER already installed."
28
- fi
29
-
30
- bundler_installed=`gem list bundler | awk '$1~/bundler/ { print $1 }'`
31
-
32
- if [[ -z "$bundler_installed" ]]; then
33
- echo "Installing bundler ..."
34
- gem install bundler --pre >/dev/null 2>&1
35
- else
36
- echo "bundler already installed."
37
- fi
38
-
39
- echo "Installing gems ..."
40
- bundle install >/dev/null 2>&1
41
-
42
- echo "Running benchmarks ..."
43
- for bench in $BENCHMARKS; do
44
- viiite run --runs=$BENCH_RUN $bench >> $BENCH_OUT 2>/dev/null
45
- done
6
+ BENCH_RUN=1
46
7
 
8
+ echo "Running benchmarks ..."
9
+ for bench in $BENCHMARKS; do
10
+ echo " - ${bench}"
11
+ viiite run --runs=$BENCH_RUN $bench >> $BENCH_OUT 2>/dev/null
47
12
  done
48
13
 
49
- viiite report $BENCH_OUT -h --regroup=bench,ruby,type > ${BENCH_REP}.bench-ruby-type.txt
50
- viiite report $BENCH_OUT -h --regroup=bench,type,ruby > ${BENCH_REP}.bench-type-ruby.txt
51
- viiite report $BENCH_OUT -h --regroup=ruby,bench,type > ${BENCH_REP}.ruby-bench-type.txt
52
- viiite report $BENCH_OUT -h --regroup=ruby,type,bench > ${BENCH_REP}.ruby-type-bench.txt
53
- viiite report $BENCH_OUT -h --regroup=type,bench,ruby > ${BENCH_REP}.type-bench-ruby.txt
54
- viiite report $BENCH_OUT -h --regroup=type,ruby,bench > ${BENCH_REP}.type-ruby-bench.txt
14
+ viiite report $BENCH_OUT -h --regroup=bench,type > ${BENCH_REP}.bench-type.txt
15
+ viiite report $BENCH_OUT -h --regroup=type,bench > ${BENCH_REP}.type-bench.txt
55
16
 
56
17
  [[ -e "$BENCH_OUT" ]] && rm $BENCH_OUT
57
18
 
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+ $LOAD_PATH.unshift File.expand_path("../../benchmark", __FILE__)
3
+
4
+ $CUR_IMPL = "Redis"
5
+ $CUR_BACKEND = :key_value
6
+ $CUR_TYPE = :collection
7
+
8
+ require "viiite-template-redis.rb"
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+ $LOAD_PATH.unshift File.expand_path("../../benchmark", __FILE__)
3
+
4
+ $CUR_IMPL = "Redis"
5
+ $CUR_BACKEND = :key_value
6
+ $CUR_TYPE = :single
7
+
8
+ require "viiite-template-redis.rb"
data/io_shuten.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "io_shuten"
8
- s.version = "0.1.0.dev7"
8
+ s.version = "0.1.1.dev1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Christoph Grabo"]
12
- s.date = "2012-01-30"
12
+ s.date = "2012-11-04"
13
13
  s.description = "IO::shuten \u{2013} Use databases as IO handler like you would do with files and streams."
14
14
  s.email = ["chris@dinarrr.com"]
15
15
  s.extra_rdoc_files = [
@@ -19,67 +19,20 @@ Gem::Specification.new do |s|
19
19
  ]
20
20
  s.files = [
21
21
  ".rspec",
22
- ".rvmrc",
23
- ".simplecov",
24
22
  ".travis.yml",
25
- ".yardopts",
26
23
  "Gemfile",
27
24
  "Gemfile.lock",
28
25
  "LICENSE",
29
26
  "LICENSE.de",
30
27
  "README.md",
31
28
  "Rakefile",
29
+ "benchmark/viiite-template-redis.rb",
32
30
  "benchmark/viiite-template.rb",
33
31
  "benchmarks.sh",
34
32
  "benchmarks/buffer.rb",
35
33
  "benchmarks/memory.rb",
36
- "doc/IO_3A_3ABuffer.html",
37
- "doc/IO_shuten.html",
38
- "doc/IO_shuten/Base.html",
39
- "doc/IO_shuten/Base/FileAccessError.html",
40
- "doc/IO_shuten/Base/FileNotFoundError.html",
41
- "doc/IO_shuten/Base/NodeNameError.html",
42
- "doc/IO_shuten/Base/NodeNotFoundError.html",
43
- "doc/IO_shuten/Base/NotYetImplemented.html",
44
- "doc/IO_shuten/Buffer.html",
45
- "doc/IO_shuten/Errors.html",
46
- "doc/IO_shuten/Errors/FileAccessError.html",
47
- "doc/IO_shuten/Errors/FileNotFoundError.html",
48
- "doc/IO_shuten/Errors/NodeExistsError.html",
49
- "doc/IO_shuten/Errors/NodeNameError.html",
50
- "doc/IO_shuten/Errors/NodeNameExistsError.html",
51
- "doc/IO_shuten/Errors/NodeNotFoundError.html",
52
- "doc/IO_shuten/Errors/NotYetImplemented.html",
53
- "doc/IO_shuten/Memory.html",
54
- "doc/IO_shuten/Mongo.html",
55
- "doc/IO_shuten/Redis.html",
56
- "doc/IO_shuten/Stores.html",
57
- "doc/IO_shuten/Stores/BaseContainer.html",
58
- "doc/IO_shuten/Stores/Mongo.html",
59
- "doc/IO_shuten/Stores/Mongo/Collection.html",
60
- "doc/IO_shuten/Stores/Mongo/GridFS.html",
61
- "doc/IO_shuten/Stores/Redis.html",
62
- "doc/IO_shuten/Stores/Redis/Container.html",
63
- "doc/IO_shuten/Stores/Redis/KeyValue.html",
64
- "doc/IO_shuten/Stores/Redis/KeyValue/Collection.html",
65
- "doc/IO_shuten/Stores/Redis/KeyValue/Single.html",
66
- "doc/IO_shuten/Stores/Redis/PubSub.html",
67
- "doc/IO_shuten/Zmq.html",
68
- "doc/_index.html",
69
- "doc/class_list.html",
70
- "doc/css/blame.css",
71
- "doc/css/common.css",
72
- "doc/css/full_list.css",
73
- "doc/css/style.css",
74
- "doc/file.README.html",
75
- "doc/file_list.html",
76
- "doc/frames.html",
77
- "doc/index.html",
78
- "doc/js/app.js",
79
- "doc/js/full_list.js",
80
- "doc/js/jquery.js",
81
- "doc/method_list.html",
82
- "doc/top-level-namespace.html",
34
+ "benchmarks/redis.kvc.rb",
35
+ "benchmarks/redis.kvs.rb",
83
36
  "io_shuten.gemspec",
84
37
  "lib/io_shuten.rb",
85
38
  "lib/io_shuten/base.rb",
@@ -121,76 +74,61 @@ Gem::Specification.new do |s|
121
74
  s.homepage = "http://github.com/asaaki/io_shuten"
122
75
  s.licenses = ["MIT"]
123
76
  s.require_paths = ["lib"]
124
- s.rubygems_version = "1.8.15"
77
+ s.rubygems_version = "1.8.23"
125
78
  s.summary = "IO::shuten \u{2013} Use databases as IO handler. (NOT YET READY FOR PRODUCTION!)"
126
79
 
127
80
  if s.respond_to? :specification_version then
128
81
  s.specification_version = 3
129
82
 
130
83
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
131
- s.add_runtime_dependency(%q<iobuffer>, ["~> 1.0.0"])
132
- s.add_runtime_dependency(%q<hiredis>, ["~> 0.4.4"])
133
- s.add_runtime_dependency(%q<redis>, ["~> 2.2.2"])
134
- s.add_runtime_dependency(%q<redis-namespace>, [">= 0"])
84
+ s.add_runtime_dependency(%q<iobuffer>, ["~> 1.1.2"])
85
+ s.add_runtime_dependency(%q<hiredis>, ["~> 0.4.5"])
86
+ s.add_runtime_dependency(%q<redis>, ["~> 3.0.2"])
87
+ s.add_runtime_dependency(%q<redis-namespace>, ["~> 1.2.1"])
135
88
  s.add_runtime_dependency(%q<bson_ext>, ["~> 1.5.2"])
136
89
  s.add_runtime_dependency(%q<mongo>, ["~> 1.5.2"])
137
- s.add_runtime_dependency(%q<ffi>, [">= 0"])
138
- s.add_runtime_dependency(%q<ffi-rzmq>, [">= 0"])
90
+ s.add_runtime_dependency(%q<ffi>, ["~> 1.1.5"])
91
+ s.add_runtime_dependency(%q<ffi-rzmq>, ["~> 0.9.6"])
139
92
  s.add_development_dependency(%q<rake>, [">= 0"])
140
93
  s.add_development_dependency(%q<jeweler>, [">= 0"])
141
- s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
142
- s.add_development_dependency(%q<simplecov>, [">= 0"])
143
- s.add_development_dependency(%q<simplecov-rcov>, [">= 0"])
144
- s.add_development_dependency(%q<simplecov-csv>, [">= 0"])
145
- s.add_development_dependency(%q<redcarpet>, [">= 0"])
146
- s.add_development_dependency(%q<yard>, [">= 0"])
147
- s.add_development_dependency(%q<yard-blame>, [">= 0"])
94
+ s.add_development_dependency(%q<rspec>, ["~> 2.11.0"])
148
95
  s.add_development_dependency(%q<pry>, [">= 0"])
96
+ s.add_development_dependency(%q<pry-doc>, [">= 0"])
149
97
  s.add_development_dependency(%q<alf>, [">= 0"])
150
98
  s.add_development_dependency(%q<fastercsv>, [">= 0"])
151
99
  s.add_development_dependency(%q<viiite>, [">= 0"])
152
100
  else
153
- s.add_dependency(%q<iobuffer>, ["~> 1.0.0"])
154
- s.add_dependency(%q<hiredis>, ["~> 0.4.4"])
155
- s.add_dependency(%q<redis>, ["~> 2.2.2"])
156
- s.add_dependency(%q<redis-namespace>, [">= 0"])
101
+ s.add_dependency(%q<iobuffer>, ["~> 1.1.2"])
102
+ s.add_dependency(%q<hiredis>, ["~> 0.4.5"])
103
+ s.add_dependency(%q<redis>, ["~> 3.0.2"])
104
+ s.add_dependency(%q<redis-namespace>, ["~> 1.2.1"])
157
105
  s.add_dependency(%q<bson_ext>, ["~> 1.5.2"])
158
106
  s.add_dependency(%q<mongo>, ["~> 1.5.2"])
159
- s.add_dependency(%q<ffi>, [">= 0"])
160
- s.add_dependency(%q<ffi-rzmq>, [">= 0"])
107
+ s.add_dependency(%q<ffi>, ["~> 1.1.5"])
108
+ s.add_dependency(%q<ffi-rzmq>, ["~> 0.9.6"])
161
109
  s.add_dependency(%q<rake>, [">= 0"])
162
110
  s.add_dependency(%q<jeweler>, [">= 0"])
163
- s.add_dependency(%q<rspec>, ["~> 2.8.0"])
164
- s.add_dependency(%q<simplecov>, [">= 0"])
165
- s.add_dependency(%q<simplecov-rcov>, [">= 0"])
166
- s.add_dependency(%q<simplecov-csv>, [">= 0"])
167
- s.add_dependency(%q<redcarpet>, [">= 0"])
168
- s.add_dependency(%q<yard>, [">= 0"])
169
- s.add_dependency(%q<yard-blame>, [">= 0"])
111
+ s.add_dependency(%q<rspec>, ["~> 2.11.0"])
170
112
  s.add_dependency(%q<pry>, [">= 0"])
113
+ s.add_dependency(%q<pry-doc>, [">= 0"])
171
114
  s.add_dependency(%q<alf>, [">= 0"])
172
115
  s.add_dependency(%q<fastercsv>, [">= 0"])
173
116
  s.add_dependency(%q<viiite>, [">= 0"])
174
117
  end
175
118
  else
176
- s.add_dependency(%q<iobuffer>, ["~> 1.0.0"])
177
- s.add_dependency(%q<hiredis>, ["~> 0.4.4"])
178
- s.add_dependency(%q<redis>, ["~> 2.2.2"])
179
- s.add_dependency(%q<redis-namespace>, [">= 0"])
119
+ s.add_dependency(%q<iobuffer>, ["~> 1.1.2"])
120
+ s.add_dependency(%q<hiredis>, ["~> 0.4.5"])
121
+ s.add_dependency(%q<redis>, ["~> 3.0.2"])
122
+ s.add_dependency(%q<redis-namespace>, ["~> 1.2.1"])
180
123
  s.add_dependency(%q<bson_ext>, ["~> 1.5.2"])
181
124
  s.add_dependency(%q<mongo>, ["~> 1.5.2"])
182
- s.add_dependency(%q<ffi>, [">= 0"])
183
- s.add_dependency(%q<ffi-rzmq>, [">= 0"])
125
+ s.add_dependency(%q<ffi>, ["~> 1.1.5"])
126
+ s.add_dependency(%q<ffi-rzmq>, ["~> 0.9.6"])
184
127
  s.add_dependency(%q<rake>, [">= 0"])
185
128
  s.add_dependency(%q<jeweler>, [">= 0"])
186
- s.add_dependency(%q<rspec>, ["~> 2.8.0"])
187
- s.add_dependency(%q<simplecov>, [">= 0"])
188
- s.add_dependency(%q<simplecov-rcov>, [">= 0"])
189
- s.add_dependency(%q<simplecov-csv>, [">= 0"])
190
- s.add_dependency(%q<redcarpet>, [">= 0"])
191
- s.add_dependency(%q<yard>, [">= 0"])
192
- s.add_dependency(%q<yard-blame>, [">= 0"])
129
+ s.add_dependency(%q<rspec>, ["~> 2.11.0"])
193
130
  s.add_dependency(%q<pry>, [">= 0"])
131
+ s.add_dependency(%q<pry-doc>, [">= 0"])
194
132
  s.add_dependency(%q<alf>, [">= 0"])
195
133
  s.add_dependency(%q<fastercsv>, [">= 0"])
196
134
  s.add_dependency(%q<viiite>, [">= 0"])
@@ -24,7 +24,7 @@ module IO_shuten
24
24
 
25
25
  # Global redis client instance for the pool
26
26
  # @return [Object] Redis instance
27
- @@redis = ::Redis.new
27
+ @@redis = ::Redis::Namespace.new(:io_shuten, :redis => ::Redis.new)
28
28
 
29
29
  # @param [String] node_name
30
30
  # @param [Symbol] node_name
@@ -4,6 +4,10 @@ module IO_shuten::Stores::Redis::KeyValue
4
4
  # Redis Backend type for storing every data piece into its own key (namespace)
5
5
  module Collection
6
6
 
7
+ def counter_name
8
+ "#{@node_name}:#{"%016d" % '0'}"
9
+ end
10
+
7
11
  def read
8
12
  result = read_collection
9
13
  result.join
@@ -12,14 +16,22 @@ module IO_shuten::Stores::Redis::KeyValue
12
16
  def read_collection
13
17
  coll = @redis.keys("#{@node_name}:*").sort
14
18
  coll.inject([]) do |store, key|
15
- store << (@redis.get(key))
19
+ store << (@redis.get(key)) unless key == counter_name
16
20
  store
17
21
  end
18
22
  end
19
23
 
20
24
  def write data
21
- counter = @redis.keys("#{@node_name}:*").size + 1
22
- @redis.set "#{@node_name}:#{counter}", data
25
+ counter = self.size + 1
26
+ key = "#{@node_name}:#{"%016d" % counter}"
27
+ @redis.multi do
28
+ @redis.set key, data
29
+ @redis.incr counter_name
30
+ end
31
+ end
32
+
33
+ def size
34
+ @redis.get(counter_name).to_i || 0
23
35
  end
24
36
 
25
37
  def clear!