Class: Aerospike::WritePolicy

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

Overview

Container object for client policy command.

Direct Known Subclasses

OperatePolicy

Instance Attribute Summary collapse

Attributes inherited from Policy

#consistency_level, #fail_on_filtered_out, #filter_exp, #max_retries, #priority, #read_touch_ttl_percent, #replica, #sleep_between_retries, #socket_timeout, #timeout, #use_compression

Instance Method Summary collapse

Constructor Details

#initialize(opt = {}) ⇒ WritePolicy

Returns a new instance of WritePolicy.

[View source]

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
# File 'lib/aerospike/policy/write_policy.rb', line 33

def initialize(opt={})
  super(opt)

  # Qualify how to handle writes where the record already exists.
  @record_exists_action = opt[:record_exists_action] || RecordExistsAction::UPDATE

  # Qualify how to handle record writes based on record generation. The default (NONE)
  # indicates that the generation is not used to restrict writes.
  @generation_policy = opt[:gen_policy] || GenerationPolicy::NONE

  # Desired consistency guarantee when committing a transaction on the server. The default
  # (COMMIT_ALL) indicates that the server should wait for master and all replica commits to
  # be successful before returning success to the client.
  @commit_level = opt[:commit_level] || Aerospike::CommitLevel::COMMIT_ALL

  # Expected generation. Generation is the number of times a record has been modified
  # (including creation) on the server. If a write operation is creating a record,
  # the expected generation would be 0
  @generation = opt[:generation] || 0

  # Record expiration; also known as time-to-live (TTL).
  # Seconds record will live before being removed by the server.
  #
  # Supported values:
  # - `Aerospike::TTL::NEVER_EXPIRE`: Never expire record; requires Aerospike 2
  #    server versions >= 2.7.2 or Aerospike 3 server versions >= 3.1.4. Do
  #    not use for older servers.
  # - `Aerospike::TTL::NAMESPACE_DEFAULT`: Default to namespace configuration
  #    variable "default-ttl" on the server.
  # - `Aerospike::TTL::DONT_UPDATE`: Do not change a record's expiration date
  #   when updating the record. Requires Aerospike server v3.10.1 or later.
  # - Any value > 0: Actual time-to-live in seconds.
  @ttl = opt[:ttl] || opt[:expiration] || 0

  # Send user defined key in addition to hash digest on a record put.
  # The default is to _not_ send the user defined key.
  @send_key = opt.fetch(:send_key, false)

  # If the transaction results in a record deletion, leave a tombstone for
  # the record. This prevents deleted records from reappearing after node
  # failures.
  # Valid for Aerospike Server Enterprise Edition 3.10+ only.
  @durable_delete = opt.fetch(:durable_delete, 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 for write policy is 1.
  @timeout = opt[:timeout] || 1
  self
end

Instance Attribute Details

#commit_levelObject

Returns the value of attribute commit_level.


26
27
28
# File 'lib/aerospike/policy/write_policy.rb', line 26

def commit_level
  @commit_level
end

#durable_deleteObject

Returns the value of attribute durable_delete.


26
27
28
# File 'lib/aerospike/policy/write_policy.rb', line 26

def durable_delete
  @durable_delete
end

#generationObject

Returns the value of attribute generation.


26
27
28
# File 'lib/aerospike/policy/write_policy.rb', line 26

def generation
  @generation
end

#generation_policyObject

Returns the value of attribute generation_policy.


26
27
28
# File 'lib/aerospike/policy/write_policy.rb', line 26

def generation_policy
  @generation_policy
end

#record_exists_actionObject

Returns the value of attribute record_exists_action.


26
27
28
# File 'lib/aerospike/policy/write_policy.rb', line 26

def record_exists_action
  @record_exists_action
end

#send_keyObject

Returns the value of attribute send_key.


26
27
28
# File 'lib/aerospike/policy/write_policy.rb', line 26

def send_key
  @send_key
end

#ttlObject Also known as: expiration

Returns the value of attribute ttl.


26
27
28
# File 'lib/aerospike/policy/write_policy.rb', line 26

def ttl
  @ttl
end