Releases: aerospike/aerospike-client-go
Releases · aerospike/aerospike-client-go
Minor feature and fix release.
Minor feature and bug fix release.
-
New Features
- Supports correct Query/Scans via
Scan/QueryPolicy.FailOnClusterChange
- Supports correct Query/Scans via
-
Fixes
- Fixes an issue where the client using multiple seeds via DNS or Load Balancer would fail to connect if more than one of them were unreachable.
Major feature release.
-
New Features
- Adds support for predicate expressions in all transactions. See
Policy.PredExp
.
- Adds support for predicate expressions in all transactions. See
Major feature release
-
New Features
- Adds support for bitwise operations.
- Adds support for nested CDTs.
Major feature release
-
New Features
- Adds support for mixed security modes in cluster to enable rolling upgrade with security changes.
- Adds support for delete record operation
DeleteOp()
inClient.Operate()
. - Adds support for write operations in background scan/query.
- Adds support for
Scan/QueryPolicy.RecordsPerSecond
field to limit throughput.
Minor improvement release.
-
Improvements
- Supports the
Write
role in server v4.6.0.2+
- Supports the
Fixes and improvements release.
-
Fixes
- Fixes an issue where an empty connection pool would cause a lock contention that would in turn lead to high CPU load.
- Fixes an issue where in some circumstances connection pool would be depleted of connections.
- Fixes an issue where the replica node would not be selected in case of master-node failure in
Policy.ReplicaPolicy.SEQUENCE
for reads.
-
Improvements
- Transactions will not count a lack of connection in the node's connection pool as an iteration anymore.
Minor Fixes and improvements release.
-
Fixes
- Fixes an issue where meta tags were ignored in reflection API for
ScanAllObjects
/QueryObjects
/BatchGetObjects
. Resolves #260.
- Fixes an issue where meta tags were ignored in reflection API for
-
Improvements
- Tend won't send
rack:
command to the nodes ifClientPolicy.RackAware
is not set. PR #259, thanks to Dmitry Maksimov - Adds a new GeoJson example.
- Tend won't send
Minor feature and improvements
-
New Features
- Adds
WarmUp
method forClient
,Cluster
andNode
. This method will fill the connection queue to ensure maximum and smooth performance on start up.
- Adds
-
Improvements
- Simplify connection Timeout calculation and floor the min timeout to 1ms.
- Simplify resetting server timeout for each iteration.
- Adds a few pre-defined errors to avoid allocating them during runtime.
-
Changes
- Adds a TLS connection example.
- Adds
Cap
method toconnectionHeap
.
Major Release
This is the first major breaking release of the Go client in 5 years.
Most breaking changes are minor and specific, and will either not hit you, or will be fixable with relative ease.
The only major change is that the behavior of the client when a key does not exist has changed.
It used to return no errors, but anil
Record.Bins
. Now it returnsErrKeyNotFound
error.
This is a significant change, and you should search your code for all instances of.Bins == nil
(or equivalent) and adapt the code accordingly.
-
Major Changes And Improvements:
- Optimizes connection creation out of the transaction pipeline and makes it async.
- Puts a threshold on the number of connections allowed to open simultaneously. Controlled via
ClientPolicy.OpeningConnectionThreshold
. - Do not clear partition map entry when a node reports that it no longer owns that partition entry.
- Uses rolling timeout instead of strict timeout for connections. This means that every time a connection is read, the timeout is set to
policy.SocketTimeout
again, unless it will take longer than the whole transactionTotalTimeout
. - Remove
ToValueArray
andToValueSlice
methods to discourage such sub-optimal use. ChangesQueryAggregate
signature to remove the need for those methods. - Remove unnecessary conversion from
BinMap
toBin
s in reflection API to speed up the command and avoid unnecessary memory allocations. - Use shorter intervals with exponential back-off for tasks.
-
Breaking Changes:
Get
/Put
/Touch
/Operate
andExecuteUDF
commands will return anErrKeyNotFound
error when the key does not exist in the database. The old behavior used to be not to return an error, but have an emptyRecord.Bins
.- Renames
Statement.Addfilter
toStatement.SetFilter
, changes the name and type ofStatement.Filters
toStatement.Filter
. - Remove
ClientPolicy.RequestProleReplicas
. The client will always request them. - Removes
ScanPolicy.ServerSocketTimeout
andQueryPolicy.ServerSocketTimeout
in favor of the already existingPolicy.SocketTimeout
. - Renames
Policy.Timeout
toPolicy.TotalTimeout
to make the naming consistent with other clients. - Moves
atomic
package to internal. - Moves
ParticleType
package to internal. - Moves
RequestNodeInfo
andRequestNodeStats
to methods on Node object, and addsInfoPolicy
to the relevant API signatures. - Removes
WaitUntilMigrationIsFinished
fromScan
/Query
policies. - Changes
NewConnection
method signature - Makes
LoginCommand
private. - Makes
OperationType
private. - Remove long deprecated method for pool management.
- Removes unused
ReadN
method inConnection
. - Embeds Policies as values and not pointers inside
MultiPolicy
,ScanPolicy
,QueryPolicy
-
Minor Improvements and Fixes:
- Fixes a race condition in the
AdminCommand
. - Synchronize the
XORShift
to avoid race conditions. - Completely removes deprecated LDT code.
- Fixes a race condition in the