class Aerospike::ClientPolicy

Container object for client policy command.

Attributes

auth_mode[RW]
cluster_name[RW]
connection_queue_size[RW]
fail_if_not_connected[RW]
max_connections_per_node[RW]
min_connections_per_node[RW]
password[RW]
policies[RW]
rack_aware[RW]
rack_id[RW]
tend_interval[RW]
timeout[RW]
tls[RW]
user[RW]

Public Class Methods

new(opt={}) click to toggle source
# File lib/aerospike/policy/client_policy.rb, line 32
def initialize(opt={})
  # Initial host connection timeout in seconds. The timeout when opening a connection
  # to the server host for the first time.
  @timeout = opt[:timeout] || 1.0 # 1 second

  # Size of the Connection Queue cache.
  @connection_queue_size = opt[:connection_queue_size] || 64

  # Throw exception if host connection fails during add_host.
  @fail_if_not_connected = opt.has_key?(:fail_if_not_connected) ? opt[:fail_if_not_connected] : true

  # Tend interval in milliseconds; determines the interval at
  # which the client checks for cluster state changes. Minimum interval is 10ms.
  self.tend_interval = opt[:tend_interval] || 1000 # 1 second

  # Authentication mode
  @auth_mode = opt[:auth_mode] || AuthMode::INTERNAL

  # user name
  @user = opt[:user]

  # password
  @password = opt[:password]

  # Cluster Name
  @cluster_name = opt[:cluster_name]

  @tls = opt[:tls] || opt[:ssl_options]

  # Default Policies
  @policies = opt.fetch(:policies) { Hash.new }

  # Track server rack data.  This field is useful when directing read commands to the server node
  # that contains the key and exists on the same rack as the client.  This serves to lower cloud
  # provider costs when nodes are distributed across different racks/data centers.
  #
  # ClientPolicy#rack_id, Replica#PREFER_RACK and server rack
  # configuration must also be set to enable this functionality.
  @rack_aware = opt[:rack_aware] || false

  # Rack where this client instance resides.
  #
  # ClientPolicy#rack_aware, Replica#PREFER_RACK and server rack
  # configuration must also be set to enable this functionality.
  @rack_id = opt[:rack_id] || 0

  # Maximum number of synchronous connections allowed per server node.  Transactions will go
  # through retry logic and potentially fail with "ResultCode.NO_MORE_CONNECTIONS" if the maximum
  # number of connections would be exceeded.
  # The number of connections used per node depends on concurrent commands in progress
  # plus sub-commands used for parallel multi-node commands (batch, scan, and query).
  # One connection will be used for each command.
  # Default: 100
  @max_connections_per_node = opt[:max_connections_per_node] || 100

  # MinConnectionsPerNode specifies the minimum number of synchronous connections allowed per server node.
  # Preallocate min connections on client node creation.
  # The client will periodically allocate new connections if count falls below min connections.
  #
  # Server proto-fd-idle-ms may also need to be increased substantially if min connections are defined.
  # The proto-fd-idle-ms default directs the server to close connections that are idle for 60 seconds
  # which can defeat the purpose of keeping connections in reserve for a future burst of activity.
  #
  # Default: 0
  @min_connections_per_node = opt[:min_connections_per_node] || 0
end

Public Instance Methods

requires_authentication() click to toggle source
# File lib/aerospike/policy/client_policy.rb, line 99
def requires_authentication
  (@user && @user != '') || (@password && @password != '')
end
tend_interval=(interval) click to toggle source
# File lib/aerospike/policy/client_policy.rb, line 103
def tend_interval=(interval)
  if interval < 10
    Aerospike.logger.warn("Minimum tend interval is 10 milliseconds (client policy: #{interval}).")
    interval = 10
  end
  @tend_interval = interval
end