Method: Aerospike::ClientPolicy#initialize

Defined in:
lib/aerospike/policy/client_policy.rb

#initialize(opt = {}) ⇒ ClientPolicy

Returns a new instance of ClientPolicy.



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# 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