riak-client 2.5.0 → 2.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -0
- data/RELNOTES.md +3 -0
- data/lib/riak/bucket.rb +1 -1
- data/lib/riak/client.rb +14 -7
- data/lib/riak/client/beefcake/messages.rb +13 -0
- data/lib/riak/multi.rb +101 -0
- data/lib/riak/multiexist.rb +14 -0
- data/lib/riak/multiget.rb +7 -107
- data/lib/riak/version.rb +1 -1
- metadata +12 -234
- data/.document +0 -5
- data/.gitignore +0 -44
- data/.rspec +0 -2
- data/Gemfile +0 -17
- data/Guardfile +0 -20
- data/Rakefile +0 -124
- data/riak-client.gemspec +0 -71
- data/spec/failover/failover.rb +0 -59
- data/spec/fixtures/bitcask.txt +0 -25
- data/spec/fixtures/cat.jpg +0 -0
- data/spec/fixtures/multipart-basic-conflict.txt +0 -15
- data/spec/fixtures/multipart-blank.txt +0 -7
- data/spec/fixtures/multipart-mapreduce.txt +0 -10
- data/spec/fixtures/multipart-with-body.txt +0 -16
- data/spec/fixtures/multipart-with-marked-tombstones.txt +0 -17
- data/spec/fixtures/multipart-with-unmarked-tombstone.txt +0 -16
- data/spec/fixtures/server.cert.crt +0 -15
- data/spec/fixtures/server.cert.key +0 -15
- data/spec/fixtures/test.pem +0 -1
- data/spec/fixtures/yz_schema_template.xml +0 -18
- data/spec/integration/riak/bucket_types_spec.rb +0 -308
- data/spec/integration/riak/conflict_resolution_spec.rb +0 -96
- data/spec/integration/riak/counters_spec.rb +0 -36
- data/spec/integration/riak/crdt/configuration_spec.rb +0 -38
- data/spec/integration/riak/crdt_search_spec.rb +0 -176
- data/spec/integration/riak/crdt_spec.rb +0 -332
- data/spec/integration/riak/crdt_validation/map_spec.rb +0 -63
- data/spec/integration/riak/crdt_validation/set_spec.rb +0 -122
- data/spec/integration/riak/encodings/crdt_spec.rb +0 -122
- data/spec/integration/riak/encodings/kv_spec.rb +0 -87
- data/spec/integration/riak/encodings/yz_spec.rb +0 -142
- data/spec/integration/riak/preflist_spec.rb +0 -43
- data/spec/integration/riak/properties_spec.rb +0 -69
- data/spec/integration/riak/protobuffs/interrupted_request_spec.rb +0 -33
- data/spec/integration/riak/protobuffs/timeouts_spec.rb +0 -178
- data/spec/integration/riak/protobuffs_backends_spec.rb +0 -40
- data/spec/integration/riak/search_spec.rb +0 -104
- data/spec/integration/riak/secondary_index_spec.rb +0 -72
- data/spec/integration/riak/security_spec.rb +0 -105
- data/spec/integration/riak/threading_spec.rb +0 -154
- data/spec/integration/riak/time_series_spec.rb +0 -212
- data/spec/integration/yokozuna/index_spec.rb +0 -61
- data/spec/integration/yokozuna/queries_spec.rb +0 -115
- data/spec/integration/yokozuna/schema_spec.rb +0 -49
- data/spec/riak/beefcake_protobuffs_backend/bucket_properties_operator_spec.rb +0 -247
- data/spec/riak/beefcake_protobuffs_backend/crdt_operator_spec.rb +0 -244
- data/spec/riak/beefcake_protobuffs_backend/object_methods_spec.rb +0 -53
- data/spec/riak/beefcake_protobuffs_backend/protocol_spec.rb +0 -189
- data/spec/riak/beefcake_protobuffs_backend/ts_cell_codec_spec.rb +0 -124
- data/spec/riak/beefcake_protobuffs_backend_spec.rb +0 -162
- data/spec/riak/bucket_properties_spec.rb +0 -135
- data/spec/riak/bucket_spec.rb +0 -275
- data/spec/riak/bucket_type_spec.rb +0 -50
- data/spec/riak/bucket_typed/bucket_spec.rb +0 -78
- data/spec/riak/client_spec.rb +0 -304
- data/spec/riak/core_ext/to_param_spec.rb +0 -15
- data/spec/riak/counter_spec.rb +0 -122
- data/spec/riak/crdt/counter_spec.rb +0 -55
- data/spec/riak/crdt/hyper_log_log_spec.rb +0 -56
- data/spec/riak/crdt/inner_counter_spec.rb +0 -21
- data/spec/riak/crdt/inner_flag_spec.rb +0 -39
- data/spec/riak/crdt/inner_map_spec.rb +0 -47
- data/spec/riak/crdt/inner_register_spec.rb +0 -40
- data/spec/riak/crdt/inner_set_spec.rb +0 -33
- data/spec/riak/crdt/map_spec.rb +0 -78
- data/spec/riak/crdt/set_spec.rb +0 -61
- data/spec/riak/crdt/shared_examples.rb +0 -88
- data/spec/riak/crdt/typed_collection_spec.rb +0 -225
- data/spec/riak/escape_spec.rb +0 -72
- data/spec/riak/feature_detection_spec.rb +0 -77
- data/spec/riak/index_collection_spec.rb +0 -53
- data/spec/riak/instrumentation_spec.rb +0 -124
- data/spec/riak/link_spec.rb +0 -85
- data/spec/riak/list_buckets_spec.rb +0 -41
- data/spec/riak/map_reduce/filter_builder_spec.rb +0 -32
- data/spec/riak/map_reduce/phase_spec.rb +0 -142
- data/spec/riak/map_reduce_spec.rb +0 -434
- data/spec/riak/multiget_spec.rb +0 -81
- data/spec/riak/node_spec.rb +0 -26
- data/spec/riak/robject_spec.rb +0 -542
- data/spec/riak/search/index_spec.rb +0 -72
- data/spec/riak/search/query_spec.rb +0 -88
- data/spec/riak/search/result_collection_spec.rb +0 -89
- data/spec/riak/search/result_document_spec.rb +0 -106
- data/spec/riak/search/schema_spec.rb +0 -63
- data/spec/riak/search_spec.rb +0 -107
- data/spec/riak/secondary_index_spec.rb +0 -225
- data/spec/riak/serializers_spec.rb +0 -121
- data/spec/riak/stamp_spec.rb +0 -54
- data/spec/riak/time_series/deletion_spec.rb +0 -33
- data/spec/riak/time_series/listing_spec.rb +0 -51
- data/spec/riak/time_series/submission_spec.rb +0 -35
- data/spec/riak/util/gzip_spec.rb +0 -49
- data/spec/riak/walk_spec_spec.rb +0 -203
- data/spec/spec_helper.rb +0 -67
- data/spec/support/certs/README.md +0 -13
- data/spec/support/certs/ca.crt +0 -21
- data/spec/support/certs/client.crl +0 -13
- data/spec/support/certs/client.crt +0 -94
- data/spec/support/certs/client.csr +0 -18
- data/spec/support/certs/client.key +0 -27
- data/spec/support/certs/empty_ca.crt +0 -21
- data/spec/support/certs/server.crl +0 -13
- data/spec/support/certs/server.crt +0 -94
- data/spec/support/certs/server.key +0 -27
- data/spec/support/crdt_search_config.rb +0 -112
- data/spec/support/crdt_search_fixtures.rb +0 -42
- data/spec/support/integration_setup.rb +0 -10
- data/spec/support/search_config.rb +0 -83
- data/spec/support/search_corpus_setup.rb +0 -39
- data/spec/support/test_client.rb +0 -52
- data/spec/support/test_client.yml.example +0 -10
- data/spec/support/unified_backend_examples.rb +0 -402
- data/spec/support/version_filter.rb +0 -12
- data/spec/support/wait_until.rb +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz: '
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '09590439d14435acfae40911db99ab5197347c6a'
|
4
|
+
data.tar.gz: 7163236a32b4c608810a5ecf0eb1278a59c9919a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 32fddd934fba224a17dfc5f573438288912de3a3ce862202ba8af33ebd1b3a3aba129c51d715ad21a83a3cae2795be18e95e4cdd7dc73dd7857265d2efde9cc9
|
7
|
+
data.tar.gz: 667bff6476961fffb546bc1c49844660a034fb314dd2970c413b07c534cb11ae0ed0c536f57535f75697d7fcdd1936cc441c98713e47ba45103a39c83d362966
|
data/README.md
CHANGED
@@ -684,6 +684,7 @@ Thank you to all of our contributors!
|
|
684
684
|
* [John Leach](https://github.com/johnl)
|
685
685
|
* [John Lynch](https://github.com/johnthethird)
|
686
686
|
* Jordan Goldstein
|
687
|
+
* [Michael Grosser](https://github.com/grosser)
|
687
688
|
* [Josh Nichols](https://github.com/technicalpickles)
|
688
689
|
* [Justin Pease](https://github.com/jpease)
|
689
690
|
* [Kazuhiro Suzuki](https://github.com/ksauzz)
|
data/RELNOTES.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# Riak Ruby Client Release Notes
|
2
2
|
|
3
|
+
## [`2.6.0` Release - 2016-12-14](https://github.com/basho/riak-ruby-client/issues?q=milestone%3Ariak-ruby-client-2.6.0)
|
4
|
+
* Riak TS 1.5 support
|
5
|
+
|
3
6
|
## [`2.5.0` Release - 2016-11-16](https://github.com/basho/riak-ruby-client/issues?q=milestone%3Ariak-ruby-client-2.5.0)
|
4
7
|
|
5
8
|
Version `2.5.0` adds support for the HyperLogLog data type in Riak 2.2.0.
|
data/lib/riak/bucket.rb
CHANGED
@@ -114,7 +114,7 @@ module Riak
|
|
114
114
|
# @return [Hash<String, Riak::RObject>] hash of keys to objects
|
115
115
|
def get_many(keys)
|
116
116
|
pairs = keys.map{|k| [self, k]}
|
117
|
-
results = Multiget.
|
117
|
+
results = Multiget.perform @client, pairs
|
118
118
|
results.keys.inject(Hash.new) do |mem, var|
|
119
119
|
mem[var[1]] = results[var]
|
120
120
|
mem
|
data/lib/riak/client.rb
CHANGED
@@ -18,6 +18,7 @@ require 'riak/bucket'
|
|
18
18
|
require 'riak/bucket_properties'
|
19
19
|
require 'riak/bucket_type'
|
20
20
|
require 'riak/multiget'
|
21
|
+
require 'riak/multiexist'
|
21
22
|
require 'riak/secondary_index'
|
22
23
|
require 'riak/search'
|
23
24
|
require 'riak/stamp'
|
@@ -69,7 +70,10 @@ module Riak
|
|
69
70
|
attr_reader :protobuffs_pool
|
70
71
|
|
71
72
|
# @return [Integer] The number of threads for multiget requests
|
72
|
-
attr_reader :
|
73
|
+
attr_reader :multi_threads
|
74
|
+
|
75
|
+
# @deprecated use multi_threads
|
76
|
+
alias_method :multiget_threads, :multi_threads
|
73
77
|
|
74
78
|
# @return [Hash] The authentication information this client will use.
|
75
79
|
attr_reader :authentication
|
@@ -123,7 +127,7 @@ module Riak
|
|
123
127
|
|
124
128
|
self.protobuffs_backend = options[:protobuffs_backend] || :Beefcake
|
125
129
|
self.client_id = options[:client_id] if options[:client_id]
|
126
|
-
self.
|
130
|
+
self.multi_threads = options[:multi_threads] || options[:multiget_threads]
|
127
131
|
@authentication = options[:authentication] && options[:authentication].symbolize_keys
|
128
132
|
self.max_retries = options[:max_retries] || 2
|
129
133
|
@connect_timeout = options[:connect_timeout]
|
@@ -195,20 +199,23 @@ module Riak
|
|
195
199
|
# If set to nil, defaults to twice the number of nodes.
|
196
200
|
# @param [Integer] count The number of threads to use.
|
197
201
|
# @raise [ArgumentError] when a non-nil, non-positive-Integer count is given
|
198
|
-
def
|
202
|
+
def multi_threads=(count)
|
199
203
|
if count.nil?
|
200
|
-
@
|
204
|
+
@multi_threads = nodes.length * 2
|
201
205
|
return
|
202
206
|
end
|
203
207
|
|
204
208
|
if count.is_a?(Integer) && count > 0
|
205
|
-
@
|
209
|
+
@multi_threads = count
|
206
210
|
return
|
207
211
|
end
|
208
212
|
|
209
|
-
raise ArgumentError, t("invalid_multiget_thread_count")
|
213
|
+
raise ArgumentError, t("invalid_multiget_thread_count") # TODO: rename to invalid_multi_thread_count
|
210
214
|
end
|
211
215
|
|
216
|
+
# @deprecated use multi_threads=
|
217
|
+
alias_method :multiget_threads=, :multi_threads=
|
218
|
+
|
212
219
|
# Set the client ID for this client. Must be a string or Fixnum value 0 =<
|
213
220
|
# value < MAX_CLIENT_ID.
|
214
221
|
# @param [String, Fixnum] value The internal client ID used by Riak to route responses
|
@@ -275,7 +282,7 @@ module Riak
|
|
275
282
|
|
276
283
|
# Get multiple objects in parallel.
|
277
284
|
def get_many(pairs)
|
278
|
-
Multiget.
|
285
|
+
Multiget.perform self, pairs
|
279
286
|
end
|
280
287
|
|
281
288
|
# Get an object. See Bucket#get
|
@@ -684,6 +684,7 @@ class DtFetchResp
|
|
684
684
|
SET = 2
|
685
685
|
MAP = 3
|
686
686
|
HLL = 4
|
687
|
+
GSET = 5
|
687
688
|
end
|
688
689
|
end
|
689
690
|
|
@@ -695,6 +696,10 @@ class SetOp
|
|
695
696
|
include Beefcake::Message
|
696
697
|
end
|
697
698
|
|
699
|
+
class GSetOp
|
700
|
+
include Beefcake::Message
|
701
|
+
end
|
702
|
+
|
698
703
|
class HllOp
|
699
704
|
include Beefcake::Message
|
700
705
|
end
|
@@ -757,6 +762,7 @@ class DtValue
|
|
757
762
|
repeated :set_value, :bytes, 2
|
758
763
|
repeated :map_value, MapEntry, 3
|
759
764
|
optional :hll_value, :uint64, 4
|
765
|
+
repeated :gset_value, :bytes, 5
|
760
766
|
end
|
761
767
|
|
762
768
|
class DtFetchResp
|
@@ -774,6 +780,10 @@ class SetOp
|
|
774
780
|
repeated :removes, :bytes, 2
|
775
781
|
end
|
776
782
|
|
783
|
+
class GSetOp
|
784
|
+
repeated :adds, :bytes, 1
|
785
|
+
end
|
786
|
+
|
777
787
|
class HllOp
|
778
788
|
repeated :adds, :bytes, 1
|
779
789
|
end
|
@@ -797,6 +807,7 @@ class DtOp
|
|
797
807
|
optional :set_op, SetOp, 2
|
798
808
|
optional :map_op, MapOp, 3
|
799
809
|
optional :hll_op, HllOp, 4
|
810
|
+
optional :gset_op, GSetOp, 5
|
800
811
|
end
|
801
812
|
|
802
813
|
class DtUpdateReq
|
@@ -822,6 +833,7 @@ class DtUpdateResp
|
|
822
833
|
repeated :set_value, :bytes, 4
|
823
834
|
repeated :map_value, MapEntry, 5
|
824
835
|
optional :hll_value, :uint64, 6
|
836
|
+
repeated :gset_value, :bytes, 7
|
825
837
|
end
|
826
838
|
## Generated from riak_ts.proto
|
827
839
|
require "beefcake"
|
@@ -833,6 +845,7 @@ module TsColumnType
|
|
833
845
|
DOUBLE = 2
|
834
846
|
TIMESTAMP = 3
|
835
847
|
BOOLEAN = 4
|
848
|
+
BLOB = 5
|
836
849
|
end
|
837
850
|
|
838
851
|
class TsQueryReq
|
data/lib/riak/multi.rb
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
require 'riak/client'
|
2
|
+
require 'riak/bucket'
|
3
|
+
|
4
|
+
module Riak
|
5
|
+
# Coordinates a parallel operation for multiple keys.
|
6
|
+
class Multi
|
7
|
+
include Util::Translation
|
8
|
+
|
9
|
+
# @return [Riak::Client] the associated client
|
10
|
+
attr_reader :client
|
11
|
+
|
12
|
+
# @return [Array<Bucket, String>] fetch_list an {Array} of {Bucket} and {String} keys
|
13
|
+
attr_reader :keys
|
14
|
+
|
15
|
+
# @return [Hash<fetch_list_entry, RObject] result_hash a {Hash} of {Bucket} and {String} key pairs to {RObject} instances
|
16
|
+
attr_accessor :result_hash
|
17
|
+
|
18
|
+
# @return [Integer] The number of threads to use
|
19
|
+
attr_accessor :thread_count
|
20
|
+
|
21
|
+
# Perform a Riak Multi operation.
|
22
|
+
# @param [Client] client the {Riak::Client} that will perform the operation
|
23
|
+
# @param [Array<Bucket, String>] keys an {Array} of {Bucket} and {String} keys to work with
|
24
|
+
# @return [Hash<key, RObject] result_hash a {Hash} of {Bucket} and {String} key pairs to {RObject} instances
|
25
|
+
def self.perform(client, keys)
|
26
|
+
multi = new client, keys
|
27
|
+
multi.perform
|
28
|
+
multi.results
|
29
|
+
end
|
30
|
+
|
31
|
+
# Create a Riak Multi operation.
|
32
|
+
# @param [Client] client the {Riak::Client} that will perform the multiget
|
33
|
+
# @param [Array<Bucket, String>] keys an {Array} of {Bucket} and {String} keys to work on
|
34
|
+
# @raise [ArgumentError] when a non-positive-Integer count is given for threads
|
35
|
+
def initialize(client, keys)
|
36
|
+
raise ArgumentError, t('client_type', :client => client.inspect) unless client.is_a? Riak::Client
|
37
|
+
raise ArgumentError, t('array_type', :array => keys.inspect) unless keys.is_a? Array
|
38
|
+
|
39
|
+
self.thread_count = client.multi_threads
|
40
|
+
validate_keys keys
|
41
|
+
@client = client
|
42
|
+
@keys = keys.uniq
|
43
|
+
self.result_hash = {}
|
44
|
+
@finished = false
|
45
|
+
end
|
46
|
+
|
47
|
+
# Starts the parallelized operation
|
48
|
+
def perform
|
49
|
+
queue = keys.dup
|
50
|
+
queue_mutex = Mutex.new
|
51
|
+
result_mutex = Mutex.new
|
52
|
+
|
53
|
+
@threads = 1.upto(thread_count).map do |_node|
|
54
|
+
Thread.new do
|
55
|
+
loop do
|
56
|
+
pair = queue_mutex.synchronize do
|
57
|
+
queue.shift
|
58
|
+
end
|
59
|
+
|
60
|
+
break if pair.nil?
|
61
|
+
|
62
|
+
found = work(*pair)
|
63
|
+
result_mutex.synchronize do
|
64
|
+
result_hash[pair] = found
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def results
|
72
|
+
wait_for_finish
|
73
|
+
result_hash
|
74
|
+
end
|
75
|
+
|
76
|
+
def finished?
|
77
|
+
@finished ||= @threads && @threads.none?(&:alive?)
|
78
|
+
end
|
79
|
+
alias :finished :finished? # deprecated
|
80
|
+
|
81
|
+
def wait_for_finish
|
82
|
+
return if finished?
|
83
|
+
@threads.each(&:join)
|
84
|
+
@finished = true
|
85
|
+
end
|
86
|
+
|
87
|
+
private
|
88
|
+
|
89
|
+
def work(_bucket, _key)
|
90
|
+
raise NotImplementedError
|
91
|
+
end
|
92
|
+
|
93
|
+
def validate_keys(keys)
|
94
|
+
erroneous = keys.detect do |bucket, key|
|
95
|
+
!bucket.is_a?(Bucket) || !key.is_a?(String)
|
96
|
+
end
|
97
|
+
return unless erroneous
|
98
|
+
raise ArgumentError, t('fetch_list_type', problem: erroneous) # TODO: should be keys_type
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'riak/client'
|
2
|
+
require 'riak/bucket'
|
3
|
+
require 'riak/multi'
|
4
|
+
|
5
|
+
module Riak
|
6
|
+
# Coordinates a parallel exist? operation for multiple keys.
|
7
|
+
class Multiexist < Multi
|
8
|
+
private
|
9
|
+
|
10
|
+
def work(bucket, key)
|
11
|
+
bucket.exists?(key)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/riak/multiget.rb
CHANGED
@@ -1,122 +1,22 @@
|
|
1
1
|
require 'riak/client'
|
2
2
|
require 'riak/bucket'
|
3
|
+
require 'riak/multi'
|
3
4
|
|
4
5
|
module Riak
|
5
|
-
# Coordinates a parallel fetch operation for multiple
|
6
|
-
class Multiget
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
attr_reader :client
|
11
|
-
|
12
|
-
# @return [Array<Bucket, String>] fetch_list an {Array} of {Bucket} and {String} keys to fetch
|
13
|
-
attr_reader :fetch_list
|
14
|
-
|
15
|
-
# @return [Hash<fetch_list_entry, RObject] result_hash a {Hash} of {Bucket} and {String} key pairs to {RObject} instances
|
16
|
-
attr_accessor :result_hash
|
17
|
-
|
18
|
-
# @return [Boolean] finished if the fetch operation has completed
|
19
|
-
attr_reader :finished
|
20
|
-
|
21
|
-
# @return [Integer] The number of threads to use
|
22
|
-
attr_accessor :thread_count
|
23
|
-
|
24
|
-
# Perform a Riak Multiget operation.
|
25
|
-
# @param [Client] client the {Riak::Client} that will perform the multiget
|
26
|
-
# @param [Array<Bucket, String>] fetch_list an {Array} of {Bucket} and {String} keys to fetch
|
27
|
-
# @return [Hash<fetch_list_entry, RObject] result_hash a {Hash} of {Bucket} and {String} key pairs to {RObject} instances
|
28
|
-
def self.get_all(client, fetch_list)
|
29
|
-
multi = new client, fetch_list
|
30
|
-
multi.fetch
|
31
|
-
multi.results
|
32
|
-
end
|
33
|
-
|
34
|
-
# Create a Riak Multiget operation.
|
35
|
-
# @param [Client] client the {Riak::Client} that will perform the multiget
|
36
|
-
# @param [Array<Bucket, String>] fetch_list an {Array} of {Bucket} and {String} keys to fetch
|
37
|
-
def initialize(client, fetch_list)
|
38
|
-
raise ArgumentError, t('client_type', :client => client.inspect) unless client.is_a? Riak::Client
|
39
|
-
raise ArgumentError, t('array_type', :array => fetch_list.inspect) unless fetch_list.is_a? Array
|
40
|
-
|
41
|
-
validate_fetch_list fetch_list
|
42
|
-
@client, @fetch_list = client, fetch_list.uniq
|
43
|
-
self.result_hash = Hash.new
|
44
|
-
@finished = false
|
45
|
-
self.thread_count = client.multiget_threads
|
46
|
-
end
|
47
|
-
|
48
|
-
# Starts the parallelized fetch operation
|
49
|
-
# @raise [ArgumentError] when a non-positive-Integer count is given
|
50
|
-
def fetch
|
51
|
-
queue = fetch_list.dup
|
52
|
-
queue_mutex = Mutex.new
|
53
|
-
result_mutex = Mutex.new
|
54
|
-
|
55
|
-
unless thread_count.is_a?(Integer) && thread_count > 0
|
56
|
-
raise ArgumentError, t("invalid_multiget_thread_count")
|
57
|
-
end
|
58
|
-
|
59
|
-
@threads = 1.upto(thread_count).map do |_node|
|
60
|
-
Thread.new do
|
61
|
-
loop do
|
62
|
-
pair = queue_mutex.synchronize do
|
63
|
-
queue.shift
|
64
|
-
end
|
65
|
-
|
66
|
-
break if pair.nil?
|
67
|
-
|
68
|
-
found = attempt_fetch(*pair)
|
69
|
-
result_mutex.synchronize do
|
70
|
-
result_hash[pair] = found
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
def results
|
78
|
-
wait_for_finish
|
79
|
-
result_hash
|
80
|
-
end
|
81
|
-
|
82
|
-
def finished?
|
83
|
-
set_finished_for_thread_liveness
|
84
|
-
finished
|
85
|
-
end
|
86
|
-
|
87
|
-
def wait_for_finish
|
88
|
-
return if finished?
|
89
|
-
@threads.each {|t| t.join }
|
90
|
-
@finished = true
|
6
|
+
# Coordinates a parallel fetch operation for multiple keys.
|
7
|
+
class Multiget < Multi
|
8
|
+
# @deprecated use perform
|
9
|
+
class << self
|
10
|
+
alias_method :get_all, :perform
|
91
11
|
end
|
92
12
|
|
93
13
|
private
|
94
14
|
|
95
|
-
def
|
15
|
+
def work(bucket, key)
|
96
16
|
bucket[key]
|
97
17
|
rescue Riak::FailedRequest => e
|
98
18
|
raise e unless e.not_found?
|
99
19
|
nil
|
100
20
|
end
|
101
|
-
|
102
|
-
def set_finished_for_thread_liveness
|
103
|
-
return if @finished # already done
|
104
|
-
|
105
|
-
all_dead = @threads.none? {|t| t.alive? }
|
106
|
-
return unless all_dead # still working
|
107
|
-
|
108
|
-
@finished = true
|
109
|
-
return
|
110
|
-
end
|
111
|
-
|
112
|
-
def validate_fetch_list(fetch_list)
|
113
|
-
return unless erroneous = fetch_list.detect do |e|
|
114
|
-
bucket, key = e
|
115
|
-
next true unless bucket.is_a? Bucket
|
116
|
-
next true unless key.is_a? String
|
117
|
-
end
|
118
|
-
|
119
|
-
raise ArgumentError, t('fetch_list_type', :problem => erroneous)
|
120
|
-
end
|
121
21
|
end
|
122
22
|
end
|
data/lib/riak/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: riak-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bryce Kerley
|
8
|
+
- Luke Bakken
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2016-
|
12
|
+
date: 2016-12-14 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: activesupport
|
@@ -95,19 +96,19 @@ dependencies:
|
|
95
96
|
- !ruby/object:Gem::Version
|
96
97
|
version: 0.40.0
|
97
98
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
99
|
+
name: single_cov
|
99
100
|
requirement: !ruby/object:Gem::Requirement
|
100
101
|
requirements:
|
101
|
-
- -
|
102
|
+
- - '='
|
102
103
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
104
|
+
version: 0.5.7
|
104
105
|
type: :development
|
105
106
|
prerelease: false
|
106
107
|
version_requirements: !ruby/object:Gem::Requirement
|
107
108
|
requirements:
|
108
|
-
- -
|
109
|
+
- - '='
|
109
110
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
111
|
+
version: 0.5.7
|
111
112
|
- !ruby/object:Gem::Dependency
|
112
113
|
name: yard
|
113
114
|
requirement: !ruby/object:Gem::Requirement
|
@@ -196,20 +197,14 @@ description: riak-client is a rich client for Riak, the distributed database by
|
|
196
197
|
It supports the full HTTP and Protocol Buffers interfaces including storage operations,
|
197
198
|
bucket configuration, link-walking, secondary indexes and map-reduce.
|
198
199
|
email:
|
199
|
-
-
|
200
|
+
- lbakken@basho.com
|
200
201
|
executables: []
|
201
202
|
extensions: []
|
202
203
|
extra_rdoc_files: []
|
203
204
|
files:
|
204
|
-
- ".document"
|
205
|
-
- ".gitignore"
|
206
|
-
- ".rspec"
|
207
|
-
- Gemfile
|
208
|
-
- Guardfile
|
209
205
|
- LICENSE.md
|
210
206
|
- README.md
|
211
207
|
- RELNOTES.md
|
212
|
-
- Rakefile
|
213
208
|
- lib/riak.rb
|
214
209
|
- lib/riak/bucket.rb
|
215
210
|
- lib/riak/bucket_properties.rb
|
@@ -294,6 +289,8 @@ files:
|
|
294
289
|
- lib/riak/map_reduce/phase.rb
|
295
290
|
- lib/riak/map_reduce/results.rb
|
296
291
|
- lib/riak/map_reduce_error.rb
|
292
|
+
- lib/riak/multi.rb
|
293
|
+
- lib/riak/multiexist.rb
|
297
294
|
- lib/riak/multiget.rb
|
298
295
|
- lib/riak/preflist_item.rb
|
299
296
|
- lib/riak/rcontent.rb
|
@@ -323,116 +320,6 @@ files:
|
|
323
320
|
- lib/riak/util/translation.rb
|
324
321
|
- lib/riak/version.rb
|
325
322
|
- lib/riak/walk_spec.rb
|
326
|
-
- riak-client.gemspec
|
327
|
-
- spec/failover/failover.rb
|
328
|
-
- spec/fixtures/bitcask.txt
|
329
|
-
- spec/fixtures/cat.jpg
|
330
|
-
- spec/fixtures/multipart-basic-conflict.txt
|
331
|
-
- spec/fixtures/multipart-blank.txt
|
332
|
-
- spec/fixtures/multipart-mapreduce.txt
|
333
|
-
- spec/fixtures/multipart-with-body.txt
|
334
|
-
- spec/fixtures/multipart-with-marked-tombstones.txt
|
335
|
-
- spec/fixtures/multipart-with-unmarked-tombstone.txt
|
336
|
-
- spec/fixtures/server.cert.crt
|
337
|
-
- spec/fixtures/server.cert.key
|
338
|
-
- spec/fixtures/test.pem
|
339
|
-
- spec/fixtures/yz_schema_template.xml
|
340
|
-
- spec/integration/riak/bucket_types_spec.rb
|
341
|
-
- spec/integration/riak/conflict_resolution_spec.rb
|
342
|
-
- spec/integration/riak/counters_spec.rb
|
343
|
-
- spec/integration/riak/crdt/configuration_spec.rb
|
344
|
-
- spec/integration/riak/crdt_search_spec.rb
|
345
|
-
- spec/integration/riak/crdt_spec.rb
|
346
|
-
- spec/integration/riak/crdt_validation/map_spec.rb
|
347
|
-
- spec/integration/riak/crdt_validation/set_spec.rb
|
348
|
-
- spec/integration/riak/encodings/crdt_spec.rb
|
349
|
-
- spec/integration/riak/encodings/kv_spec.rb
|
350
|
-
- spec/integration/riak/encodings/yz_spec.rb
|
351
|
-
- spec/integration/riak/preflist_spec.rb
|
352
|
-
- spec/integration/riak/properties_spec.rb
|
353
|
-
- spec/integration/riak/protobuffs/interrupted_request_spec.rb
|
354
|
-
- spec/integration/riak/protobuffs/timeouts_spec.rb
|
355
|
-
- spec/integration/riak/protobuffs_backends_spec.rb
|
356
|
-
- spec/integration/riak/search_spec.rb
|
357
|
-
- spec/integration/riak/secondary_index_spec.rb
|
358
|
-
- spec/integration/riak/security_spec.rb
|
359
|
-
- spec/integration/riak/threading_spec.rb
|
360
|
-
- spec/integration/riak/time_series_spec.rb
|
361
|
-
- spec/integration/yokozuna/index_spec.rb
|
362
|
-
- spec/integration/yokozuna/queries_spec.rb
|
363
|
-
- spec/integration/yokozuna/schema_spec.rb
|
364
|
-
- spec/riak/beefcake_protobuffs_backend/bucket_properties_operator_spec.rb
|
365
|
-
- spec/riak/beefcake_protobuffs_backend/crdt_operator_spec.rb
|
366
|
-
- spec/riak/beefcake_protobuffs_backend/object_methods_spec.rb
|
367
|
-
- spec/riak/beefcake_protobuffs_backend/protocol_spec.rb
|
368
|
-
- spec/riak/beefcake_protobuffs_backend/ts_cell_codec_spec.rb
|
369
|
-
- spec/riak/beefcake_protobuffs_backend_spec.rb
|
370
|
-
- spec/riak/bucket_properties_spec.rb
|
371
|
-
- spec/riak/bucket_spec.rb
|
372
|
-
- spec/riak/bucket_type_spec.rb
|
373
|
-
- spec/riak/bucket_typed/bucket_spec.rb
|
374
|
-
- spec/riak/client_spec.rb
|
375
|
-
- spec/riak/core_ext/to_param_spec.rb
|
376
|
-
- spec/riak/counter_spec.rb
|
377
|
-
- spec/riak/crdt/counter_spec.rb
|
378
|
-
- spec/riak/crdt/hyper_log_log_spec.rb
|
379
|
-
- spec/riak/crdt/inner_counter_spec.rb
|
380
|
-
- spec/riak/crdt/inner_flag_spec.rb
|
381
|
-
- spec/riak/crdt/inner_map_spec.rb
|
382
|
-
- spec/riak/crdt/inner_register_spec.rb
|
383
|
-
- spec/riak/crdt/inner_set_spec.rb
|
384
|
-
- spec/riak/crdt/map_spec.rb
|
385
|
-
- spec/riak/crdt/set_spec.rb
|
386
|
-
- spec/riak/crdt/shared_examples.rb
|
387
|
-
- spec/riak/crdt/typed_collection_spec.rb
|
388
|
-
- spec/riak/escape_spec.rb
|
389
|
-
- spec/riak/feature_detection_spec.rb
|
390
|
-
- spec/riak/index_collection_spec.rb
|
391
|
-
- spec/riak/instrumentation_spec.rb
|
392
|
-
- spec/riak/link_spec.rb
|
393
|
-
- spec/riak/list_buckets_spec.rb
|
394
|
-
- spec/riak/map_reduce/filter_builder_spec.rb
|
395
|
-
- spec/riak/map_reduce/phase_spec.rb
|
396
|
-
- spec/riak/map_reduce_spec.rb
|
397
|
-
- spec/riak/multiget_spec.rb
|
398
|
-
- spec/riak/node_spec.rb
|
399
|
-
- spec/riak/robject_spec.rb
|
400
|
-
- spec/riak/search/index_spec.rb
|
401
|
-
- spec/riak/search/query_spec.rb
|
402
|
-
- spec/riak/search/result_collection_spec.rb
|
403
|
-
- spec/riak/search/result_document_spec.rb
|
404
|
-
- spec/riak/search/schema_spec.rb
|
405
|
-
- spec/riak/search_spec.rb
|
406
|
-
- spec/riak/secondary_index_spec.rb
|
407
|
-
- spec/riak/serializers_spec.rb
|
408
|
-
- spec/riak/stamp_spec.rb
|
409
|
-
- spec/riak/time_series/deletion_spec.rb
|
410
|
-
- spec/riak/time_series/listing_spec.rb
|
411
|
-
- spec/riak/time_series/submission_spec.rb
|
412
|
-
- spec/riak/util/gzip_spec.rb
|
413
|
-
- spec/riak/walk_spec_spec.rb
|
414
|
-
- spec/spec_helper.rb
|
415
|
-
- spec/support/certs/README.md
|
416
|
-
- spec/support/certs/ca.crt
|
417
|
-
- spec/support/certs/client.crl
|
418
|
-
- spec/support/certs/client.crt
|
419
|
-
- spec/support/certs/client.csr
|
420
|
-
- spec/support/certs/client.key
|
421
|
-
- spec/support/certs/empty_ca.crt
|
422
|
-
- spec/support/certs/server.crl
|
423
|
-
- spec/support/certs/server.crt
|
424
|
-
- spec/support/certs/server.key
|
425
|
-
- spec/support/crdt_search_config.rb
|
426
|
-
- spec/support/crdt_search_fixtures.rb
|
427
|
-
- spec/support/integration_setup.rb
|
428
|
-
- spec/support/search_config.rb
|
429
|
-
- spec/support/search_corpus_setup.rb
|
430
|
-
- spec/support/test_client.rb
|
431
|
-
- spec/support/test_client.yml
|
432
|
-
- spec/support/test_client.yml.example
|
433
|
-
- spec/support/unified_backend_examples.rb
|
434
|
-
- spec/support/version_filter.rb
|
435
|
-
- spec/support/wait_until.rb
|
436
323
|
homepage: http://github.com/basho/riak-ruby-client
|
437
324
|
licenses:
|
438
325
|
- Apache-2.0
|
@@ -457,113 +344,4 @@ rubygems_version: 2.6.8
|
|
457
344
|
signing_key:
|
458
345
|
specification_version: 4
|
459
346
|
summary: riak-client is a rich client for Riak, the distributed database by Basho.
|
460
|
-
test_files:
|
461
|
-
- spec/failover/failover.rb
|
462
|
-
- spec/fixtures/bitcask.txt
|
463
|
-
- spec/fixtures/cat.jpg
|
464
|
-
- spec/fixtures/multipart-basic-conflict.txt
|
465
|
-
- spec/fixtures/multipart-blank.txt
|
466
|
-
- spec/fixtures/multipart-mapreduce.txt
|
467
|
-
- spec/fixtures/multipart-with-body.txt
|
468
|
-
- spec/fixtures/multipart-with-marked-tombstones.txt
|
469
|
-
- spec/fixtures/multipart-with-unmarked-tombstone.txt
|
470
|
-
- spec/fixtures/server.cert.crt
|
471
|
-
- spec/fixtures/server.cert.key
|
472
|
-
- spec/fixtures/test.pem
|
473
|
-
- spec/fixtures/yz_schema_template.xml
|
474
|
-
- spec/integration/riak/bucket_types_spec.rb
|
475
|
-
- spec/integration/riak/conflict_resolution_spec.rb
|
476
|
-
- spec/integration/riak/counters_spec.rb
|
477
|
-
- spec/integration/riak/crdt/configuration_spec.rb
|
478
|
-
- spec/integration/riak/crdt_search_spec.rb
|
479
|
-
- spec/integration/riak/crdt_spec.rb
|
480
|
-
- spec/integration/riak/crdt_validation/map_spec.rb
|
481
|
-
- spec/integration/riak/crdt_validation/set_spec.rb
|
482
|
-
- spec/integration/riak/encodings/crdt_spec.rb
|
483
|
-
- spec/integration/riak/encodings/kv_spec.rb
|
484
|
-
- spec/integration/riak/encodings/yz_spec.rb
|
485
|
-
- spec/integration/riak/preflist_spec.rb
|
486
|
-
- spec/integration/riak/properties_spec.rb
|
487
|
-
- spec/integration/riak/protobuffs/interrupted_request_spec.rb
|
488
|
-
- spec/integration/riak/protobuffs/timeouts_spec.rb
|
489
|
-
- spec/integration/riak/protobuffs_backends_spec.rb
|
490
|
-
- spec/integration/riak/search_spec.rb
|
491
|
-
- spec/integration/riak/secondary_index_spec.rb
|
492
|
-
- spec/integration/riak/security_spec.rb
|
493
|
-
- spec/integration/riak/threading_spec.rb
|
494
|
-
- spec/integration/riak/time_series_spec.rb
|
495
|
-
- spec/integration/yokozuna/index_spec.rb
|
496
|
-
- spec/integration/yokozuna/queries_spec.rb
|
497
|
-
- spec/integration/yokozuna/schema_spec.rb
|
498
|
-
- spec/riak/beefcake_protobuffs_backend/bucket_properties_operator_spec.rb
|
499
|
-
- spec/riak/beefcake_protobuffs_backend/crdt_operator_spec.rb
|
500
|
-
- spec/riak/beefcake_protobuffs_backend/object_methods_spec.rb
|
501
|
-
- spec/riak/beefcake_protobuffs_backend/protocol_spec.rb
|
502
|
-
- spec/riak/beefcake_protobuffs_backend/ts_cell_codec_spec.rb
|
503
|
-
- spec/riak/beefcake_protobuffs_backend_spec.rb
|
504
|
-
- spec/riak/bucket_properties_spec.rb
|
505
|
-
- spec/riak/bucket_spec.rb
|
506
|
-
- spec/riak/bucket_type_spec.rb
|
507
|
-
- spec/riak/bucket_typed/bucket_spec.rb
|
508
|
-
- spec/riak/client_spec.rb
|
509
|
-
- spec/riak/core_ext/to_param_spec.rb
|
510
|
-
- spec/riak/counter_spec.rb
|
511
|
-
- spec/riak/crdt/counter_spec.rb
|
512
|
-
- spec/riak/crdt/hyper_log_log_spec.rb
|
513
|
-
- spec/riak/crdt/inner_counter_spec.rb
|
514
|
-
- spec/riak/crdt/inner_flag_spec.rb
|
515
|
-
- spec/riak/crdt/inner_map_spec.rb
|
516
|
-
- spec/riak/crdt/inner_register_spec.rb
|
517
|
-
- spec/riak/crdt/inner_set_spec.rb
|
518
|
-
- spec/riak/crdt/map_spec.rb
|
519
|
-
- spec/riak/crdt/set_spec.rb
|
520
|
-
- spec/riak/crdt/shared_examples.rb
|
521
|
-
- spec/riak/crdt/typed_collection_spec.rb
|
522
|
-
- spec/riak/escape_spec.rb
|
523
|
-
- spec/riak/feature_detection_spec.rb
|
524
|
-
- spec/riak/index_collection_spec.rb
|
525
|
-
- spec/riak/instrumentation_spec.rb
|
526
|
-
- spec/riak/link_spec.rb
|
527
|
-
- spec/riak/list_buckets_spec.rb
|
528
|
-
- spec/riak/map_reduce/filter_builder_spec.rb
|
529
|
-
- spec/riak/map_reduce/phase_spec.rb
|
530
|
-
- spec/riak/map_reduce_spec.rb
|
531
|
-
- spec/riak/multiget_spec.rb
|
532
|
-
- spec/riak/node_spec.rb
|
533
|
-
- spec/riak/robject_spec.rb
|
534
|
-
- spec/riak/search/index_spec.rb
|
535
|
-
- spec/riak/search/query_spec.rb
|
536
|
-
- spec/riak/search/result_collection_spec.rb
|
537
|
-
- spec/riak/search/result_document_spec.rb
|
538
|
-
- spec/riak/search/schema_spec.rb
|
539
|
-
- spec/riak/search_spec.rb
|
540
|
-
- spec/riak/secondary_index_spec.rb
|
541
|
-
- spec/riak/serializers_spec.rb
|
542
|
-
- spec/riak/stamp_spec.rb
|
543
|
-
- spec/riak/time_series/deletion_spec.rb
|
544
|
-
- spec/riak/time_series/listing_spec.rb
|
545
|
-
- spec/riak/time_series/submission_spec.rb
|
546
|
-
- spec/riak/util/gzip_spec.rb
|
547
|
-
- spec/riak/walk_spec_spec.rb
|
548
|
-
- spec/spec_helper.rb
|
549
|
-
- spec/support/certs/README.md
|
550
|
-
- spec/support/certs/ca.crt
|
551
|
-
- spec/support/certs/client.crl
|
552
|
-
- spec/support/certs/client.crt
|
553
|
-
- spec/support/certs/client.csr
|
554
|
-
- spec/support/certs/client.key
|
555
|
-
- spec/support/certs/empty_ca.crt
|
556
|
-
- spec/support/certs/server.crl
|
557
|
-
- spec/support/certs/server.crt
|
558
|
-
- spec/support/certs/server.key
|
559
|
-
- spec/support/crdt_search_config.rb
|
560
|
-
- spec/support/crdt_search_fixtures.rb
|
561
|
-
- spec/support/integration_setup.rb
|
562
|
-
- spec/support/search_config.rb
|
563
|
-
- spec/support/search_corpus_setup.rb
|
564
|
-
- spec/support/test_client.rb
|
565
|
-
- spec/support/test_client.yml
|
566
|
-
- spec/support/test_client.yml.example
|
567
|
-
- spec/support/unified_backend_examples.rb
|
568
|
-
- spec/support/version_filter.rb
|
569
|
-
- spec/support/wait_until.rb
|
347
|
+
test_files: []
|