riak-client 2.5.0 → 2.6.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.
- 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: []
|