Class AerospikeClient

java.lang.Object
com.aerospike.client.AerospikeClient
All Implemented Interfaces:
IAerospikeClient, Closeable, AutoCloseable

public class AerospikeClient
extends Object
implements IAerospikeClient, Closeable
Instantiate an AerospikeClient object to access an Aerospike database cluster and perform database operations.

This client is thread-safe. One client instance should be used per cluster. Multiple threads should share this cluster instance.

Your application uses this class API to perform database operations such as writing and reading records, and selecting sets of records. Write operations include specialized functionality such as append/prepend and arithmetic addition.

Each record may have multiple bins, unless the Aerospike server nodes are configured as "single-bin". In "multi-bin" mode, partial records may be written or read by specifying the relevant subset of bins.

  • Field Details

  • Constructor Details

    • AerospikeClient

      public AerospikeClient​(String hostname, int port) throws AerospikeException
      Initialize Aerospike client. If the host connection succeeds, the client will:

      - Add host to the cluster map
      - Request host's list of other nodes in cluster
      - Add these nodes to cluster map

      If the connection succeeds, the client is ready to process database requests. If the connection fails, the cluster will remain in a disconnected state until the server is activated.

      Parameters:
      hostname - host name
      port - host port
      Throws:
      AerospikeException - if host connection fails
    • AerospikeClient

      public AerospikeClient​(ClientPolicy policy, String hostname, int port) throws AerospikeException
      Initialize Aerospike client. The client policy is used to set defaults and size internal data structures. If the host connection succeeds, the client will:

      - Add host to the cluster map
      - Request host's list of other nodes in cluster
      - Add these nodes to cluster map

      If the connection succeeds, the client is ready to process database requests. If the connection fails and the policy's failOnInvalidHosts is true, a connection exception will be thrown. Otherwise, the cluster will remain in a disconnected state until the server is activated.

      Parameters:
      policy - client configuration parameters, pass in null for defaults
      hostname - host name
      port - host port
      Throws:
      AerospikeException - if host connection fails
    • AerospikeClient

      public AerospikeClient​(ClientPolicy policy, Host... hosts) throws AerospikeException
      Initialize Aerospike client with suitable hosts to seed the cluster map. The client policy is used to set defaults and size internal data structures. For the first host connection that succeeds, the client will:

      - Add host to the cluster map
      - Request host's list of other nodes in cluster
      - Add these nodes to cluster map

      In most cases, only one host is necessary to seed the cluster. The remaining hosts are added as future seeds in case of a complete network failure.

      If one connection succeeds, the client is ready to process database requests. If all connections fail and the policy's failIfNotConnected is true, a connection exception will be thrown. Otherwise, the cluster will remain in a disconnected state until the server is activated.

      Parameters:
      policy - client configuration parameters, pass in null for defaults
      hosts - array of potential hosts to seed the cluster
      Throws:
      AerospikeException - if all host connections fail
  • Method Details

    • getReadPolicyDefault

      public final Policy getReadPolicyDefault()
      Specified by:
      getReadPolicyDefault in interface IAerospikeClient
    • getWritePolicyDefault

      public final WritePolicy getWritePolicyDefault()
      Specified by:
      getWritePolicyDefault in interface IAerospikeClient
    • getScanPolicyDefault

      public final ScanPolicy getScanPolicyDefault()
      Specified by:
      getScanPolicyDefault in interface IAerospikeClient
    • getQueryPolicyDefault

      public final QueryPolicy getQueryPolicyDefault()
      Specified by:
      getQueryPolicyDefault in interface IAerospikeClient
    • getBatchPolicyDefault

      public final BatchPolicy getBatchPolicyDefault()
      Specified by:
      getBatchPolicyDefault in interface IAerospikeClient
    • getInfoPolicyDefault

      public final InfoPolicy getInfoPolicyDefault()
      Specified by:
      getInfoPolicyDefault in interface IAerospikeClient
    • close

      public void close()
      Close all client connections to database server nodes.

      If event loops are defined, the client will send a cluster close signal to these event loops. The client instance does not initiate shutdown until the pending async commands complete. The close() method, however, will return before shutdown completes if close() is called from an event loop thread. This is done in order to prevent deadlock.

      This close() method will wait for shutdown if the current thread is not an event loop thread. It's recommended to call close() from a non event loop thread for this reason.

      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface IAerospikeClient
    • isConnected

      public final boolean isConnected()
      Determine if we are ready to talk to the database server cluster.
      Specified by:
      isConnected in interface IAerospikeClient
      Returns:
      true if cluster is ready, false if cluster is not ready
    • getNodes

      public final Node[] getNodes()
      Return array of active server nodes in the cluster.
      Specified by:
      getNodes in interface IAerospikeClient
      Returns:
      array of active nodes
    • getNodeNames

      public final List<String> getNodeNames()
      Return list of active server node names in the cluster.
      Specified by:
      getNodeNames in interface IAerospikeClient
      Returns:
      list of active node names
    • getNode

      public final Node getNode​(String nodeName) throws AerospikeException.InvalidNode
      Return node given its name.
      Specified by:
      getNode in interface IAerospikeClient
      Throws:
      AerospikeException.InvalidNode - if node does not exist.
    • getClusterStats

      public final ClusterStats getClusterStats()
      Return operating cluster statistics.
      Specified by:
      getClusterStats in interface IAerospikeClient
    • getCluster

      public final com.aerospike.client.cluster.Cluster getCluster()
      Return operating cluster.
      Specified by:
      getCluster in interface IAerospikeClient
    • put

      public final void put​(WritePolicy policy, Key key, Bin... bins) throws AerospikeException
      Write record bin(s). The policy specifies the transaction timeout, record expiration and how the transaction is handled when the record already exists.
      Specified by:
      put in interface IAerospikeClient
      Parameters:
      policy - write configuration parameters, pass in null for defaults
      key - unique record identifier
      bins - array of bin name/value pairs
      Throws:
      AerospikeException - if write fails
    • put

      public final void put​(EventLoop eventLoop, WriteListener listener, WritePolicy policy, Key key, Bin... bins) throws AerospikeException
      Asynchronously write record bin(s). This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      The policy specifies the transaction timeout, record expiration and how the transaction is handled when the record already exists.

      Specified by:
      put in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results, pass in null for fire and forget
      policy - write configuration parameters, pass in null for defaults
      key - unique record identifier
      bins - array of bin name/value pairs
      Throws:
      AerospikeException - if event loop registration fails
    • append

      public final void append​(WritePolicy policy, Key key, Bin... bins) throws AerospikeException
      Append bin string values to existing record bin values. The policy specifies the transaction timeout, record expiration and how the transaction is handled when the record already exists. This call only works for string values.
      Specified by:
      append in interface IAerospikeClient
      Parameters:
      policy - write configuration parameters, pass in null for defaults
      key - unique record identifier
      bins - array of bin name/value pairs
      Throws:
      AerospikeException - if append fails
    • append

      public final void append​(EventLoop eventLoop, WriteListener listener, WritePolicy policy, Key key, Bin... bins) throws AerospikeException
      Asynchronously append bin string values to existing record bin values. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      The policy specifies the transaction timeout, record expiration and how the transaction is handled when the record already exists. This call only works for string values.

      Specified by:
      append in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results, pass in null for fire and forget
      policy - write configuration parameters, pass in null for defaults
      key - unique record identifier
      bins - array of bin name/value pairs
      Throws:
      AerospikeException - if event loop registration fails
    • prepend

      public final void prepend​(WritePolicy policy, Key key, Bin... bins) throws AerospikeException
      Prepend bin string values to existing record bin values. The policy specifies the transaction timeout, record expiration and how the transaction is handled when the record already exists. This call works only for string values.
      Specified by:
      prepend in interface IAerospikeClient
      Parameters:
      policy - write configuration parameters, pass in null for defaults
      key - unique record identifier
      bins - array of bin name/value pairs
      Throws:
      AerospikeException - if prepend fails
    • prepend

      public final void prepend​(EventLoop eventLoop, WriteListener listener, WritePolicy policy, Key key, Bin... bins) throws AerospikeException
      Asynchronously prepend bin string values to existing record bin values. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      The policy specifies the transaction timeout, record expiration and how the transaction is handled when the record already exists. This call only works for string values.

      Specified by:
      prepend in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results, pass in null for fire and forget
      policy - write configuration parameters, pass in null for defaults
      key - unique record identifier
      bins - array of bin name/value pairs
      Throws:
      AerospikeException - if event loop registration fails
    • add

      public final void add​(WritePolicy policy, Key key, Bin... bins) throws AerospikeException
      Add integer/double bin values to existing record bin values. The policy specifies the transaction timeout, record expiration and how the transaction is handled when the record already exists.
      Specified by:
      add in interface IAerospikeClient
      Parameters:
      policy - write configuration parameters, pass in null for defaults
      key - unique record identifier
      bins - array of bin name/value pairs
      Throws:
      AerospikeException - if add fails
    • add

      public final void add​(EventLoop eventLoop, WriteListener listener, WritePolicy policy, Key key, Bin... bins) throws AerospikeException
      Asynchronously add integer/double bin values to existing record bin values. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      The policy specifies the transaction timeout, record expiration and how the transaction is handled when the record already exists.

      Specified by:
      add in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results, pass in null for fire and forget
      policy - write configuration parameters, pass in null for defaults
      key - unique record identifier
      bins - array of bin name/value pairs
      Throws:
      AerospikeException - if event loop registration fails
    • delete

      public final boolean delete​(WritePolicy policy, Key key) throws AerospikeException
      Delete record for specified key. The policy specifies the transaction timeout.
      Specified by:
      delete in interface IAerospikeClient
      Parameters:
      policy - delete configuration parameters, pass in null for defaults
      key - unique record identifier
      Returns:
      whether record existed on server before deletion
      Throws:
      AerospikeException - if delete fails
    • delete

      public final void delete​(EventLoop eventLoop, DeleteListener listener, WritePolicy policy, Key key) throws AerospikeException
      Asynchronously delete record for specified key. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      The policy specifies the transaction timeout.

      Specified by:
      delete in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results, pass in null for fire and forget
      policy - write configuration parameters, pass in null for defaults
      key - unique record identifier
      Throws:
      AerospikeException - if event loop registration fails
    • truncate

      public final void truncate​(InfoPolicy policy, String ns, String set, Calendar beforeLastUpdate) throws AerospikeException
      Remove records in specified namespace/set efficiently. This method is many orders of magnitude faster than deleting records one at a time.

      See https://www.aerospike.com/docs/reference/info#truncate

      This asynchronous server call may return before the truncation is complete. The user can still write new records after the server call returns because new records will have last update times greater than the truncate cutoff (set at the time of truncate call).

      Specified by:
      truncate in interface IAerospikeClient
      Parameters:
      policy - info command configuration parameters, pass in null for defaults
      ns - required namespace
      set - optional set name. Pass in null to delete all sets in namespace.
      beforeLastUpdate - optional delete records before record last update time. If specified, value must be before the current time. Pass in null to delete all records in namespace/set.
      Throws:
      AerospikeException - if truncate fails
    • touch

      public final void touch​(WritePolicy policy, Key key) throws AerospikeException
      Reset record's time to expiration using the policy's expiration. Fail if the record does not exist.
      Specified by:
      touch in interface IAerospikeClient
      Parameters:
      policy - write configuration parameters, pass in null for defaults
      key - unique record identifier
      Throws:
      AerospikeException - if touch fails
    • touch

      public final void touch​(EventLoop eventLoop, WriteListener listener, WritePolicy policy, Key key) throws AerospikeException
      Asynchronously reset record's time to expiration using the policy's expiration. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      Fail if the record does not exist.

      Specified by:
      touch in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results, pass in null for fire and forget
      policy - write configuration parameters, pass in null for defaults
      key - unique record identifier
      Throws:
      AerospikeException - if event loop registration fails
    • exists

      public final boolean exists​(Policy policy, Key key) throws AerospikeException
      Determine if a record key exists. The policy can be used to specify timeouts.
      Specified by:
      exists in interface IAerospikeClient
      Parameters:
      policy - generic configuration parameters, pass in null for defaults
      key - unique record identifier
      Returns:
      whether record exists or not
      Throws:
      AerospikeException - if command fails
    • exists

      public final void exists​(EventLoop eventLoop, ExistsListener listener, Policy policy, Key key) throws AerospikeException
      Asynchronously determine if a record key exists. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      The policy can be used to specify timeouts.

      Specified by:
      exists in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - generic configuration parameters, pass in null for defaults
      key - unique record identifier
      Throws:
      AerospikeException - if event loop registration fails
    • exists

      public final boolean[] exists​(BatchPolicy policy, Key[] keys) throws AerospikeException
      Check if multiple record keys exist in one batch call. The returned boolean array is in positional order with the original key array order. The policy can be used to specify timeouts and maximum concurrent nodes.

      If a batch request to a node fails, the entire batch is cancelled.

      Specified by:
      exists in interface IAerospikeClient
      Parameters:
      policy - batch configuration parameters, pass in null for defaults
      keys - array of unique record identifiers
      Returns:
      array key/existence status pairs
      Throws:
      AerospikeException - if command fails
    • exists

      public final void exists​(EventLoop eventLoop, ExistsArrayListener listener, BatchPolicy policy, Key[] keys) throws AerospikeException
      Asynchronously check if multiple record keys exist in one batch call. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      The returned boolean array is in positional order with the original key array order.

      If a batch request to a node fails, the entire batch is cancelled.

      Specified by:
      exists in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - batch configuration parameters, pass in null for defaults
      keys - unique record identifiers
      Throws:
      AerospikeException - if event loop registration fails
    • exists

      public final void exists​(EventLoop eventLoop, ExistsSequenceListener listener, BatchPolicy policy, Key[] keys) throws AerospikeException
      Asynchronously check if multiple record keys exist in one batch call. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      Each key's result is returned in separate onExists() calls.

      If a batch request to a node fails, responses from other nodes will continue to be processed.

      Specified by:
      exists in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - batch configuration parameters, pass in null for defaults
      keys - unique record identifiers
      Throws:
      AerospikeException - if event loop registration fails
    • get

      public final Record get​(Policy policy, Key key) throws AerospikeException
      Read entire record for specified key. The policy can be used to specify timeouts.
      Specified by:
      get in interface IAerospikeClient
      Parameters:
      policy - generic configuration parameters, pass in null for defaults
      key - unique record identifier
      Returns:
      if found, return record instance. If not found, return null.
      Throws:
      AerospikeException - if read fails
    • get

      public final void get​(EventLoop eventLoop, RecordListener listener, Policy policy, Key key) throws AerospikeException
      Asynchronously read entire record for specified key. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      The policy can be used to specify timeouts.

      Specified by:
      get in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - generic configuration parameters, pass in null for defaults
      key - unique record identifier
      Throws:
      AerospikeException - if event loop registration fails
    • get

      public final Record get​(Policy policy, Key key, String... binNames) throws AerospikeException
      Read record header and bins for specified key. The policy can be used to specify timeouts.
      Specified by:
      get in interface IAerospikeClient
      Parameters:
      policy - generic configuration parameters, pass in null for defaults
      key - unique record identifier
      binNames - bins to retrieve
      Returns:
      if found, return record instance. If not found, return null.
      Throws:
      AerospikeException - if read fails
    • get

      public final void get​(EventLoop eventLoop, RecordListener listener, Policy policy, Key key, String... binNames) throws AerospikeException
      Asynchronously read record header and bins for specified key. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      The policy can be used to specify timeouts.

      Specified by:
      get in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - generic configuration parameters, pass in null for defaults
      key - unique record identifier
      binNames - bins to retrieve
      Throws:
      AerospikeException - if event loop registration fails
    • getHeader

      public final Record getHeader​(Policy policy, Key key) throws AerospikeException
      Read record generation and expiration only for specified key. Bins are not read. The policy can be used to specify timeouts.
      Specified by:
      getHeader in interface IAerospikeClient
      Parameters:
      policy - generic configuration parameters, pass in null for defaults
      key - unique record identifier
      Returns:
      if found, return record instance. If not found, return null.
      Throws:
      AerospikeException - if read fails
    • getHeader

      public final void getHeader​(EventLoop eventLoop, RecordListener listener, Policy policy, Key key) throws AerospikeException
      Asynchronously read record generation and expiration only for specified key. Bins are not read. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      The policy can be used to specify timeouts.

      Specified by:
      getHeader in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - generic configuration parameters, pass in null for defaults
      key - unique record identifier
      Throws:
      AerospikeException - if event loop registration fails
    • get

      public final void get​(BatchPolicy policy, List<BatchRead> records) throws AerospikeException
      Read multiple records for specified batch keys in one batch call. This method allows different namespaces/bins to be requested for each key in the batch. The returned records are located in the same list. If the BatchRead key field is not found, the corresponding record field will be null. The policy can be used to specify timeouts and maximum concurrent threads.

      If a batch request to a node fails, the entire batch is cancelled.

      Specified by:
      get in interface IAerospikeClient
      Parameters:
      policy - batch configuration parameters, pass in null for defaults
      records - list of unique record identifiers and the bins to retrieve. The returned records are located in the same list.
      Throws:
      AerospikeException - if read fails
    • get

      public final void get​(EventLoop eventLoop, BatchListListener listener, BatchPolicy policy, List<BatchRead> records) throws AerospikeException
      Asynchronously read multiple records for specified batch keys in one batch call. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      This method allows different namespaces/bins to be requested for each key in the batch. The returned records are located in the same list. If the BatchRead key field is not found, the corresponding record field will be null. The policy can be used to specify timeouts.

      If a batch request to a node fails, the entire batch is cancelled.

      Specified by:
      get in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - batch configuration parameters, pass in null for defaults
      records - list of unique record identifiers and the bins to retrieve. The returned records are located in the same list.
      Throws:
      AerospikeException - if event loop registration fails
    • get

      public final void get​(EventLoop eventLoop, BatchSequenceListener listener, BatchPolicy policy, List<BatchRead> records) throws AerospikeException
      Asynchronously read multiple records for specified batch keys in one batch call. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      This method allows different namespaces/bins to be requested for each key in the batch. Each record result is returned in separate onRecord() calls. If the BatchRead key field is not found, the corresponding record field will be null. The policy can be used to specify timeouts.

      If a batch request to a node fails, responses from other nodes will continue to be processed.

      Specified by:
      get in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - batch configuration parameters, pass in null for defaults
      records - list of unique record identifiers and the bins to retrieve. The returned records are located in the same list.
      Throws:
      AerospikeException - if event loop registration fails
    • get

      public final Record[] get​(BatchPolicy policy, Key[] keys) throws AerospikeException
      Read multiple records for specified keys in one batch call. The returned records are in positional order with the original key array order. If a key is not found, the positional record will be null. The policy can be used to specify timeouts and maximum concurrent threads.

      If a batch request to a node fails, the entire batch is cancelled.

      Specified by:
      get in interface IAerospikeClient
      Parameters:
      policy - batch configuration parameters, pass in null for defaults
      keys - array of unique record identifiers
      Returns:
      array of records
      Throws:
      AerospikeException - if read fails
    • get

      public final void get​(EventLoop eventLoop, RecordArrayListener listener, BatchPolicy policy, Key[] keys) throws AerospikeException
      Asynchronously read multiple records for specified keys in one batch call. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      The returned records are in positional order with the original key array order. If a key is not found, the positional record will be null. The policy can be used to specify timeouts.

      If a batch request to a node fails, the entire batch is cancelled.

      Specified by:
      get in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - batch configuration parameters, pass in null for defaults
      keys - array of unique record identifiers
      Throws:
      AerospikeException - if event loop registration fails
    • get

      public final void get​(EventLoop eventLoop, RecordSequenceListener listener, BatchPolicy policy, Key[] keys) throws AerospikeException
      Asynchronously read multiple records for specified keys in one batch call. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      Each record result is returned in separate onRecord() calls. If a key is not found, the record will be null. The policy can be used to specify timeouts.

      If a batch request to a node fails, responses from other nodes will continue to be processed.

      Specified by:
      get in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - batch configuration parameters, pass in null for defaults
      keys - array of unique record identifiers
      Throws:
      AerospikeException - if event loop registration fails
    • get

      public final Record[] get​(BatchPolicy policy, Key[] keys, String... binNames) throws AerospikeException
      Read multiple record headers and bins for specified keys in one batch call. The returned records are in positional order with the original key array order. If a key is not found, the positional record will be null. The policy can be used to specify timeouts and maximum concurrent threads.

      If a batch request to a node fails, the entire batch is cancelled.

      Specified by:
      get in interface IAerospikeClient
      Parameters:
      policy - batch configuration parameters, pass in null for defaults
      keys - array of unique record identifiers
      binNames - array of bins to retrieve
      Returns:
      array of records
      Throws:
      AerospikeException - if read fails
    • get

      public final void get​(EventLoop eventLoop, RecordArrayListener listener, BatchPolicy policy, Key[] keys, String... binNames) throws AerospikeException
      Asynchronously read multiple record headers and bins for specified keys in one batch call. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      The returned records are in positional order with the original key array order. If a key is not found, the positional record will be null. The policy can be used to specify timeouts.

      If a batch request to a node fails, the entire batch is cancelled.

      Specified by:
      get in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - batch configuration parameters, pass in null for defaults
      keys - array of unique record identifiers
      binNames - array of bins to retrieve
      Throws:
      AerospikeException - if event loop registration fails
    • get

      public final void get​(EventLoop eventLoop, RecordSequenceListener listener, BatchPolicy policy, Key[] keys, String... binNames) throws AerospikeException
      Asynchronously read multiple record headers and bins for specified keys in one batch call. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      Each record result is returned in separate onRecord() calls. If a key is not found, the record will be null. The policy can be used to specify timeouts.

      If a batch request to a node fails, responses from other nodes will continue to be processed.

      Specified by:
      get in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - batch configuration parameters, pass in null for defaults
      keys - array of unique record identifiers
      binNames - array of bins to retrieve
      Throws:
      AerospikeException - if event loop registration fails
    • getHeader

      public final Record[] getHeader​(BatchPolicy policy, Key[] keys) throws AerospikeException
      Read multiple record header data for specified keys in one batch call. The returned records are in positional order with the original key array order. If a key is not found, the positional record will be null. The policy can be used to specify timeouts and maximum concurrent threads.

      If a batch request to a node fails, the entire batch is cancelled.

      Specified by:
      getHeader in interface IAerospikeClient
      Parameters:
      policy - batch configuration parameters, pass in null for defaults
      keys - array of unique record identifiers
      Returns:
      array of records
      Throws:
      AerospikeException - if read fails
    • getHeader

      public final void getHeader​(EventLoop eventLoop, RecordArrayListener listener, BatchPolicy policy, Key[] keys) throws AerospikeException
      Asynchronously read multiple record header data for specified keys in one batch call. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      The returned records are in positional order with the original key array order. If a key is not found, the positional record will be null. The policy can be used to specify timeouts.

      If a batch request to a node fails, the entire batch is cancelled.

      Specified by:
      getHeader in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - batch configuration parameters, pass in null for defaults
      keys - array of unique record identifiers
      Throws:
      AerospikeException - if event loop registration fails
    • getHeader

      public final void getHeader​(EventLoop eventLoop, RecordSequenceListener listener, BatchPolicy policy, Key[] keys) throws AerospikeException
      Asynchronously read multiple record header data for specified keys in one batch call. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      Each record result is returned in separate onRecord() calls. If a key is not found, the record will be null. The policy can be used to specify timeouts.

      If a batch request to a node fails, responses from other nodes will continue to be processed.

      Specified by:
      getHeader in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - batch configuration parameters, pass in null for defaults
      keys - array of unique record identifiers
      Throws:
      AerospikeException - if event loop registration fails
    • operate

      public final Record operate​(WritePolicy policy, Key key, Operation... operations) throws AerospikeException
      Perform multiple read/write operations on a single key in one batch call. An example would be to add an integer value to an existing record and then read the result, all in one database call.

      The server executes operations in the same order as the operations array. Both scalar bin operations (Operation) and CDT bin operations (ListOperation, MapOperation) can be performed in same call.

      Specified by:
      operate in interface IAerospikeClient
      Parameters:
      policy - write configuration parameters, pass in null for defaults
      key - unique record identifier
      operations - database operations to perform
      Returns:
      record if there is a read in the operations list
      Throws:
      AerospikeException - if command fails
    • operate

      public final void operate​(EventLoop eventLoop, RecordListener listener, WritePolicy policy, Key key, Operation... operations) throws AerospikeException
      Asynchronously perform multiple read/write operations on a single key in one batch call. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      An example would be to add an integer value to an existing record and then read the result, all in one database call.

      The server executes operations in the same order as the operations array. Both scalar bin operations (Operation) and CDT bin operations (ListOperation, MapOperation) can be performed in same call.

      Specified by:
      operate in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results, pass in null for fire and forget
      policy - write configuration parameters, pass in null for defaults
      key - unique record identifier
      operations - database operations to perform
      Throws:
      AerospikeException - if event loop registration fails
    • scanAll

      public final void scanAll​(ScanPolicy policy, String namespace, String setName, ScanCallback callback, String... binNames) throws AerospikeException
      Read all records in specified namespace and set. If the policy's concurrentNodes is specified, each server node will be read in parallel. Otherwise, server nodes are read in series.

      This call will block until the scan is complete - callbacks are made within the scope of this call.

      Specified by:
      scanAll in interface IAerospikeClient
      Parameters:
      policy - scan configuration parameters, pass in null for defaults
      namespace - namespace - equivalent to database name
      setName - optional set name - equivalent to database table
      callback - read callback method - called with record data
      binNames - optional bin to retrieve. All bins will be returned if not specified.
      Throws:
      AerospikeException - if scan fails
    • scanAll

      public final void scanAll​(EventLoop eventLoop, RecordSequenceListener listener, ScanPolicy policy, String namespace, String setName, String... binNames) throws AerospikeException
      Asynchronously read all records in specified namespace and set. If the policy's concurrentNodes is specified, each server node will be read in parallel. Otherwise, server nodes are read in series.

      This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      Specified by:
      scanAll in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - scan configuration parameters, pass in null for defaults
      namespace - namespace - equivalent to database name
      setName - optional set name - equivalent to database table
      binNames - optional bin to retrieve. All bins will be returned if not specified.
      Throws:
      AerospikeException - if event loop registration fails
    • scanNode

      public final void scanNode​(ScanPolicy policy, String nodeName, String namespace, String setName, ScanCallback callback, String... binNames) throws AerospikeException
      Read all records in specified namespace and set for one node only. The node is specified by name.

      This call will block until the scan is complete - callbacks are made within the scope of this call.

      Specified by:
      scanNode in interface IAerospikeClient
      Parameters:
      policy - scan configuration parameters, pass in null for defaults
      nodeName - server node name
      namespace - namespace - equivalent to database name
      setName - optional set name - equivalent to database table
      callback - read callback method - called with record data
      binNames - optional bin to retrieve. All bins will be returned if not specified.
      Throws:
      AerospikeException - if scan fails
    • scanNode

      public final void scanNode​(ScanPolicy policy, Node node, String namespace, String setName, ScanCallback callback, String... binNames) throws AerospikeException
      Read all records in specified namespace and set for one node only.

      This call will block until the scan is complete - callbacks are made within the scope of this call.

      Specified by:
      scanNode in interface IAerospikeClient
      Parameters:
      policy - scan configuration parameters, pass in null for defaults
      node - server node
      namespace - namespace - equivalent to database name
      setName - optional set name - equivalent to database table
      callback - read callback method - called with record data
      binNames - optional bin to retrieve. All bins will be returned if not specified.
      Throws:
      AerospikeException - if scan fails
    • scanPartitions

      public final void scanPartitions​(ScanPolicy policy, PartitionFilter partitionFilter, String namespace, String setName, ScanCallback callback, String... binNames) throws AerospikeException
      Read records in specified namespace, set and partition filter.

      This call will block until the scan is complete - callbacks are made within the scope of this call.

      Specified by:
      scanPartitions in interface IAerospikeClient
      Parameters:
      policy - scan configuration parameters, pass in null for defaults
      partitionFilter - filter on a subset of data partitions
      namespace - namespace - equivalent to database name
      setName - optional set name - equivalent to database table
      callback - read callback method - called with record data
      binNames - optional bin to retrieve. All bins will be returned if not specified
      Throws:
      AerospikeException - if scan fails
    • scanPartitions

      public final void scanPartitions​(EventLoop eventLoop, RecordSequenceListener listener, ScanPolicy policy, PartitionFilter partitionFilter, String namespace, String setName, String... binNames) throws AerospikeException
      Asynchronously read records in specified namespace, set and partition filter.

      This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      Specified by:
      scanPartitions in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - scan configuration parameters, pass in null for defaults
      partitionFilter - filter on a subset of data partitions
      namespace - namespace - equivalent to database name
      setName - optional set name - equivalent to database table
      binNames - optional bin to retrieve. All bins will be returned if not specified.
      Throws:
      AerospikeException - if event loop registration fails
    • register

      public final RegisterTask register​(Policy policy, String clientPath, String serverPath, Language language) throws AerospikeException
      Register package located in a file containing user defined functions with server. This asynchronous server call will return before command is complete. The user can optionally wait for command completion by using the returned RegisterTask instance.
      Specified by:
      register in interface IAerospikeClient
      Parameters:
      policy - generic configuration parameters, pass in null for defaults
      clientPath - path of client file containing user defined functions, relative to current directory
      serverPath - path to store user defined functions on the server, relative to configured script directory.
      language - language of user defined functions
      Throws:
      AerospikeException - if register fails
    • register

      public final RegisterTask register​(Policy policy, ClassLoader resourceLoader, String resourcePath, String serverPath, Language language) throws AerospikeException
      Register package located in a resource containing user defined functions with server. This asynchronous server call will return before command is complete. The user can optionally wait for command completion by using the returned RegisterTask instance.
      Specified by:
      register in interface IAerospikeClient
      Parameters:
      policy - generic configuration parameters, pass in null for defaults
      resourceLoader - class loader where resource is located. Example: MyClass.class.getClassLoader() or Thread.currentThread().getContextClassLoader() for webapps
      resourcePath - class path where Lua resource is located
      serverPath - path to store user defined functions on the server, relative to configured script directory.
      language - language of user defined functions
      Throws:
      AerospikeException - if register fails
    • registerUdfString

      public final RegisterTask registerUdfString​(Policy policy, String code, String serverPath, Language language) throws AerospikeException
      Register UDF functions located in a code string with server. Example:
       
       String code =
         "local function reducer(val1,val2)\n" +
         "  return val1 + val2\n" +
         "end\n" +
         "\n" +
         "function sum_single_bin(stream,name)\n" +
         "  local function mapper(rec)\n" +
         "    return rec[name]\n" +
         "  end\n" +
         "  return stream : map(mapper) : reduce(reducer)\n" +
         "end\n";
      
       client.registerUdfString(null, code, "mysum.lua", Language.LUA);
       
       

      This asynchronous server call will return before command is complete. The user can optionally wait for command completion by using the returned RegisterTask instance.

      Specified by:
      registerUdfString in interface IAerospikeClient
      Parameters:
      policy - generic configuration parameters, pass in null for defaults
      code - code string containing user defined functions.
      serverPath - path to store user defined functions on the server, relative to configured script directory.
      language - language of user defined functions
      Throws:
      AerospikeException - if register fails
    • removeUdf

      public final void removeUdf​(InfoPolicy policy, String serverPath) throws AerospikeException
      Remove user defined function from server nodes.
      Specified by:
      removeUdf in interface IAerospikeClient
      Parameters:
      policy - info configuration parameters, pass in null for defaults
      serverPath - location of UDF on server nodes. Example: mylua.lua
      Throws:
      AerospikeException - if remove fails
    • execute

      public final Object execute​(WritePolicy policy, Key key, String packageName, String functionName, Value... functionArgs) throws AerospikeException
      Execute user defined function on server and return results. The function operates on a single record. The package name is used to locate the udf file location:

      udf file = <server udf dir>/<package name>.lua

      Specified by:
      execute in interface IAerospikeClient
      Parameters:
      policy - write configuration parameters, pass in null for defaults
      key - unique record identifier
      packageName - server package name where user defined function resides
      functionName - user defined function
      functionArgs - arguments passed in to user defined function
      Returns:
      return value of user defined function
      Throws:
      AerospikeException - if transaction fails
    • execute

      public final void execute​(EventLoop eventLoop, ExecuteListener listener, WritePolicy policy, Key key, String packageName, String functionName, Value... functionArgs) throws AerospikeException
      Asynchronously execute user defined function on server. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      The function operates on a single record. The package name is used to locate the udf file location:

      udf file = <server udf dir>/<package name>.lua

      Specified by:
      execute in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results, pass in null for fire and forget
      policy - write configuration parameters, pass in null for defaults
      key - unique record identifier
      packageName - server package name where user defined function resides
      functionName - user defined function
      functionArgs - arguments passed in to user defined function
      Throws:
      AerospikeException - if event loop registration fails
    • execute

      public final ExecuteTask execute​(WritePolicy policy, Statement statement, String packageName, String functionName, Value... functionArgs) throws AerospikeException
      Apply user defined function on records that match the statement filter. Records are not returned to the client. This asynchronous server call will return before the command is complete. The user can optionally wait for command completion by using the returned ExecuteTask instance.
      Specified by:
      execute in interface IAerospikeClient
      Parameters:
      policy - write configuration parameters, pass in null for defaults
      statement - record filter. Statement instance is not suitable for reuse since it's modified in this method.
      packageName - server package where user defined function resides
      functionName - function name
      functionArgs - to pass to function name, if any
      Throws:
      AerospikeException - if command fails
    • execute

      public final ExecuteTask execute​(WritePolicy policy, Statement statement, Operation... operations) throws AerospikeException
      Apply operations on records that match the statement filter. Records are not returned to the client. This asynchronous server call will return before the command is complete. The user can optionally wait for command completion by using the returned ExecuteTask instance.
      Specified by:
      execute in interface IAerospikeClient
      Parameters:
      policy - write configuration parameters, pass in null for defaults
      statement - record filter. Statement instance is not suitable for reuse since it's modified in this method.
      operations - list of operations to be performed on selected records
      Throws:
      AerospikeException - if command fails
    • query

      public final RecordSet query​(QueryPolicy policy, Statement statement) throws AerospikeException
      Execute query on all server nodes and return record iterator. The query executor puts records on a queue in separate threads. The calling thread concurrently pops records off the queue through the record iterator.
      Specified by:
      query in interface IAerospikeClient
      Parameters:
      policy - query configuration parameters, pass in null for defaults
      statement - query filter. Statement instance is not suitable for reuse since it's modified in this method.
      Returns:
      record iterator
      Throws:
      AerospikeException - if query fails
    • query

      public final void query​(EventLoop eventLoop, RecordSequenceListener listener, QueryPolicy policy, Statement statement) throws AerospikeException
      Asynchronously execute query on all server nodes. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      Each record result is returned in separate onRecord() calls.

      Specified by:
      query in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - query configuration parameters, pass in null for defaults
      statement - query filter. Statement instance is not suitable for reuse since it's modified in this method.
      Throws:
      AerospikeException - if event loop registration fails
    • queryNode

      public final RecordSet queryNode​(QueryPolicy policy, Statement statement, Node node) throws AerospikeException
      Execute query on a single server node and return record iterator. The query executor puts records on a queue in a separate thread. The calling thread concurrently pops records off the queue through the record iterator.
      Specified by:
      queryNode in interface IAerospikeClient
      Parameters:
      policy - query configuration parameters, pass in null for defaults
      statement - query filter. Statement instance is not suitable for reuse since it's modified in this method.
      node - server node to execute query
      Returns:
      record iterator
      Throws:
      AerospikeException - if query fails
    • queryPartitions

      public final RecordSet queryPartitions​(QueryPolicy policy, Statement statement, PartitionFilter partitionFilter) throws AerospikeException
      Execute query for specified partitions and return record iterator. The query executor puts records on a queue in separate threads. The calling thread concurrently pops records off the queue through the record iterator.
      Specified by:
      queryPartitions in interface IAerospikeClient
      Parameters:
      policy - query configuration parameters, pass in null for defaults
      statement - query filter. Statement instance is not suitable for reuse since it's modified in this method.
      partitionFilter - filter on a subset of data partitions
      Throws:
      AerospikeException - if query fails
    • queryPartitions

      public final void queryPartitions​(EventLoop eventLoop, RecordSequenceListener listener, QueryPolicy policy, Statement statement, PartitionFilter partitionFilter) throws AerospikeException
      Asynchronously execute query for specified partitions. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      Each record result is returned in separate onRecord() calls.

      Specified by:
      queryPartitions in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - query configuration parameters, pass in null for defaults
      statement - query filter. Statement instance is not suitable for reuse since it's modified in this method.
      partitionFilter - filter on a subset of data partitions
      Throws:
      AerospikeException - if query fails
    • queryAggregate

      public final ResultSet queryAggregate​(QueryPolicy policy, Statement statement, String packageName, String functionName, Value... functionArgs) throws AerospikeException
      Execute query, apply statement's aggregation function, and return result iterator. The query executor puts results on a queue in separate threads. The calling thread concurrently pops results off the queue through the result iterator.

      The aggregation function is called on both server and client (final reduce). Therefore, the Lua script files must also reside on both server and client. The package name is used to locate the udf file location:

      udf file = <udf dir>/<package name>.lua

      Specified by:
      queryAggregate in interface IAerospikeClient
      Parameters:
      policy - query configuration parameters, pass in null for defaults
      statement - query filter. Statement instance is not suitable for reuse since it's modified in this method.
      packageName - server package where user defined function resides
      functionName - aggregation function name
      functionArgs - arguments to pass to function name, if any
      Returns:
      result iterator
      Throws:
      AerospikeException - if query fails
    • queryAggregate

      public final ResultSet queryAggregate​(QueryPolicy policy, Statement statement) throws AerospikeException
      Execute query, apply statement's aggregation function, and return result iterator. The aggregation function should be initialized via the statement's setAggregateFunction() and should be located in a resource or a filesystem file.

      The query executor puts results on a queue in separate threads. The calling thread concurrently pops results off the queue through the ResultSet iterator. The aggregation function is called on both server and client (final reduce). Therefore, the Lua script file must also reside on both server and client.

      Specified by:
      queryAggregate in interface IAerospikeClient
      Parameters:
      policy - query configuration parameters, pass in null for defaults
      statement - query filter. Statement instance is not suitable for reuse since it's modified in this method.
      Throws:
      AerospikeException - if query fails
    • queryAggregateNode

      public final ResultSet queryAggregateNode​(QueryPolicy policy, Statement statement, Node node) throws AerospikeException
      Execute query on a single server node, apply statement's aggregation function, and return result iterator. The aggregation function should be initialized via the statement's setAggregateFunction() and should be located in a resource or a filesystem file.

      The query executor puts results on a queue in separate threads. The calling thread concurrently pops results off the queue through the ResultSet iterator. The aggregation function is called on both server and client (final reduce). Therefore, the Lua script file must also reside on both server and client.

      Specified by:
      queryAggregateNode in interface IAerospikeClient
      Parameters:
      policy - query configuration parameters, pass in null for defaults
      statement - query filter. Statement instance is not suitable for reuse since it's modified in this method.
      node - server node to execute query
      Throws:
      AerospikeException - if query fails
    • createIndex

      public final IndexTask createIndex​(Policy policy, String namespace, String setName, String indexName, String binName, IndexType indexType) throws AerospikeException
      Create scalar secondary index. This asynchronous server call will return before command is complete. The user can optionally wait for command completion by using the returned IndexTask instance.
      Specified by:
      createIndex in interface IAerospikeClient
      Parameters:
      policy - generic configuration parameters, pass in null for defaults
      namespace - namespace - equivalent to database name
      setName - optional set name - equivalent to database table
      indexName - name of secondary index
      binName - bin name that data is indexed on
      indexType - underlying data type of secondary index
      Throws:
      AerospikeException - if index create fails
    • createIndex

      public final IndexTask createIndex​(Policy policy, String namespace, String setName, String indexName, String binName, IndexType indexType, IndexCollectionType indexCollectionType) throws AerospikeException
      Create complex secondary index to be used on bins containing collections. This asynchronous server call will return before command is complete. The user can optionally wait for command completion by using the returned IndexTask instance.
      Specified by:
      createIndex in interface IAerospikeClient
      Parameters:
      policy - generic configuration parameters, pass in null for defaults
      namespace - namespace - equivalent to database name
      setName - optional set name - equivalent to database table
      indexName - name of secondary index
      binName - bin name that data is indexed on
      indexType - underlying data type of secondary index
      indexCollectionType - index collection type
      Throws:
      AerospikeException - if index create fails
    • createIndex

      public final void createIndex​(EventLoop eventLoop, IndexListener listener, Policy policy, String namespace, String setName, String indexName, String binName, IndexType indexType, IndexCollectionType indexCollectionType) throws AerospikeException
      Asynchronously create complex secondary index to be used on bins containing collections. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.
      Specified by:
      createIndex in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - generic configuration parameters, pass in null for defaults
      namespace - namespace - equivalent to database name
      setName - optional set name - equivalent to database table
      indexName - name of secondary index
      binName - bin name that data is indexed on
      indexType - underlying data type of secondary index
      indexCollectionType - index collection type
      Throws:
      AerospikeException - if index create fails
    • dropIndex

      public final IndexTask dropIndex​(Policy policy, String namespace, String setName, String indexName) throws AerospikeException
      Delete secondary index. This asynchronous server call will return before command is complete. The user can optionally wait for command completion by using the returned IndexTask instance.
      Specified by:
      dropIndex in interface IAerospikeClient
      Parameters:
      policy - generic configuration parameters, pass in null for defaults
      namespace - namespace - equivalent to database name
      setName - optional set name - equivalent to database table
      indexName - name of secondary index
      Throws:
      AerospikeException - if index drop fails
    • dropIndex

      public final void dropIndex​(EventLoop eventLoop, IndexListener listener, Policy policy, String namespace, String setName, String indexName) throws AerospikeException
      Asynchronously delete secondary index. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.
      Specified by:
      dropIndex in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - generic configuration parameters, pass in null for defaults
      namespace - namespace - equivalent to database name
      setName - optional set name - equivalent to database table
      indexName - name of secondary index
      Throws:
      AerospikeException - if index drop fails
    • info

      public final void info​(EventLoop eventLoop, InfoListener listener, InfoPolicy policy, Node node, String... commands) throws AerospikeException
      Asynchronously make info commands. This method registers the command with an event loop and returns. The event loop thread will process the command and send the results to the listener.

      The info protocol is a name/value pair based system, where an individual database server node is queried to determine its configuration and status. The list of supported info commands can be found at: https://www.aerospike.com/docs/reference/info/index.html

      Specified by:
      info in interface IAerospikeClient
      Parameters:
      eventLoop - event loop that will process the command
      listener - where to send results
      policy - info configuration parameters, pass in null for defaults
      node - server node to execute command, pass in null for random node
      commands - list of info commands
      Throws:
      AerospikeException - if info commands fail
    • createUser

      public final void createUser​(AdminPolicy policy, String user, String password, List<String> roles) throws AerospikeException
      Create user with password and roles. Clear-text password will be hashed using bcrypt before sending to server.
      Specified by:
      createUser in interface IAerospikeClient
      Parameters:
      policy - admin configuration parameters, pass in null for defaults
      user - user name
      password - user password in clear-text format
      roles - variable arguments array of role names. Predefined roles are listed in Role
      Throws:
      AerospikeException - if command fails
    • dropUser

      public final void dropUser​(AdminPolicy policy, String user) throws AerospikeException
      Remove user from cluster.
      Specified by:
      dropUser in interface IAerospikeClient
      Parameters:
      policy - admin configuration parameters, pass in null for defaults
      user - user name
      Throws:
      AerospikeException - if command fails
    • changePassword

      public final void changePassword​(AdminPolicy policy, String user, String password) throws AerospikeException
      Change user's password.
      Specified by:
      changePassword in interface IAerospikeClient
      Parameters:
      policy - admin configuration parameters, pass in null for defaults
      user - user name
      password - user password in clear-text format
      Throws:
      AerospikeException - if command fails
    • grantRoles

      public final void grantRoles​(AdminPolicy policy, String user, List<String> roles) throws AerospikeException
      Add roles to user's list of roles.
      Specified by:
      grantRoles in interface IAerospikeClient
      Parameters:
      policy - admin configuration parameters, pass in null for defaults
      user - user name
      roles - role names. Predefined roles are listed in Role
      Throws:
      AerospikeException - if command fails
    • revokeRoles

      public final void revokeRoles​(AdminPolicy policy, String user, List<String> roles) throws AerospikeException
      Remove roles from user's list of roles.
      Specified by:
      revokeRoles in interface IAerospikeClient
      Parameters:
      policy - admin configuration parameters, pass in null for defaults
      user - user name
      roles - role names. Predefined roles are listed in Role
      Throws:
      AerospikeException - if command fails
    • createRole

      public final void createRole​(AdminPolicy policy, String roleName, List<Privilege> privileges) throws AerospikeException
      Create user defined role.
      Specified by:
      createRole in interface IAerospikeClient
      Parameters:
      policy - admin configuration parameters, pass in null for defaults
      roleName - role name
      privileges - privileges assigned to the role.
      Throws:
      AerospikeException - if command fails
    • createRole

      public final void createRole​(AdminPolicy policy, String roleName, List<Privilege> privileges, List<String> whitelist) throws AerospikeException
      Create user defined role with optional privileges and whitelist.
      Parameters:
      policy - admin configuration parameters, pass in null for defaults
      roleName - role name
      privileges - optional list of privileges assigned to role.
      whitelist - optional list of allowable IP addresses assigned to role. IP addresses can contain wildcards (ie. 10.1.2.0/24).
      Throws:
      AerospikeException - if command fails
    • dropRole

      public final void dropRole​(AdminPolicy policy, String roleName) throws AerospikeException
      Drop user defined role.
      Specified by:
      dropRole in interface IAerospikeClient
      Parameters:
      policy - admin configuration parameters, pass in null for defaults
      roleName - role name
      Throws:
      AerospikeException - if command fails
    • grantPrivileges

      public final void grantPrivileges​(AdminPolicy policy, String roleName, List<Privilege> privileges) throws AerospikeException
      Grant privileges to an user defined role.
      Specified by:
      grantPrivileges in interface IAerospikeClient
      Parameters:
      policy - admin configuration parameters, pass in null for defaults
      roleName - role name
      privileges - privileges assigned to the role.
      Throws:
      AerospikeException - if command fails
    • revokePrivileges

      public final void revokePrivileges​(AdminPolicy policy, String roleName, List<Privilege> privileges) throws AerospikeException
      Revoke privileges from an user defined role.
      Specified by:
      revokePrivileges in interface IAerospikeClient
      Parameters:
      policy - admin configuration parameters, pass in null for defaults
      roleName - role name
      privileges - privileges assigned to the role.
      Throws:
      AerospikeException - if command fails
    • setWhitelist

      public final void setWhitelist​(AdminPolicy policy, String roleName, List<String> whitelist) throws AerospikeException
      Set IP address whitelist for a role. If whitelist is null or empty, remove existing whitelist from role.
      Parameters:
      policy - admin configuration parameters, pass in null for defaults
      roleName - role name
      whitelist - list of allowable IP addresses or null. IP addresses can contain wildcards (ie. 10.1.2.0/24).
      Throws:
      AerospikeException - if command fails
    • queryUser

      public final User queryUser​(AdminPolicy policy, String user) throws AerospikeException
      Retrieve roles for a given user.
      Specified by:
      queryUser in interface IAerospikeClient
      Parameters:
      policy - admin configuration parameters, pass in null for defaults
      user - user name filter
      Throws:
      AerospikeException - if command fails
    • queryUsers

      public final List<User> queryUsers​(AdminPolicy policy) throws AerospikeException
      Retrieve all users and their roles.
      Specified by:
      queryUsers in interface IAerospikeClient
      Parameters:
      policy - admin configuration parameters, pass in null for defaults
      Throws:
      AerospikeException - if command fails
    • queryRole

      public final Role queryRole​(AdminPolicy policy, String roleName) throws AerospikeException
      Retrieve role definition.
      Specified by:
      queryRole in interface IAerospikeClient
      Parameters:
      policy - admin configuration parameters, pass in null for defaults
      roleName - role name filter
      Throws:
      AerospikeException - if command fails
    • queryRoles

      public final List<Role> queryRoles​(AdminPolicy policy) throws AerospikeException
      Retrieve all roles.
      Specified by:
      queryRoles in interface IAerospikeClient
      Parameters:
      policy - admin configuration parameters, pass in null for defaults
      Throws:
      AerospikeException - if command fails