Class: Aerospike::Policy

Inherits:
Object
  • Object
show all
Defined in:
lib/aerospike/policy/policy.rb

Overview

Container object for client policy command.

Direct Known Subclasses

BatchPolicy, QueryPolicy, ScanPolicy, WritePolicy

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opt = {}) ⇒ Policy

Returns a new instance of Policy.

[View source]

30
31
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# 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

Instance Attribute Details

#consistency_levelObject

Returns the value of attribute consistency_level.


24
25
26
# File 'lib/aerospike/policy/policy.rb', line 24

def consistency_level
  @consistency_level
end

#fail_on_filtered_outObject

Returns the value of attribute fail_on_filtered_out.


24
25
26
# File 'lib/aerospike/policy/policy.rb', line 24

def fail_on_filtered_out
  @fail_on_filtered_out
end

#filter_expObject

Returns the value of attribute filter_exp.


24
25
26
# File 'lib/aerospike/policy/policy.rb', line 24

def filter_exp
  @filter_exp
end

#max_retriesObject

Returns the value of attribute max_retries.


24
25
26
# File 'lib/aerospike/policy/policy.rb', line 24

def max_retries
  @max_retries
end

#priorityObject

Returns the value of attribute priority.


24
25
26
# File 'lib/aerospike/policy/policy.rb', line 24

def priority
  @priority
end

#read_touch_ttl_percentObject

Returns the value of attribute read_touch_ttl_percent.


24
25
26
# File 'lib/aerospike/policy/policy.rb', line 24

def read_touch_ttl_percent
  @read_touch_ttl_percent
end

#replicaObject

Returns the value of attribute replica.


24
25
26
# File 'lib/aerospike/policy/policy.rb', line 24

def replica
  @replica
end

#sleep_between_retriesObject

Returns the value of attribute sleep_between_retries.


24
25
26
# File 'lib/aerospike/policy/policy.rb', line 24

def sleep_between_retries
  @sleep_between_retries
end

#socket_timeoutObject

Returns the value of attribute socket_timeout.


24
25
26
# File 'lib/aerospike/policy/policy.rb', line 24

def socket_timeout
  @socket_timeout
end

#timeoutObject Also known as: total_timeout

Returns the value of attribute timeout.


24
25
26
# File 'lib/aerospike/policy/policy.rb', line 24

def timeout
  @timeout
end

#use_compressionObject

Returns the value of attribute use_compression.


24
25
26
# File 'lib/aerospike/policy/policy.rb', line 24

def use_compression
  @use_compression
end