aerospike-client-go v2.0.0 Release Notes
Release Date: 2019-03-19 // about 5 years ago-
Major release. There are some breaking changes, both syntactically and semantically. Most changes are minor, and can be fixed with relative ease. The only major issue is that the behavior of the client when a key does not exist has changed. It used to return no error, but
nil
Record.Bins
. Now it returnsErrKeyNotFound
error. This is a significant changes, and you should search your code for all instances ofBins == nil
and adapt the code accordingly.Major:
- Optimizes connection creation out of the transaction pipeline and makes it async.
- Put 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.
- Remove
ToValueArray
andToValueSlice
methods to discourage such suboptimal use. ChangesQueryAggregate
signature to remove the need for those methods. - Remove unnecessary conversion from BinMap to Bins in reflection API to speedup the command an avoid unnecessary memory allocations.
- Use shorter intervals with exponential back-off for tasks.
Breaking:
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
, change 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, makesLoginCommand
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:
- 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