Skip to content

Releases: aerospike/aerospike-client-go

Major Feature Release

15 Mar 17:31
Compare
Choose a tag to compare
  • New Features

    • Support for Strong Consistency mode in Aerospike Server v4. You will need to set the policy.LinearizeRead to true. Adds AerospikeError.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.
  • 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

29 Nov 14:50
Compare
Choose a tag to compare
  • 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, unless BatchPolicy.UseBatchDirect flag is set to true. Keep in mind that you don't need this flag to use the new Strong Consistency mode.
  • Changes

    • Renames ResultCode NO_XDS to ALWAYS_FORBIDDEN.
    • Makes SERVER_NOT_AVAILABLE a client generated error.

Fix and improvements release.

12 Oct 11:38
Compare
Choose a tag to compare
  • 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.

05 Sep 09:37
Compare
Choose a tag to compare
  • New Features

    • Added ListIncrementOp to the CDT list operations.
    • Added SEQUENCE to replica policies.
  • 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.

17 Aug 20:12
Compare
Choose a tag to compare
  • 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.
  • 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.

25 Apr 16:17
Compare
Choose a tag to compare
  • New Features

    • Added BatchGetObjects method.
    • Added Exponential Backoff by introducing BasePolicy.SleepMultiplier. Only Values > 1.0 are effective. PR #192, thanks to Venil Noronha
  • 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 and BinValue are not exported in Operation anymore. These fields shouldn't have been used anyway since Operations used to cache their internal command.
  • Fixes

Feature, Performance improvements and bug fix release.

05 Apr 12:48
Compare
Choose a tag to compare
  • 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.
  • 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

08 Mar 17:44
Compare
Choose a tag to compare

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.

01 Mar 19:20
Compare
Choose a tag to compare
  • 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

11 Jan 19:11
Compare
Choose a tag to compare

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.