Aerospike.Client Namespace

Aerospike Client Library

Classes

AdminPolicy Policy attributes used for user administration commands.
AerospikeClient 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.

AerospikeException Aerospike exceptions that can be thrown from the client.
AerospikeExceptionBackoff Exception thrown when node is in backoff mode due to excessive number of errors.
AerospikeExceptionBatchExists Exception thrown when a batch exists method fails.
AerospikeExceptionBatchRecordArray Exception thrown when a batch write method fails. The records fields contains responses for key requests that succeeded and result codes for key requests that failed.
AerospikeExceptionBatchRecords Exception thrown when a batch read method fails. The records fields contains responses for key requests that succeeded and null records for key requests that failed.
AerospikeExceptionCommandRejected Exception thrown when asynchronous command was rejected because the max concurrent database commands have been exceeded.
AerospikeExceptionConnection Exception thrown when client can't connect to the server.
AerospikeExceptionEndOfGRPCStream Exception used like a iterrupt to indicate the end of a GRPC stream has been reached
AerospikeExceptionInvalidNamespace Exception thrown when namespace is invalid.
AerospikeExceptionInvalidNode Exception thrown when chosen node is not active.
AerospikeExceptionParse Exception thrown when client can't parse data returned from server.
AerospikeExceptionQueryTerminated Exception thrown when query was terminated prematurely.
AerospikeExceptionScanTerminated Exception thrown when scan was terminated prematurely.
AerospikeExceptionSerialize Exception thrown when a default serialization error occurs.
AerospikeExceptionTimeout Exception thrown when database request expires before completing.
AsyncClient Asynchronous Aerospike client.

Your application uses this class to perform asynchronous 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.

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

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.

AsyncClientPolicy Asynchronous client policy configuration.
AsyncCluster 
AsyncConnectionArgs Normal async connection implemented with SocketAsyncEventArgs.
AsyncConnectionTls Async TLS connection.
AsyncNode Asynchronous server node representation.
AsyncTimeoutQueue 
BaseTask Task used to poll for server task completion.
BatchDelete Batch delete operation.
BatchDeletePolicy Policy attributes used in batch delete commands.
BatchPolicy Batch parent policy.
BatchRead Batch key and read only operations with default policy. Used in batch read commands where different bins are needed for each key.
BatchReadPolicy Policy attributes used in batch read commands.
BatchRecord Batch key and record result.
BatchResults Batch record results.
BatchUDF Batch user defined functions.
BatchUDFPolicy Policy attributes used in batch UDF execute commands.
BatchWrite Batch key and read/write operations with write policy.
BatchWritePolicy Policy attributes used in batch write commands.
BitExp Bit expression generator. See Exp.

The bin expression argument in these methods can be a reference to a bin or the result of another expression. Expressions that modify bin values are only used for temporary expression evaluation and are not permanently applied to the bin. Bit modify expressions return the blob bin's value.

Offset orientation is left-to-right. Negative offsets are supported. If the offset is negative, the offset starts backwards from end of the bitmap. If an offset is out of bounds, a parameter error will be returned.

BitOperation Bit operations. Create bit operations used by client operate command. Offset orientation is left-to-right. Negative offsets are supported. If the offset is negative, the offset starts backwards from end of the bitmap. If an offset is out of bounds, a parameter error will be returned.

Bit operations on bitmap items nested in lists/maps are not currently supported by the server.

BitPolicy Bit operation policy.
BlockScheduler Block until command slot is available.
ClientPolicy Client initialization arguments.
Cluster 
ClusterStats Cluster statistics.
ConnectionStats Connection statistics.
CTX Nested CDT context. Identifies the location of nested list/map to apply the operation. for the current level. An array of CTX identifies location of the list/map on multiple levels on nesting.
DelayScheduler Put command on delay queue for later execution if capacity has been reached.
ExecuteTask Task used to poll for long running execute job completion.
Exp Expression generator.
ExpOperation Expression operations.
Expression Packed expression byte instructions.
Filter Query filter used to narrow down query results.
HLLExp HyperLogLog (HLL) expression generator. See Exp.

The bin expression argument in these methods can be a reference to a bin or the result of another expression. Expressions that modify bin values are only used for temporary expression evaluation and are not permanently applied to the bin. HLL modify expressions return the HLL bin's value.

HLLOperation HyperLogLog (HLL) operations.

HyperLogLog operations on HLL items nested in lists/maps are not currently supported by the server.

HLLPolicy HyperLogLog operation policy.
Host Host name/port of database server.
IndexTask Task used to poll for long running create index completion.
Info Access server's info monitoring protocol.

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 names can be found at:

https://www.aerospike.com/docs/reference/info/index.html

InfoPolicy Policy attributes used for info commands.
Join Client-side join definition. The left record must contain a bin with a list of keys. That list will be used to retreive other records in the given namespace and set.
Key Unique record identifier. Records can be identified using a specified namespace, an optional set name, and a user defined key which must be unique within a set. Records can also be identified by namespace/digest which is the combination used on the server.
KeyRecord Container object for key identifier and record data.
Latency 
LatencyBuckets Latency buckets for a transaction group (See {@link com.aerospike.client.metrics.LatencyType}). Latency bucket counts are cumulative and not reset on each metrics snapshot interval.
ListExp List expression generator. See Exp.

The bin expression argument in these methods can be a reference to a bin or the result of another expression. Expressions that modify bin values are only used for temporary expression evaluation and are not permanently applied to the bin.

List modify expressions return the bin's value. This value will be a list except when the list is nested within a map. In that case, a map is returned for the list modify expression.

List expressions support negative indexing. If the index is negative, the resolved index starts backwards from end of list. If an index is out of bounds, a parameter error will be returned. If a range is partially out of bounds, the valid part of the range will be returned. Index/Range examples:

  • Index 0: First item in list.
  • Index 4: Fifth item in list.
  • Index -1: Last item in list.
  • Index -3: Third to last item in list.
  • Index 1 Count 2: Second and third items in list.
  • Index -3 Count 3: Last three items in list.
  • Index -5 Count 4: Range between fifth to last item to second to last item inclusive.

Nested expressions are supported by optional CTX context arguments. Example:

  • bin = [[7,9,5],[1,2,3],[6,5,4,1]]
  • Get size of last list.
  • ListExp.size(Exp.ListBin("bin"), CTX.listIndex(-1))
  • result = 4

ListOperation List bin operations. Create list operations used by client operate command.

List operations support negative indexing. If the index is negative, the resolved index starts backwards from end of list. If an index is out of bounds, a parameter error will be returned. If a range is partially out of bounds, the valid part of the range will be returned. Index/Range examples:

  • Index 0: First item in list.
  • Index 4: Fifth item in list.
  • Index -1: Last item in list.
  • Index -3: Third to last item in list.
  • Index 1 Count 2: Second and third items in list.
  • Index -3 Count 3: Last three items in list.
  • Index -5 Count 4: Range between fifth to last item to second to last item inclusive.

Nested CDT operations are supported by optional CTX context arguments. Examples:

  • bin = [[7,9,5],[1,2,3],[6,5,4,1]]
  • Append 11 to last list.
  • ListOperation.append("bin", Value.Get(11), CTX.listIndex(-1))
  • bin result = [[7,9,5],[1,2,3],[6,5,4,1,11]]
  • bin = {key1=[[7,9,5],[13]], key2=[[9],[2,4],[6,1,9]], key3=[[6,5]]}
  • Append 11 to lowest ranked list in map identified by "key2".
  • ListOperation.append("bin", Value.Get(11), CTX.mapKey(Value.Get("key2")), CTX.listRank(0))
  • bin result = {key1=[[7,9,5],[13]], key2=[[9],[2,4,11],[6,1,9]], key3=[[6,5]]}

ListPolicy List policy directives when creating a list and writing list items.
Log Aerospike client logging facility. Logs can be filtered and message callbacks can be defined to control how log messages are written.
LogContext Additional context sent to log callback messages.
LuaConfig Lua static configuration variables. These variables apply to all AerospikeClient instances in a single process.
MapExp Map expression generator. See Exp.

The bin expression argument in these methods can be a reference to a bin or the result of another expression. Expressions that modify bin values are only used for temporary expression evaluation and are not permanently applied to the bin.

Map modify expressions return the bin's value. This value will be a map except when the map is nested within a list. In that case, a list is returned for the map modify expression.

Valid map key types are:

  • string
  • integer
  • byte[]
The server will vaildate map key types in an upcoming release.

All maps maintain an index and a rank. The index is the item offset from the start of the map, for both unordered and ordered maps. The rank is the sorted index of the value component. Map supports negative indexing for index and rank.

Index examples:

  • Index 0: First item in map.
  • Index 4: Fifth item in map.
  • Index -1: Last item in map.
  • Index -3: Third to last item in map.
  • Index 1 Count 2: Second and third items in map.
  • Index -3 Count 3: Last three items in map.
  • Index -5 Count 4: Range between fifth to last item to second to last item inclusive.

Rank examples:

  • Rank 0: Item with lowest value rank in map.
  • Rank 4: Fifth lowest ranked item in map.
  • Rank -1: Item with highest ranked value in map.
  • Rank -3: Item with third highest ranked value in map.
  • Rank 1 Count 2: Second and third lowest ranked items in map.
  • Rank -3 Count 3: Top three ranked items in map.

Nested expressions are supported by optional CTX context arguments. Example:

  • bin = {key1={key11=9,key12=4}, key2={key21=3,key22=5}}
  • Set map value to 11 for map key "key21" inside of map key "key2".
  • Get size of map key2.
  • MapExp.size(Exp.MapBin("bin"), CTX.mapKey(Value.get("key2"))
  • result = 2

MapOperation Map bin operations. Create map operations used by the client operate command. The default unique key map is unordered. Valid map key types are:
  • string
  • integer
  • byte[]
The server will validate map key types in an upcoming release.

All maps maintain an index and a rank. The index is the item offset from the start of the map, for both unordered and ordered maps. The rank is the sorted index of the value component. Map supports negative indexing for index and rank.

Index examples:

  • Index 0: First item in map.
  • Index 4: Fifth item in map.
  • Index -1: Last item in map.
  • Index -3: Third to last item in map.
  • Index 1 Count 2: Second and third items in map.
  • Index -3 Count 3: Last three items in map.
  • Index -5 Count 4: Range between fifth to last item to second to last item inclusive.

Rank examples:

  • Rank 0: Item with lowest value rank in map.
  • Rank 4: Fifth lowest ranked item in map.
  • Rank -1: Item with highest ranked value in map.
  • Rank -3: Item with third highest ranked value in map.
  • Rank 1 Count 2: Second and third lowest ranked items in map.
  • Rank -3 Count 3: Top three ranked items in map.

Nested CDT operations are supported by optional CTX context arguments. Examples:

  • bin = {key1={key11=9,key12=4}, key2={key21=3,key22=5}}
  • Set map value to 11 for map key "key21" inside of map key "key2".
  • MapOperation.put(MapPolicy.Default, "bin", Value.Get("key21"), Value.Get(11), CTX.mapKey(Value.Get("key2")))
  • bin result = {key1={key11=9,key12=4},key2={key21=11,key22=5}}
  • bin = {key1={key11={key111=1},key12={key121=5}}, key2={key21={"key211",7}}}
  • Set map value to 11 in map key "key121" for highest ranked map ("key12") inside of map key "key1".
  • MapOperation.put(MapPolicy.Default, "bin", Value.Get("key121"), Value.Get(11), CTX.mapKey(Value.Get("key1")), CTX.mapRank(-1))
  • bin result = {key1={key11={key111=1},key12={key121=11}}, key2={key21={"key211",7}}}

MapPolicy Map policy directives when creating a map and writing map items.
MetricsPolicy Client periodic metrics configuration.
MetricsWriter Client metrics listener.
Node Server node representation. This class manages server node connections and health status.
NodeMetrics Client metrics listener.
NodeStats Node statistics.
Operation Database operation definition. The class is used in client's operate() method.
PartitionFilter 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, set Partitions to null.

PartitionStatus 
Policy Transaction policy attributes used in all database commands.
Privilege User privilege.
QueryListenerCommand 
QueryListenerExecutor 
QueryPolicy Container object for policy attributes used in query operations.
RandomShift Generate pseudo random numbers using xorshift128+ algorithm. This class is not thread-safe and should be instantiated once per thread.
Record Container object for records. Records are equivalent to rows.
RecordParser 
RecordSet This class manages record retrieval from queries. Multiple threads will retrieve records from the server nodes and put these records on the queue. The single user thread consumes these records from the queue.
RegexFlag Regex bit flags.
RegisterTask Task used to poll for UDF registration completion.
RejectScheduler Reject command if capacity has been reached.
ResultCode Database operation error codes.
ResultSet This class manages result retrieval from queries. Multiple threads will retrieve results from the server nodes and put these results on the queue. The single user thread consumes these results from the queue.
Role Role definition.
SaltParseExceptionException for signalling parse errors.
ScanPolicy Container object for optional parameters used in scan operations.
Statement Query statement parameters.
ThreadLocalData 
TlsPolicy TLS connection policy. Secure connections are only supported for AerospikeClient synchronous commands.

Secure connections are not supported for asynchronous commands because AsyncClient uses the best performing SocketAsyncEventArgs. Unfortunately, SocketAsyncEventArgs is not supported by the provided SslStream.

User User and assigned roles.
Value Polymorphic value classes used to efficiently serialize objects into the wire protocol.
ValueBlobValue Blob value.
ValueBooleanValue Boolean value.
ValueBoolIntValue Boolean value that converts to integer when sending a bin to the server. This class will be deleted once full conversion to boolean particle type is complete.
ValueByteSegmentValue Byte segment value.
ValueBytesValue Byte array value.
ValueByteValue Byte value.
ValueDoubleValue Double value.
ValueFloatValue Float value.
ValueGeoJSONValue GeoJSON value.
ValueHLLValue HyperLogLog value.
ValueInfinityValue Infinity value.
ValueIntegerValue Integer value.
ValueListValue List value.
ValueLongValue Long value.
ValueMapValue Map value.
ValueNullValue Empty value.
ValueShortValue Short value.
ValueSignedByteValue Byte value.
ValueStringValue String value.
ValueUnsignedIntegerValue Unsigned integer value.
ValueUnsignedLongValue Unsigned long value.
ValueUnsignedShortValue Unsigned short value.
ValueValueArray Value array.
ValueWildcardValue Wildcard value.
ValueT 
WritePolicy Container object for policy attributes used in write operations. This object is passed into methods where database writes can occur.

Structures

Bin Column name/value pair.
ValueRipemd160 RIPEMD-160 hash. Algorithm provided by Hans Dobbertin, Antoon Bosselaers, and Bart Preneel: https://homes.esat.kuleuven.be/~bosselae/ripemd160.html This is an optimized implementation based on Bouncy Castle's RipeMD160Digest.cs: http://www.bouncycastle.org/csharp
Obsolete.
ValueStopwatchStopwatch but as a struct.

Interfaces

AsyncScheduler Async command scheduling interface.
BatchListListener Asynchronous result notifications for batch get commands with variable bins per key. The result is sent in a single list.
BatchOperateListListener Asynchronous result notifications for batch operate commands with variable operations.
BatchRecordArrayListener Asynchronous result notifications for batch operate commands.
BatchRecordSequenceListener Asynchronous result notifications for batch operate commands. The results are sent one record at a time.
BatchSequenceListener Asynchronous result notifications for batch get commands with variable bins per key. The results are sent one batch record at a time.
DeleteListener Asynchronous result notifications for delete commands.
ExecuteListener Asynchronous result notifications for execute commands.
ExistsArrayListener Asynchronous result notifications for batch exists commands. The result is sent in a single array.
ExistsListener Asynchronous result notifications for exists commands.
ExistsSequenceListener Asynchronous result notifications for batch exists commands. The results are sent one record at a time.
IAerospikeClient 
IAsyncClient Asynchronous Aerospike client.

Your application uses this interface to perform asynchronous 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.

Clients implementing this interface must be thread-safe. One client instance should be used per cluster. Multiple threads should share same cluster instance.

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.

IAsyncCommand 
IConnection Socket connection wrapper.
IMetricsListener Client metrics listener.
InfoListener Asynchronous info command result notification.
IRecordParser 
IRecordSet 
IResultSet 
RecordArrayListener Asynchronous result notifications for batch get commands. The result is sent in a single array.
RecordListener Asynchronous result notifications for get or operate commands.
RecordSequenceListener Asynchronous result notifications for batch get and scan commands. The results are sent one record at a time.
WriteListener Asynchronous result notifications for put, append, prepend, add, delete and touch commands.

Delegates

LogCallback Log callback message definition.
LogContextCallback Log callback message definition with additional context.
QueryListener This method will be called for each record returned from a sync query. The user may throw a AerospikeExceptionQueryTerminated exception if the query should be aborted. If an exception is thrown, parallel query command threads to other nodes will also be terminated.
ScanCallback This method will be called for each record returned from a scan. The user may throw a AerospikeExceptionScanTerminated exception if the scan should be aborted. If any exception is thrown, parallel scan threads to other nodes will also be terminated and the exception will be propagated back through the initiating scan call.

If concurrentNodes is true and maxConcurrentNodes is not equal one, then your scan callback implementation must be thread safe.

Enumerations

AuthMode Authentication mode.
BatchRecordType Batch command type.
BitOverflowAction Bitwise operation flags for resize.
BitResizeFlags Bitwise operation flags for resize.
BitWriteFlags Bitwise operation policy write flags.
CommitLevel Desired consistency guarantee when committing a transaction on the server.
ExpType Expression type.
ExpReadFlags Expression read flags.
ExpWriteFlags Expression write flags.
GenerationPolicy How to handle record writes based on record generation.
HLLWriteFlags HyperLogLog operation policy write flags.
IndexCollectionType Secondary index collection type.
IndexType Underlying data type of secondary index.
Language User defined function languages.
LatencyLatencyType 
ListOrder List storage order.
ListReturnType List return type. Type of data to return when selecting or removing items from the list.
ListSortFlags List sort flags
ListWriteFlags List write bit flags.
LogLevel Log escalation level.
MapOrder Map storage order.
MapReturnType Map return type. Type of data to return when selecting or removing items from the map.
MapWriteFlags Map write bit flags. Requires server versions >= 4.3.
MapWriteMode Unique key map write type. This enum should only be used for server versions < 4.3. are recommended for server versions >= 4.3.
MaxCommandAction How to handle cases when the asynchronous maximum number of concurrent database commands have been exceeded.
OperationType 
ParticleType 
PrivilegeCode Permission codes define the type of permission granted for a user's role.
QueryDuration Expected query duration. The server treats the query in different ways depending on the expected duration. This enum is ignored for aggregation queries, background queries and server versions < 6.0.
ReadModeAP Read policy for AP (availability) namespaces.

How duplicates should be consulted in a read operation. Only makes a difference during migrations and only applicable in AP mode.

ReadModeSC Read policy for SC (strong consistency) namespaces.

Determines SC read consistency options.

RecordExistsAction How to handle writes when the record already exists.
Replica Defines algorithm used to determine the target node for a command. Scan and query are not affected by replica algorithm.