Constructor
new ReadPolicy(propsopt)
- Description:
Initializes a new ReadPolicy from the provided policy values.
- Source:
- Since:
- v3.0.0
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
props |
Object |
<optional> |
Policy values |
Extends
Members
compress :boolean
- Description:
Use 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.
- Source:
- Since:
- v3.14.0
- Overrides:
Use 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.
Type:
- boolean
deserialize :boolean
- Description:
Should CDT data types (Lists / Maps) be deserialized to JS data types (Arrays / Objects) or returned as raw bytes (Buffer).
- Source:
- Since:
- v3.7.0
- Default Value:
true
Should CDT data types (Lists / Maps) be deserialized to JS data types (Arrays / Objects) or returned as raw bytes (Buffer).
Type:
- boolean
deserialize :boolean
- Description:
Should CDT data types (Lists / Maps) be deserialized to JS data types (Arrays / Objects) or returned as raw bytes (Buffer).
- Source:
- Since:
- v3.7.0
- Default Value:
true
Should CDT data types (Lists / Maps) be deserialized to JS data types (Arrays / Objects) or returned as raw bytes (Buffer).
Type:
- boolean
filterExpression
- Description:
Optional expression filter. If filter exp exists and evaluates to false, the transaction 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:
- Source:
- Overrides:
Optional expression filter. If filter exp exists and evaluates to false, the transaction 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:
key :number
- Description:
Specifies the behavior for the key.
- Source:
- See:
-
module:aerospike/policy.key
for supported policy values.
Specifies the behavior for the key.
Type:
- number
key :number
- Description:
Specifies the behavior for the key.
- Source:
- See:
-
module:aerospike/policy.key
for supported policy values.
Specifies the behavior for the key.
Type:
- number
maxRetries :number
- Description:
Maximum number of retries before aborting the current transaction. The initial attempt is not counted as a retry.
If
maxRetries
is exceeded, the transaction will return errorERR_TIMEOUT
.WARNING: Database writes that are not idempotent (such as "add") should not be retried because the write operation may be performed multiple times if the client timed out previous transaction attempts. It is important to use a distinct write policy for non-idempotent writes which sets
maxRetries
to zero.
- Source:
- Overrides:
Maximum number of retries before aborting the current transaction. The initial attempt is not counted as a retry.
If maxRetries
is exceeded, the transaction will return
error ERR_TIMEOUT
.
WARNING: Database writes that are not idempotent (such as "add")
should not be retried because the write operation may be performed
multiple times if the client timed out previous transaction attempts.
It is important to use a distinct write policy for non-idempotent
writes which sets maxRetries
to zero.
Type:
- number
readModeAP :number
- Description:
Read policy for AP (availability) namespaces.
- Source:
- Default Value:
- Aerospike.policy.readModeAP.ONE
- See:
-
module:aerospike/policy.readModeAP
for supported policy values.
Read policy for AP (availability) namespaces.
Type:
- number
readModeAP :number
- Description:
Read policy for AP (availability) namespaces.
- Source:
- Default Value:
- Aerospike.policy.readModeAP.ONE
- See:
-
module:aerospike/policy.readModeAP
for supported policy values.
Read policy for AP (availability) namespaces.
Type:
- number
readModeSC :number
- Description:
Read policy for SC (strong consistency) namespaces.
- Source:
- Default Value:
- Aerospike.policy.readModeSC.SESSION
- See:
-
module:aerospike/policy.readModeSC
for supported policy values.
Read policy for SC (strong consistency) namespaces.
Type:
- number
readModeSC :number
- Description:
Read policy for SC (strong consistency) namespaces.
- Source:
- Default Value:
- Aerospike.policy.readModeSC.SESSION
- See:
-
module:aerospike/policy.readModeSC
for supported policy values.
Read policy for SC (strong consistency) namespaces.
Type:
- number
readTouchTtlPercent :number
- Description:
Determine 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. *
- Source:
- Default Value:
- 0
Determine 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. *
Type:
- number
readTouchTtlPercent :number
- Description:
Determine 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. *
- Source:
- Default Value:
- 0
Determine 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. *
Type:
- number
replica :number
- Description:
Specifies the replica to be consulted for the read operation.
- Source:
- See:
-
module:aerospike/policy.replica
for supported policy values.
Specifies the replica to be consulted for the read operation.
Type:
- number
replica :number
- Description:
Specifies the replica to be consulted for the read operation.
- Source:
- See:
-
module:aerospike/policy.replica
for supported policy values.
Specifies the replica to be consulted for the read operation.
Type:
- number
socketTimeout :number
- Description:
Socket idle timeout in milliseconds when processing a database command.
If
socketTimeout
is not zero and the socket has been idle for at leastsocketTimeout
, bothmaxRetries
andtotalTimeout
are checked. IfmaxRetries
andtotalTimeout
are not exceeded, the transaction is retried.If both
socketTimeout
andtotalTimeout
are non-zero andsocketTimeout
>totalTimeout
, thensocketTimeout
will be set tototalTimeout
. IfsocketTimeout
is zero, there will be no socket idle limit.
- Source:
- Overrides:
- Default Value:
- 0 (no socket idle time limit).
Socket 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 transaction 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.
Type:
- number
totalTimeout :number
- Description:
Total transaction timeout in milliseconds.
The
totalTimeout
is tracked on the client and sent to the server along with the transaction in the wire protocol. The client will most likely timeout first, but the server also has the capability to timeout the transaction.If
totalTimeout
is not zero andtotalTimeout
is reached before the transaction completes, the transaction will return errorERR_TIMEOUT
. IftotalTimeout
is zero, there will be no total time limit.
- Source:
- Overrides:
- Default Value:
- 1000
Total transaction timeout in milliseconds.
The totalTimeout
is tracked on the client and sent to the
server along with the transaction in the wire protocol. The client will
most likely timeout first, but the server also has the capability to
timeout the transaction.
If totalTimeout
is not zero and totalTimeout
is reached before the transaction completes, the transaction will return
error ERR_TIMEOUT
.
If totalTimeout
is zero, there will be no total time limit.
Type:
- number