Initializes a new BatchPolicy from the provided policy values.
Optional
props: BatchPolicyOptionsBatchPolicy values
Optional
allowRead policy for AP (availability) namespaces.
policy.readModeAP for supported policy values.
Optional
allowAllow batch to be processed immediately in the server's receiving thread for SSD namespaces. If false, the batch will always be processed in separate service threads. Server versions < 6.0 ignore this field.
Inline processing can introduce the possibility of unfairness because the server can process the entire batch before moving onto the next command.
Optional
compressUse zlib compression on write or batch read commands when the command buffer size is greater than 128 bytes. In addition, tell the server to compress it's response on read commands. The server response compression threshold is also 128 bytes.
This option will increase cpu and memory usage (for extra compressed buffers), but decrease the size of data sent over the network.
Requires Enterprise Server version >= 4.8.
@default: false
Optional
concurrentDetermine if batch commands to each server are run in parallel threads.
Values: false: Issue batch commands sequentially. This mode has a performance advantage for small to medium sized batch sizes because commands can be issued in the main command thread. This is the default. true: Issue batch commands in parallel threads. This mode has a performance advantage for large batch sizes because each node can process the command immediately. The downside is extra threads will need to be created (or taken from a thread pool).
Optional
deserializeShould CDT data types (Lists / Maps) be deserialized to JS data types (Arrays / Objects) or returned as raw bytes (Buffer).
Optional
filterOptional expression filter. If filter exp exists and evaluates to false, the command is ignored. This can be used to eliminate a client/server roundtrip in some cases.
expression filters can only be applied to the following commands:
Optional
maxMaximum number of retries before aborting the current command. The initial attempt is not counted as a retry.
If maxRetries
is exceeded, the command will return
error ERR_TIMEOUT.
WARNING: Database writes that are not idempotent (such as "add")
should not be retried because the write command may be performed
multiple times if the client timed out previous command attempts.
It is important to use a distinct write policy for non-idempotent
writes which sets maxRetries
to zero.
@default: 2 (initial attempt + 2 retries = 3 attempts)
Optional
readRead policy for AP (availability) namespaces.
policy.readModeAP for supported policy values.
Optional
readRead policy for SC (strong consistency) namespaces.
policy.readModeSC for supported policy values.
Optional
readDetermine how record TTL (time to live) is affected on reads. When enabled, the server can efficiently operate as a read-based LRU cache where the least recently used records are expired. The value is expressed as a percentage of the TTL sent on the most recent write such that a read within this interval of the record’s end of life will generate a touch.
For example, if the most recent write had a TTL of 10 hours and read_touch_ttl_percent is set to 80, the next read within 8 hours of the record's end of life (equivalent to 2 hours after the most recent write) will result in a touch, resetting the TTL to another 10 hours.
Optional
replicaAlgorithm used to determine target node.
policy.replica for supported policy values.
Optional
respondShould all batch keys be attempted regardless of errors. This field is used on both the client and server. The client handles node specific errors and the server handles key specific errors.
If true, every batch key is attempted regardless of previous key specific errors. Node specific errors such as timeouts stop keys to that node, but keys directed at other nodes will continue to be processed.
If false, the server will stop the batch to its node on most key specific errors. The exceptions are AEROSPIKE_ERR_RECORD_NOT_FOUND and AEROSPIKE_FILTERED_OUT which never stop the batch. The client will stop the entire batch on node specific errors for sync commands that are run in sequence (concurrent == false). The client will not stop the entire batch for async commands or sync commands run in parallel.
Server versions < 6.0 do not support this field and treat this value as false for key specific errors.
Optional
sendSend set name field to server for every key in the batch. This is only necessary when authentication is enabled and security roles are defined on a per-set basis.
Optional
socketSocket idle timeout in milliseconds when processing a database command.
If socketTimeout
is not zero and the socket has been idle
for at least socketTimeout
, both maxRetries
and totalTimeout
are checked. If maxRetries
and totalTimeout
are not exceeded, the command is
retried.
If both socketTimeout
and totalTimeout
are
non-zero and socketTimeout
> totalTimeout
,
then socketTimeout
will be set to
totalTimeout
. If socketTimeout
is zero, there
will be no socket idle limit.
Optional
totalTotal command timeout in milliseconds.
The totalTimeout
is tracked on the client and sent to the
server along with the command in the wire protocol. The client will
most likely timeout first, but the server also has the capability to
timeout the command
If totalTimeout
is not zero and totalTimeout
is reached before the command completes, the command will return
error ERR_TIMEOUT.
If totalTimeout
is zero, there will be no total time limit.
Optional
txnTransaction identifier. See Transaction for more information.
Initializes a new BatchPolicy from the provided policy values.
Param: props
Policy values