Releases: aerospike/aerospike-client-go
Releases · aerospike/aerospike-client-go
Major Feature Release
-
New Features
- Support for Strong Consistency mode in Aerospike Server v4. You will need to set the
policy.LinearizeRead
totrue
. AddsAerospikeError.InDoubt()
method. - Set the resulting
Record.Key
value in Batch Operations to the Original User-Provided Key to preserve the original namespace/set/userValue and avoid memory allocation.
- Support for Strong Consistency mode in Aerospike Server v4. You will need to set the
-
Changes
- Does not retry on writes by default, and put a 100ms timeout on all transactions by default.
- Changed some warn logs to debug level.
- Add missing stats counters to improve statistics reports.
- Uses sync.Once instead of sync.Mutex for
Connection.close
method. - Added
DefaultBufferSize
for initial buffer size for connections.
-
Fixes
- Fix the tests for object marshalling to account for monotonic time in Go v1.8+.
- Stops the ongoing tends on initial connection errors.
New Feature release
-
New Features
- Support for newer Batch Protocol. Add
BatchGetComplex
for complex batch queries. Old batch API upgraded to automatically support the new protocol under the hood, unlessBatchPolicy.UseBatchDirect
flag is set totrue
. Keep in mind that you don't need this flag to use the new Strong Consistency mode.
- Support for newer Batch Protocol. Add
-
Changes
- Renames ResultCode
NO_XDS
toALWAYS_FORBIDDEN
. - Makes
SERVER_NOT_AVAILABLE
a client generated error.
- Renames ResultCode
Fix and improvements release.
-
Changes
- Deprecated LDTs and removed them from the official build.
- Change supported go versions to 1.7+ due to gopher-lua requiring
Context
.
-
Improvements
- Get socket timeout once per command execution, do not redefine err var in command execution loop. PR #211, thanks to Maxim Krasilnikov
- Allow running a UDF on a specific node only.
- Close cluster only once. PR #208, thanks to Jun Kimura
- Use actual cluster name in tests instead of assuming
null
. - Check for the type of error as well in Duplicate Index Creation.
- Update description for error code 21. PR #207, thanks to Maxim Krasilnikov
Feature and improvements release.
-
New Features
- Added
ListIncrementOp
to the CDT list operations. - Added
SEQUENCE
to replica policies.
- Added
-
Improvements
- Tweaked node removal algorithm to cover more corner cases.
- Make
predExp
interface public. Closes issue #205. - Added more stats to the
Client.Stats()
.
Feature, Performance improvements and bug fix release.
-
New Features
- Added
Client.Stats
method to get client's internal statistics. - Added
Policy.SocketTimeout
to differentiate between network timeouts and the total transaction timeouts. - Added
Policy.SocketTimeout
to differentiate between network timeouts and the total transaction timeouts. - Support
policy.IncludeBinData
for queries. Only for servers that support this feature. - Minor documentation updates.
- Return key not found exception (instead of returning nil record) for Operate() command where operations include a write.
- Added
-
Improvements
- Close the tend connection when closing node connections.
- Added Connection finalizer to make sure all connections are closed eventually.
- Automatically retry failed info requests on async tasks before returning an error.
- Updated build instructions for the benchmark tool.
- Make digest_modulo test deterministic.
- Relax predexp_modulo test a bit to avoid occasional failures.
-
Fixes
- Indirect CAS ops to prevent the compiler from optimizing them out.
- Return errors instead of nil.
Feature, Performance improvements and bug fix release.
-
New Features
- Added
BatchGetObjects
method. - Added Exponential Backoff by introducing
BasePolicy.SleepMultiplier
. Only Values > 1.0 are effective. PR #192, thanks to Venil Noronha
- Added
-
Improvements
- Packer tries to see if it can use generic data types before using reflection.
- Operations, including CDTs do not allocate a buffer anymore, unless reused.
-
Incompatible changes:
BinName
andBinValue
are not exported inOperation
anymore. These fields shouldn't have been used anyway sinceOperation
s used to cache their internal command.
-
Fixes
- Documentation Fixes. Thanks to Nassor Paulino da Silva and Harmen
Feature, Performance improvements and bug fix release.
-
New Features
- Predicate API is supported (for server v3.12+)
- Added
Truncate
method to quickly remove all data from namespaces or sets (for server v3.12+). - Support
ScanPolicy.ServerSocketTimeout
(for server v3.12+). - Support
ClientPolicy.IgnoreOtherSubnetAliases
to ignore hosts from other subnets. PR #182, thanks to wedi-dev
-
Improvements
- Added a lot of predefined generic slice and map types in
NewValue
method to avoid hitting reflection as much as possible. - Fix
go vet
complaints.
- Added a lot of predefined generic slice and map types in
-
Fixes
- Allow streaming commands (scan/query/aggregation) to retry unless the error occurs during parsing of the results. Fixes issue #187
- Use
net.JoinHostPort
to concatinate host and port values instead of doing it directly. Fixes some issues in IPv6 connection strings. - Improved initial Tend run.
- Fixes
cluster-name
checking bug.
Hotfix Release
Updating the client is recommended.
-
Fixes
- Fixed an issue where errors in Scan/Query unmarshalling would be duplicated and could cause a deadlock.
Performance improvements and fix release.
- Improvements
- Check tend duration and compare it to tend interval, and warn the user if tend takes longer than tend interval.
- Seed the cluster concurrently, and return as soon as any of the seeds is validated.
- Tend the cluster concurrently. Allows use of very big clusters with no delay.
- Partitions the connection queue to avoid contention.
- Cluster partition map is merged from all node fragments and updated only once per tend to reduce contention to absolute minimum.
- Fixes
- Fixed an issue where a valid but unreachable seed could timeout and stall connecting and tending the cluster.
- Fix result code comments.
Minor feature and fixes
Minor feature and fix release.
- New Features
- TLS/SSL connections are now officially supported.
- Added Role/Privilege API.
- Improvements
- Return a client-side error when no ops are passed to the operate command.
- Export error attribute in
NodeError
- Do not attempt to refresh peers if it is not supported by the nodes.
- Fixes
- Use namespace default-ttl for tests instead of assuming 30d
- Always drain scan connections after parsing the records.
- Fix panic in GetObject() if all bins in result is nil. PR #172, thanks to Hamper
- Fix WritePolicy usage with UDF. PR #174, thanks to Bertrand Paquet
- Close connection right when it has an io error and don't wait for the caller.