Class QueryPolicy

java.lang.Object
com.aerospike.client.policy.Policy
com.aerospike.client.policy.QueryPolicy

public class QueryPolicy
extends Policy
Container object for policy attributes used in query operations.
  • Field Details

    • maxRecords

      public long maxRecords
      Approximate number of records to return to 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.

      maxRecords is supported on server versions >= 4.9 for scans only. maxRecords exists here because query methods will convert into a scan when the query filter is null. maxRecords is ignored when the query contains a filter.

      Default: 0 (do not limit record count)

    • maxConcurrentNodes

      public int maxConcurrentNodes
      Maximum number of concurrent requests to server nodes at any point in time. If there are 16 nodes in the cluster and maxConcurrentNodes is 8, then queries will be made to 8 nodes in parallel. When a query completes, a new query will be issued until all 16 nodes have been queried.

      Default: 0 (issue requests to all server nodes in parallel)

    • recordQueueSize

      public int recordQueueSize
      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: 5000

    • includeBinData

      public boolean includeBinData
      Should bin data be retrieved. If false, only record digests (and user keys if stored on the server) are retrieved.

      Default: true

    • failOnClusterChange

      public boolean failOnClusterChange
      Terminate query if cluster is in migration state. Only used for server versions < 4.9.

      Default: false

  • Constructor Details

    • QueryPolicy

      public QueryPolicy​(QueryPolicy other)
      Copy query policy from another query policy.
    • QueryPolicy

      public QueryPolicy()
      Default constructor.

      Set maxRetries for non-aggregation queries with a null filter on server versions >= 4.9. All other queries are not retried.

      The latest servers support retries on individual data partitions. This feature is useful when a cluster is migrating and partition(s) are missed or incomplete on the first query (with null filter) attempt.

      If the first query attempt misses 2 of 4096 partitions, then only those 2 partitions are retried in the next query attempt from the last key digest received for each respective partition. A higher default maxRetries is used because it's wasteful to invalidate all query results because a single partition was missed.