Skip to content

Releases: aerospike/aerospike-client-go

Minor feature and fix release.

23 Dec 15:23
Compare
Choose a tag to compare
  • New Features

    • Adds support for client/server wire transport compression.
    • Adds support for descending CDT list order.
  • Fixes

    • Fixes an issue where unpacking Value objects would cause an infinite loop. PR #273, thanks to small-egg

Minor feature and bug fix release.

25 Nov 22:21
Compare
Choose a tag to compare
  • New Features

    • Supports correct Query/Scans via Scan/QueryPolicy.FailOnClusterChange
  • 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.

08 Nov 17:36
Compare
Choose a tag to compare
  • New Features

    • Adds support for predicate expressions in all transactions. See Policy.PredExp.

Major feature release

29 Oct 20:14
Compare
Choose a tag to compare
  • New Features

    • Adds support for bitwise operations.
    • Adds support for nested CDTs.

Major feature release

17 Oct 17:20
Compare
Choose a tag to compare
  • New Features

    • Adds support for mixed security modes in cluster to enable rolling upgrade with security changes.
    • Adds support for delete record operation DeleteOp() in Client.Operate().
    • Adds support for write operations in background scan/query.
    • Adds support for Scan/QueryPolicy.RecordsPerSecond field to limit throughput.

Minor improvement release.

13 Aug 17:09
Compare
Choose a tag to compare
  • Improvements

    • Supports the Write role in server v4.6.0.2+

Fixes and improvements release.

21 May 17:05
Compare
Choose a tag to compare
  • 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.

25 Apr 14:37
Compare
Choose a tag to compare
  • Fixes

    • Fixes an issue where meta tags were ignored in reflection API for ScanAllObjects/QueryObjects/BatchGetObjects. Resolves #260.
  • Improvements

    • Tend won't send rack: command to the nodes if ClientPolicy.RackAware is not set. PR #259, thanks to Dmitry Maksimov
    • Adds a new GeoJson example.

Minor feature and improvements

11 Apr 18:02
Compare
Choose a tag to compare
  • New Features

    • Adds WarmUp method for Client, Cluster and Node. This method will fill the connection queue to ensure maximum and smooth performance on start up.
  • 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 to connectionHeap.

Major Release

20 Mar 16:24
Compare
Choose a tag to compare

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 a nil Record.Bins. Now it returns ErrKeyNotFound 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 transaction TotalTimeout.
    • Remove ToValueArray and ToValueSlice methods to discourage such sub-optimal use. Changes QueryAggregate signature to remove the need for those methods.
    • Remove unnecessary conversion from BinMap to Bins 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 and ExecuteUDF commands will return an ErrKeyNotFound error when the key does not exist in the database. The old behavior used to be not to return an error, but have an empty Record.Bins.
    • Renames Statement.Addfilter to Statement.SetFilter, changes the name and type of Statement.Filters to Statement.Filter.
    • Remove ClientPolicy.RequestProleReplicas. The client will always request them.
    • Removes ScanPolicy.ServerSocketTimeout and QueryPolicy.ServerSocketTimeout in favor of the already existing Policy.SocketTimeout.
    • Renames Policy.Timeout to Policy.TotalTimeout to make the naming consistent with other clients.
    • Moves atomic package to internal.
    • Moves ParticleType package to internal.
    • Moves RequestNodeInfo and RequestNodeStats to methods on Node object, and adds InfoPolicy to the relevant API signatures.
    • Removes WaitUntilMigrationIsFinished from Scan/Query policies.
    • Changes NewConnection method signature
    • Makes LoginCommand private.
    • Makes OperationType private.
    • Remove long deprecated method for pool management.
    • Removes unused ReadN method in Connection.
    • 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.