Releases: aerospike/aerospike-client-go
Releases · aerospike/aerospike-client-go
Minor Improvements and fixes
- New Features
- Exposes the internal
client.Cluster
object to the users. - Added New API for high-performance complex data type packing, and removed the old API.
- Exposes the internal
- Improvements
- Only update the partition map if the partition generatio has changed.
- Use tend connection for user management commands.
- Marks LargeList as deprecated. Use CDT methods instead.
- Always validate the message header to avoid reading the remainder of other command buffers.
- Removes GeoJson from key helper.
- Improves tend algorthm to allow complete disconnection from the cluster if none of the clusters are accessible.
PutObject
method will now accept objects as well. PR #156, thanks to Sarath S Pillai
- Fixes
- Do not attemp to add a node which were unaccessible to avoid panic.
- Fix invalid connectionCount. PR #168, thanks to Jun Kimura
- Fixes minor bug that didn't return the error on reading from the connection during scans.
Hotfix Release
Hot fix release. Please upgrade if you have been using other Aerospike clients with your database parallel to Go.
- Fixes
- Fixes an issue where short strings in Lists and Maps wouldn't unpack correctly. Resolves #161.
Minor bugfix release
- New Features
- Added new constants for expiration in
WritePolicy
:TTLServerDefault
,TTLDontExpire
,TTLDontUpdate
- Added new constants for expiration in
- Improvements
- Corrects typos in the code. PR #142, thanks to Muyiwa Olurin
- Use the tend connection for
RequestInfo
commands.
- Fixes
- Fixes an issue where TTL values were calcualted wrongly when they were set not to expire.
- Fixes an issue where
PutObjects
would marshal[]byte
toList
in database. PR #152, thanks to blide - Fixes an issue where
Recordset
could leak goroutines. PR #153, thanks to Deepak Prabhakara
Major Improvements
There has been major changes in the library. Please test rigorously before upgrading to the new version.
- New Features
-
Let user define the desired tag for bin names in structs using
SetAerospikeTag
function. -
Added
as_performance
build tag to avoid including the slow convenience API which uses reflections in the client code.
To use this feature, you should include -tags="as_performance" when building your project.NOTICE: Keep in mind that your code may not compile using this flag. That is by design.
-
- Improvements
- Added special packer for map[string]interface{} in
NewValue
method. - Avoid allocating memory for Map and List values.
- Allocate commands on the stack to avoid heap allcations.
- Avoid allocating memory for
packer
. - Avoid Allocating memory in computeHash for keys.
- Avoid allocating memory in Ripe160MD digest.
- Removed BufferPool and moved buffers to
Connection
objects to remove lock contention. - Added
ListIter
andMapIter
interfaces to support passing user defined Maps and Lists to the client without using reflection.
- Added special packer for map[string]interface{} in
Major Features and Improvements
- New Features
- Support TLS secured connections. (Feature will be supported in coming server releases.)
- Support IPv6 protocol. Supported by Aerospike Server 3.10+.
- Support
cluster-name
verification. Supported by Aerospike Server 3.10+. - Support new peers info protocol. Supported by Aerospike Server 3.10+.
- Improvements
- Will retry the operation even when reading from the buffer. Set
Policy.MaxRetries = 0
to avoid this behavior. PR #143, thanks to Hector Jusforgues - Much improved cluster management algorithm. Will now handle the case where multiple nodes go down simultaneously, still protecting against split brain rogue nodes.
- Will retry the operation even when reading from the buffer. Set
- Fixes
- Try all alias IPs in node validator. Resolves #144.
- Updated job status check for execute tasks.
Minor Features and Improvements
- New Features
- Support 'Durable Deletes' for the next version of Aerospike Server Enterprise.
- Improvements
- Don't run tests for features that are not supported by the server.
- Added new server error codes.
Minor improvements release.
- Improvements
- Add
TaskId()
method forRecordset
. - Cleanup indexes after test cases.
- Keep connections on recoverable server errors.
- Return the error on unexpected keys in
BatchCommandGet/Header
. - Use the same client object in tests and support using replicas on travis.
- Add
Major Feature Release
Major feature and improvement release.
- New Features
- Client now supports distributing reads from Replicas using
ClientPolicy.RequestProleReplicas
andPolicy.ReplicaPolicy
- Client now supports distributing reads from Replicas using
- Improvements
Cluster.GetConnection
will now retry to acquire a connection until timeout.Client.DropIndex
method now blocks until all nodes report the index is dropped.- Async tasks like
CreateIndex
will retry a few times before deciding a non-existing job means it has finished. - Don't use
math.MaxInt64
, it breaks 32-bit builds. PR #139, thanks to Cameron Sparr
- Fixes
- Maps with 0 elements will automatically shortcut to unordered empty maps.
- Return the error in
BatchCommandGet
on parse error.
Major fix release.
- Improvements
- Skip LDT tests if LDT is not enabled.
- Returns last error after all retry attempts to run a command are exhausted.
- Reserves a connection for tend operation to avoid dropping a node when high load prevents acquiring a proper connection.
- Added Finalizers to
Client
andRecordset
. Both will be automatically closed by the GC.
- Fixes
- Fixes an issue where
services-alternate
wasn't used inNode.addFriends()
when instructed so in the policy. - Fixes an issue where object metadata wasn't cached if
QueryObjects
was called beforePutObject
. - Fixes an issue where idle connections were not dropped.
- Fixes an issue where requested buffer sizes were not guarded against negative numbers.
- Fixes an issue where
Minor bugfix release
- Fixes
- Fixes an issue where empty unordered maps were confused with CDT maps.