class Aerospike::Policy
Container object for client policy command.
Attributes
consistency_level[RW]
fail_on_filtered_out[RW]
filter_exp[RW]
max_retries[RW]
priority[RW]
read_touch_ttl_percent[RW]
replica[RW]
sleep_between_retries[RW]
socket_timeout[RW]
timeout[RW]
total_timeout[RW]
total_timeout=[RW]
use_compression[RW]
Public Class Methods
new(opt = {})
click to toggle source
# File lib/aerospike/policy/policy.rb, line 30 def initialize(opt = {}) # Container object for transaction policy attributes used in all database # operation calls. # Optional expression filter. If filter_exp exists and evaluates to false, the # transaction is ignored. # # Default: nil # # ==== Examples: # # p = Policy.new # p.filter_exp = Exp.build(Exp.eq(Exp.int_bin("a"), Exp.int_val(11))); @filter_exp = opt[:filter_exp] # Throw exception if {#filter_exp} is defined and that filter evaluates # to false (transaction ignored). The {AerospikeException} # will contain result code {ResultCode::FILTERED_OUT}. # # This field is not applicable to batch, scan or query commands. # # Default: false @fail_on_filtered_out = opt[:fail_on_filtered_out] || false # [:nodoc:] # DEPRECATED # The Aerospike server does not support this policy anymore # TODO: Remove for next major release @priority = opt[:priority] || Priority::DEFAULT # Throw exception if @filter_exp is defined and that filter evaluates # to false (transaction ignored). The Aerospike::Exceptions::Aerospike # will contain result code Aerospike::ResultCode::FILTERED_OUT. # This field is not applicable to batch, scan or query commands. @fail_on_filtered_out = opt[:fail_on_filtered_out] || false # How replicas should be consulted in a read operation to provide the desired # consistency guarantee. Default to allowing one replica to be used in the # read operation. @consistency_level = opt[:consistency_level] || Aerospike::ConsistencyLevel::CONSISTENCY_ONE # Send read commands to the node containing the key's partition replica type. # Write commands are not affected by this setting, because all writes are directed # to the node containing the key's master partition. # # Default to sending read commands to the node containing the key's master partition. @replica = opt[:replica] || Aerospike::Replica::MASTER # Use zlib compression on write or batch read commands when the command buffer size is greater # than 128 bytes. In addition, tell the server to compress its response on read commands. # The server response compression threshold is also 128 bytes. # # This option will increase cpu and memory usage (for extra compressed buffers), but # decrease the size of data sent over the network. @use_compression = opt[:use_compression] || false # Transaction timeout. # This timeout is used to set the socket timeout and is also sent to the # server along with the transaction in the wire protocol. # Default to no timeout (0). @timeout = opt[:timeout] || 0 # Maximum number of retries before aborting the current transaction. # A retry is attempted when there is a network error other than timeout. # If max_retries is exceeded, the abort will occur even if the timeout # has not yet been exceeded. @max_retries = opt[:max_retries] || 2 # Determines how record TTL (time to live) is affected on reads. When enabled, the server can # efficiently operate as a read-based LRU cache where the least recently used records are expired. # The value is expressed as a percentage of the TTL sent on the most recent write such that a read # within this interval of the record’s end of life will generate a touch. # # For example, if the most recent write had a TTL of 10 hours and read_touch_ttl_percent is set to # 80, the next read within 8 hours of the record's end of life (equivalent to 2 hours after the most # recent write) will result in a touch, resetting the TTL to another 10 hours. # # Values: # # 0 : Use server config default-read-touch-ttl-pct for the record's namespace/set. # -1 : Do not reset record TTL on reads. # 1 - 100 : Reset record TTL on reads when within this percentage of the most recent write TTL. # Default: 0 @read_touch_ttl_percent = opt[:read_touch_ttl_percent] || 0 # Duration to sleep between retries if a transaction fails and the # timeout was not exceeded. Enter zero to skip sleep. @sleep_between_retries = opt[:sleep_between_retries] || 0.5 # Determines network timeout for each attempt. # # If socket_timeout is not zero and socket_timeout is reached before an attempt completes, # the Timeout above is checked. If Timeout is not exceeded, the transaction # is retried. If both socket_timeout and Timeout are non-zero, socket_timeout must be less # than or equal to Timeout, otherwise Timeout will also be used for socket_timeout. # # Default: 30s @socket_timeout = opt[:socket_timeout] || 30000 end