class Aerospike::ScanPolicy

Container object for scan policy command.

Attributes

concurrent_nodes[RW]
fail_on_cluster_change[RW]
include_bin_data[RW]
max_records[RW]
record_queue_size[RW]
records_per_second[RW]
scan_percent[RW]
socket_timeout[RW]

Public Class Methods

new(opt={}) click to toggle source
Calls superclass method Aerospike::Policy::new
# 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