Class PartitionFilter

java.lang.Object
com.aerospike.client.query.PartitionFilter
All Implemented Interfaces:
Serializable

public final class PartitionFilter extends Object implements Serializable
Partition filter used in scan/query. This filter is also used as a cursor.

If a previous scan/query returned all records specified by a PartitionFilter instance, a future scan/query using the same PartitionFilter instance will only return new records added after the last record read (in digest order) in each partition in the previous scan/query. To reset the cursor of an existing PartitionFilter instance, call setPartitions(PartitionStatus[]) with a null argument.

See Also:
  • Method Details

    • all

      public static PartitionFilter all()
      Read all partitions.
    • id

      public static PartitionFilter id(int id)
      Filter by partition id.
      Parameters:
      id - partition id (0 - 4095)
    • after

      public static PartitionFilter after(Key key)
      Return records after key's digest in partition containing the digest. Note that digest order is not the same as userKey order. This method only works for scan or query with null filter (primary index query). This method does not work for a secondary index query.
      Parameters:
      key - return records after this key's digest
    • after

      public static PartitionFilter after(byte[] digest)
      Return records after the digest in partition containing the digest. Note that digest order is not the same as userKey order. This method only works for scan or query with null filter (primary index query). This method does not work for a secondary index query.
      Parameters:
      digest - return records after this digest
    • range

      public static PartitionFilter range(int begin, int count)
      Filter by partition range.
      Parameters:
      begin - start partition id (0 - 4095)
      count - number of partitions
    • getBegin

      public int getBegin()
      Return first partition id.
    • getCount

      public int getCount()
      Return count of partitions.
    • getDigest

      public byte[] getDigest()
      Return resume after digest.
    • getPartitions

      public com.aerospike.client.query.PartitionStatus[] getPartitions()
      Return status of each partition after scan termination. Useful for external retry of partially completed scans at a later time.

      The partition status is accurate for sync/async scanPartitions and async queryPartitions.

      The partition status is not accurate for AerospikeClient.queryPartitions(com.aerospike.client.policy.QueryPolicy, Statement, PartitionFilter) because the last digest received is set during query parsing, but the user may not have retrieved that digest from the RecordSet yet.

    • setPartitions

      public void setPartitions(com.aerospike.client.query.PartitionStatus[] partitions)
      Set cursor status of all partitions. The cursor contains the last record read for each partition and is usually obtained from getPartitions() after a previous scan/query.

      If a previous scan/query returned all records specified by a PartitionFilter instance, a future scan/query using the same PartitionFilter instance will only return new records added after the last record read (in digest order) in each partition in the previous scan/query. To reset the cursor of an existing PartitionFilter instance, call this method with a null argument.

    • isDone

      public boolean isDone()
      If using ScanPolicy.maxRecords or QueryPolicy.maxRecords, did previous paginated scans with this partition filter instance return all records?
    • isRetry

      public boolean isRetry()
      Indicates if the entire filter requires a retry after a failed attempt.