lib/aerospike/node/refresh/partitions.rb in aerospike-2.12.0 vs lib/aerospike/node/refresh/partitions.rb in aerospike-2.13.0
- old
+ new
@@ -1,8 +1,8 @@
# frozen_string_literal: true
-# Copyright 2018 Aerospike, Inc.
+# Copyright 2018-2020 Aerospike, Inc.
#
# Portions may be licensed to Aerospike, Inc. under one or more contributor
# license agreements.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
@@ -23,25 +23,16 @@
module Partitions
class << self
def call(node, peers)
return unless should_refresh?(node, peers)
- node.cluster.update_partitions(tokenizer(node), node)
+ Aerospike.logger.info("Updating partitions for node #{node.name}")
+ conn = node.tend_connection
+ parser = PartitionParser.new(node, conn)
+ node.cluster.update_partitions(parser)
rescue ::Aerospike::Exceptions::Aerospike => e
- node.tend_connection.close
+ conn.close
Refresh::Failed.(node, e)
- end
-
- # Return correct tokenizer depending on version
- def tokenizer(node)
- conn = node.tend_connection
- if node.use_new_info?
- Aerospike.logger.info("Updating partitions for node #{node.name} using new protocol")
- PartitionTokenizerNew.new(conn)
- else
- Aerospike.logger.info("Updating partitions for node #{node.name} using old protocol")
- PartitionTokenizerOld.new(conn)
- end
end
# Do not refresh partitions when node connection has already failed
# during this cluster tend iteration. Also, avoid "split cluster"
# case where this node thinks it's a 1-node cluster. Unchecked, such