Method: Aerospike::ScanPolicy#initialize

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

#initialize(opt = {}) ⇒ ScanPolicy

Returns a new instance of ScanPolicy.



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

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

  # Approximates the number of records to return to the client. This number is divided by the
  # number of nodes involved in the query. The actual number of records returned
  # may be less than MaxRecords if node record counts are small and unbalanced across
  # nodes.
  #
  # This field is supported on server versions >= 4.9.
  #
  # Default: 0 (do not limit record count)
  @max_records = opt.fetch(:max_records) { 0 }

  # Percent of data to scan. Valid integer range is 1 to 100.
  # Default is 100.
  @scan_percent = opt[:scan_percent] || 100

  # [:nodoc:]
  # DEPRECATED
  # The Aerospike server does not support this policy anymore
  # TODO: Remove for next major release
  @concurrent_nodes = opt.fetch(:concurrent_nodes) { true }

  # Indicates if bin data is retrieved. If false, only record digests (and
  # user keys if stored on the server) are retrieved.
  # Default is true.
  @include_bin_data = opt.fetch(:include_bin_data) { true }

  # [:nodoc:]
  # DEPRECATED
  # The Aerospike server does not support this policy anymore
  # TODO: Remove for next major release
  @fail_on_cluster_change = opt.fetch(:fail_on_cluster_change) { true }

  # 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

  # Number of records to place in queue before blocking. Records received
  # from multiple server nodes will be placed in a queue. A separate thread
  # consumes these records in parallel. If the queue is full, the producer
  # threads will block until records are consumed.
  # Default is 5000.
  @record_queue_size = opt[:record_queue_size] || 5000

  # Limit returned records per second (rps) rate for each server.
  # Will not apply rps limit if records_per_second is zero.
  # Currently only applicable to a query without a defined filter (scan).
  # Default is 0
  @records_per_second = opt[:records_per_second] || 0

  self
end