redis-cluster-client 0.0.4 → 0.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0561fdd5885f8c6c5c5c100af032b867224eff3ed91b546b6885f8bf3bd76663
4
- data.tar.gz: 1ebe59416fb043af9da7a926cd338ac260ce1a46e5220b46f7a6744c8f1b8c2b
3
+ metadata.gz: 6fce5f4a15cfcab3d7cca37052e9f85ad45abcee8f4de9e458fc560a01382842
4
+ data.tar.gz: 2da9fb7a3ae8836dd7606fbfd05e33f423529716493d3bb8fccd6d01bae10bc3
5
5
  SHA512:
6
- metadata.gz: 86661400532550e005beb98e740e4939ffcf93c1b66fb47930bc2a5819f5dbba60e940c8e0183d312a6ce7cb55d1cc0634081029eb8e5c1b8f68ea2862d9e0df
7
- data.tar.gz: 3629f63ed379946bc8951c57ada535573130e8db504a2f5b7644ef9091408ac3223c5b0a260b13d6b84ab889b3e47c4571bbc10f5b21ceaf6758dc60c28a00b3
6
+ metadata.gz: fd4b929261fe0a50f4b13fe4963550e7b8c1197ee4f813a464b309140b29d7cc75a95259f100481d2f7e5a958a98608aca980e8308dca125200c1acb4e506e06
7
+ data.tar.gz: b41237f574ca12b3826e8d869f3ea3251a0acb41961fb009efe7bb5d2f07517b17cae80c5161da91603b4586a63beef11ba618b6386cfd684012cc7fa09752d1
@@ -129,19 +129,17 @@ class RedisClient
129
129
  def call_replica(method, *command, **kwargs, &block)
130
130
  return call_primary(method, *command, **kwargs, &block) if replica_disabled?
131
131
 
132
+ replica_node_keys = @replications.values.map(&:sample)
132
133
  try_map do |node_key, client|
133
- next if primary?(node_key)
134
+ next if primary?(node_key) || !replica_node_keys.include?(node_key)
134
135
 
135
136
  client.send(method, *command, **kwargs, &block)
136
137
  end.values
137
138
  end
138
139
 
139
140
  def scale_reading_clients
140
- clients = @clients.select do |node_key, _|
141
- replica_disabled? ? primary?(node_key) : replica?(node_key)
142
- end
143
-
144
- clients.values.sort_by do |client|
141
+ keys = replica_disabled? ? @replications.keys : @replications.values.map(&:first)
142
+ @clients.select { |k, _| keys.include?(k) }.values.sort_by do |client|
145
143
  ::RedisClient::Cluster::NodeKey.build_from_host_port(client.config.host, client.config.port)
146
144
  end
147
145
  end
@@ -184,7 +182,7 @@ class RedisClient
184
182
  end
185
183
 
186
184
  def replica?(node_key)
187
- !(@replications.nil? || @replications.size.zero?) && @replications[node_key].size.zero?
185
+ !(@replications.nil? || @replications.size.zero?) && !@replications.key?(node_key)
188
186
  end
189
187
 
190
188
  def build_slot_node_mappings(node_info)
@@ -203,7 +201,6 @@ class RedisClient
203
201
  node_info.each_with_object(Hash.new { |h, k| h[k] = [] }) do |info, acc|
204
202
  primary_info = dict[info[:primary_id]]
205
203
  acc[primary_info[:node_key]] << info[:node_key] unless primary_info.nil?
206
- acc[info[:node_key]]
207
204
  end
208
205
  end
209
206
 
@@ -40,13 +40,11 @@ class RedisClient
40
40
  @size.zero?
41
41
  end
42
42
 
43
- def execute # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
44
- all_replies = []
43
+ def execute # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
44
+ all_replies = Array.new(@size)
45
45
  threads = @grouped.map do |k, v|
46
46
  Thread.new(@client, k, v) do |client, node_key, rows|
47
47
  Thread.pass
48
-
49
- node_key = node_key.nil? ? client.instance_variable_get(:@node).primary_node_keys.sample : node_key
50
48
  replies = client.send(:find_node, node_key).pipelined do |pipeline|
51
49
  rows.each do |row|
52
50
  case row[1]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis-cluster-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taishi Kasuga
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-17 00:00:00.000000000 Z
11
+ date: 2022-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis-client