Namespace Aerospike.Client
Classes
- AbortStatus
Transaction abort error status code
- 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.
- AerospikeException.Backoff
Exception thrown when node is in backoff mode due to excessive number of errors.
- AerospikeException.BatchExists
Exception thrown when a batch exists method fails.
- AerospikeException.BatchRecordArray
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.
- AerospikeException.BatchRecords
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.
- AerospikeException.CommandRejected
Exception thrown when asynchronous command was rejected because the max concurrent database commands have been exceeded.
- AerospikeException.Commit
Exception thrown when a transaction commit fails. Commit Exception has similar behavior to AggregateException. InnerExceptions might be populated if mutliple exceptions contribute to the failure.
- AerospikeException.Connection
Exception thrown when client can't connect to the server.
- AerospikeException.InvalidNamespace
Exception thrown when namespace is invalid.
- AerospikeException.InvalidNode
Exception thrown when chosen node is not active.
- AerospikeException.Parse
Exception thrown when client can't parse data returned from server.
- AerospikeException.QueryTerminated
Exception thrown when query was terminated prematurely.
- AerospikeException.ScanTerminated
Exception thrown when scan was terminated prematurely.
- AerospikeException.Serialize
Exception thrown when a default serialization error occurs.
- AerospikeException.Timeout
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.
- AsyncCommand
Asynchronous command handler.
- AsyncConnection
Async connection base class.
- AsyncConnectionArgs
Normal async connection implemented with SocketAsyncEventArgs.
- AsyncConnectionTls
Async TLS connection.
- AsyncNode
Asynchronous server node representation.
- BCrypt
BCrypt implementation.
- 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.
- CDTOperation
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.
- 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.
- ClientPolicy
Client initialization arguments.
- ClusterStats
Cluster statistics.
- CommitError
Transaction error status.
- CommitStatus
Transaction commit status code.
- Connection
Socket connection wrapper.
- ConnectionRecover
Class used to recover sync connections based on timeoutDelay
- ConnectionStats
Connection statistics.
- Counter
A Counter is a container for a namespace-aggregate map of long counters
- 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.
- Exp.Module
For internal use only.
- 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.
- Hash
This class contains the algorithm used to create hash digests from user keys.
- Histograms
A Histograms object is a container for a map of namespaces to histograms (as defined by their associated LatencyBuckets) and their histogram properties
- 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:
- Info.NameValueParser
Parser for responses in name/value pair format:
<command>\t<name1>=<value1>;<name2>=<value2>;...\n
- 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.
- LatencyBuckets
Latency buckets for a command group (See Latency.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.
- Log.Context
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.
- Packer
Serialize collection objects using MessagePack format specification:
- 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.
- PartitionParser
Parse node's master (and optionally prole) partitions.
- PeerParser
Parse node's peers.
- Policy
Command policy attributes used in all database commands.
- Pool<T>
Concurrent bounded LIFO stack with ability to pop from head or tail.
The standard library concurrent stack, ConcurrentStack, does not allow pop from both head and tail.
- Privilege
User privilege.
- QueryPolicy
Container object for policy attributes used in query operations.
Inherited Policy fields Txn and failOnFilteredOut are ignored.
- RackParser
Parse rack-ids info command.
- 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.
- 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.
- SaltParseException
Exception for signalling parse errors.
- ScanPolicy
Container object for optional parameters used in scan operations.
Inherited Policy fields Txn and failOnFilteredOut are ignored.
- Statement
Query statement parameters.
- TlsConnection
TLS connection wrapper.
- TlsPolicy
TLS connection policy. Secure connections are supported for AerospikeClient synchronous commands and asynchronous commands.
- Txn
Transaction. Each command in the transaction must use the same namespace.
- TxnRollPolicy
Transaction policy fields used to batch roll forward/backward records on commit or abort.Used a placeholder for now as there are no additional fields beyond BatchPolicy.
- TxnVerifyPolicy
Transaction policy fields used to batch verify record versions on commit. Used a placeholder for now as there are no additional fields beyond BatchPolicy.
- Unpacker
De-serialize collection objects using MessagePack format specification:
- User
User and assigned roles.
- Value
Polymorphic value classes used to efficiently serialize objects into the wire protocol.
- Value.BlobValue
Blob value.
- Value.BoolIntValue
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.
- Value.BooleanValue
Boolean value.
- Value.ByteSegmentValue
Byte segment value.
- Value.ByteValue
Byte value.
- Value.BytesValue
Byte array value.
- Value.DoubleValue
Double value.
- Value.FloatValue
Float value.
- Value.GeoJSONValue
GeoJSON value.
- Value.HLLValue
HyperLogLog value.
- Value.InfinityValue
Infinity value.
- Value.IntegerValue
Integer value.
- Value.ListValue
List value.
- Value.LongValue
Long value.
- Value.MapValue
Map value.
- Value.NullValue
Empty value.
- Value.ShortValue
Short value.
- Value.SignedByteValue
Byte value.
- Value.StringValue
String value.
- Value.UnsignedIntegerValue
Unsigned integer value.
- Value.UnsignedLongValue
Unsigned long value.
- Value.UnsignedShortValue
Unsigned short value.
- Value.ValueArray
Value array.
- Value.WildcardValue
Wildcard value.
- WritePolicy
Container object for policy attributes used in write operations. This object is passed into methods where database writes can occur.
Structs
- 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
- ValueStopwatch
Stopwatch but as a struct.
Interfaces
- AbortListener
Asynchronous result notifications for transaction aborts.
- 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.
- CommitListener
Asynchronous result notifications for transaction commits.
- 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.
- 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.
- IMetricsListener
Client metrics listener.
- InfoListener
Asynchronous info command result notification.
- 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.
Enums
- AuthMode
Authentication mode.
- BatchRecord.Type
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 command on the server.
- Exp.Type
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.
- 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.
- Log.Level
Log escalation level.
- LoopVarPart
Loop variable parts for expression loop variables. Used to specify which part of a loop variable to access during iteration.
- 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. MapWriteFlags are recommended for server versions >= 4.3.
- MaxCommandAction
How to handle cases when the asynchronous maximum number of concurrent database commands have been exceeded.
- ModifyFlag
Flags that control what data is modified by path expression operations.
- 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.
- SelectFlag
Flags that control what data is selected and returned by path expression operations. These flags can be combined using bitwise OR operations.
- Txn.TxnState
Transaction State.
Delegates
- Log.Callback
Log callback message definition.
- Log.ContextCallback
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 AerospikeException.QueryTerminated 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 AerospikeException.ScanTerminated 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.