Releases: aerospike/aerospike-client-go
Minor improvement release
Warning
This version introduced a major bug in tend logic. You should use v7.7.1 or later instead.
-
Improvements
- [CLIENT-3112] Correctly handle new error messages/error codes returned by AS 7.2.
- [CLIENT-3102] Add "XDR key busy" error code 32.
- [CLIENT-3119] Use generics for a general code clean up.
Uses several new generic containers to simplify concurrent access in the client.
Uses a Guard as a monitor for the tend connection. This encapsulates synchronized tend connection management using said Guard. - Add documentation about
client.WarmUp
to the client initialization API.
-
Fixes
- [CLIENT-3082]
BatchGet
with empty keys raises gRPCEOF
error.
- [CLIENT-3082]
Minor improvement release
- Improvements
- [CLIENT-3071] Increase info command max response buffer size to 64 MiB.
Minor improvement and fix release
-
Improvements
- [CLIENT-3045] Move proxy client build behind a build flag.
This removes the GRPC compilation and potential namespace conflict from the default build and moves it behind the compiler build flag "as_proxy". - [CLIENT-3049] Use a specialized pool for grpc conns to prevent premature reaping.
- [CLIENT-3045] Move proxy client build behind a build flag.
-
Fixes
- [CLIENT-3022]
Close()
throws anil
pointer error onProxyClient
without Authentication. - [CLIENT-3044] Circular reference in between
Client
<->Cluster
causes memory leak when the client is not closed manually. - [CLIENT-3046] Wrong return type in Single Key Batch Operations with Multiple Ops per Bin.
- [CLIENT-3047] Fix pointer value assignment in baseMultiCommand.parseKey (#443).
- [CLIENT-3048] Use precomputed ops variable in
batchIndexCommandGet.executeSingle
(#442).
- [CLIENT-3022]
Minor feature and fix release
-
New Features
- [CLIENT-2968] Support new v7.1 proxy features:
- Info command.
QueryPolicy.QueryDuration
- [CLIENT-3012] Support new server 7.1 info command error response strings.
- [CLIENT-2968] Support new v7.1 proxy features:
-
Improvements
- [CLIENT-2997] Scans should work in a mixed cluster of v5.7 and v6.4 server nodes.
- [CLIENT-3012] Support new server 7.1 info command error response strings.
- [CLIENT-3020] Change
ReadModeSC
doc from server to client perspective.
-
Fixes
- [CLIENT-3019] Prevent Goroutine leak in
AuthInterceptor
for the Proxy Client.
- [CLIENT-3019] Prevent Goroutine leak in
Hotfix release
-
Improvements
- Add code coverage tests to the Github Actions workflow.
- Call the
CancelFunc
for thecontext.WithTimeout
per linter suggestions in grpc calls. - Minor clean up and remove dead code.
-
Fixes
- [CLIENT-2943]
Client.BatchGetOperate
does not consider ops in single key transforms. - [CLIENT-2704] Client dev tests failing with new server map key restrictions.
- Fix
as_performance
andapp_engine
build tags.
- [CLIENT-2943]
Major Feature Release
This is a major feature release of the Go client and touches some of the fundamental aspects of the inner workings of it.
We suggest complete testing of your application before using it in production.
Warning
The ProxyClient
in this version supports a feature in Aerospike Server v7.1 that breaks the Batch functionality in Aerospike Cloud as of the date of this release. If you are using that product, you need to use the Aerospike Go Client v7.1.0. We expect the issue to resolve in the near future.
-
New Features
-
[CLIENT-2238] Convert batch calls with just one key per node in sub-batches to batch requests.
If the number keys for a sub-batch to a node is equal to 1, the client will use a direct operation command instead of batch commands to reduce the load on the server. -
[CLIENT-2274] Use constant sized connection buffers and resize the connection buffers over time.
The client would use a single buffer on the connection and would grow it
per demand in case it needed a bigger buffer, but would not shrink it.
This helped with avoiding using buffer pools and the associated
synchronization, but resulted in excessive memory use in case there were a
few large records in the results, even if they were infrequent.
This changeset does the following:
1. Will use a memory pool for large records only. Large records
are defined as records bigger thanaerospike.PoolCutOffBufferSize
.
This is a tiered pool with different buffer sizes. The pool
usessync.Pool
under the cover, releasing unused buffers back to the
runtime.
2. By using biggeraerospike.DefaultBufferSize
values, the user can
imitate the old behavior, so no memory pool is used most of the time.
3. Settingaerospike.MinBufferSize
will prevent the pool using buffer sizes too small,
having to grow them frequently.
4. Buffers are resized every 5 seconds to the median size of buffers used over the previous period,
within the above limits.This change should result in much lower memory use by the client.
-
[CLIENT-2702] Support Client Transaction Metrics. The native client can now track transaction latencies using histograms. Enable using the
Client.EnableMetrics
API.
-
-
Improvements
- [CLIENT-2862] Use default batch policies when the record level batch policy is
nil
. - [CLIENT-2889] Increase grpc
MaxRecvMsgSize
to handle big records for the proxy client. - [CLIENT-2891] Export various batch operation struct fields. Resolves #247.
- Remove dependency on
xrand
sub-package since the native API is fast enough. - Linter Clean up.
WritePolicy.SendKey
documentation, thanks to Rishabh Sairawat- Replaced the deprecated
ioutil.ReadFile
withos.ReadFile
. PR #430, thanks to Swarit Pandey
- [CLIENT-2862] Use default batch policies when the record level batch policy is
-
Fixes
- [CLIENT-2905] Fix inconsistency of handling in-doubt flag in errors.
- [CLIENT-2890] Support
[]MapPair
return in reflection.
This fix supports unmarshalling ordered maps intomap[K]V
and[]MapPair
in the structs.
Minor Security Fix
This release updates the dependencies to mitigate security issues.
- Fixes
- [CLIENT-2869] Update modules. Fix Allocation of Resources Without Limits or Throttling for
golang.org/x/net/http2
.
- [CLIENT-2869] Update modules. Fix Allocation of Resources Without Limits or Throttling for
Security Fix Release
This release updates the dependencies to mitigate security issues.
-
Fixes
- [CLIENT-2869] Update modules. Fix Allocation of Resources Without Limits or Throttling for
golang.org/x/net/http2
.
- [CLIENT-2869] Update modules. Fix Allocation of Resources Without Limits or Throttling for
-
Improvements
- Fixes a typo.
Major Feature Release
-
New Features
- [CLIENT-2766] Support
RawBlobValue
in the Go client. - [CLIENT-2767] Support Persistent List Indexes.
- [CLIENT-2823] Support
QueryDuration
. - [CLIENT-2831] Support
ReadPolicy.ReadTouchTTLPercent
. - [CLIENT-2240] Add more client statistics.
- Adds the following statistics:
circuit-breaker-hits
: Number of times circuit breaker was hit.connections-error-other
: Connection errors other than timeouts.connections-error-timeout
: Connection Timeout errors.connections-idle-dropped
: The connection was idle and dropped.connections-pool-overflow
: The command offered the connection to the pool, but .the pool was full and the connection was closedexceeded-max-retries
: Number of transactions where exceeded maximum number of retries specified in the policyexceeded-total-timeout
: Number of transactions that exceeded the specified total timeouttotal-nodes
: Total number of nodes in the cluster
- Adds the following statistics:
- Export private fields in
PartitionStatus
and addRecordset.BVal
.
- [CLIENT-2766] Support
-
Improvements
- [CLIENT-2784] Do not use batch repeat flag on batch writes when
policy.SendKey
is set totrue
. - [CLIENT-2442] Document that Only
string
,integer
,bytes
are allowed as map key types;Policy.SendKey
clarification. - Reduce the required Go version to 1.20 to support EL9; Update the dependencies.
- Update
ExpCond()
doc to say that all action expressions must return the same type.
- [CLIENT-2784] Do not use batch repeat flag on batch writes when
-
Fixes
- [CLIENT-2811]
RespondPerEachOp
doesn't work for list operation. To allow backwards compatibility, this change will change the default value ofRespondPerEachOp
totrue
. - [CLIENT-2818] Fix return type for
ExpListRemoveByValueRange
. - Update the proto grpc files to resolve namespace issues.
- Improve the tests for
BatchOperations
to run on Github Actions. - Fix tests that relied on the server
nsup-period
setting to be larger than zero. - Fix Truncate test on slow servers.
- [CLIENT-2811]
Minor Release
-
New Features
- Add
TaskId()
toExecuteTask
. - [CLIENT-2721] Make
PartitionFilter.Retry
public.
- Add
-
Improvements
- Clean up documentation and remove dependency of examples to the v6 version of the client.
-
Fixes
- [CLIENT-2725]
QueryExecute
(background query) doesn't work without operations. - [CLIENT-2726] Proxy doesn't handle invalid filter expression error in query.
- [CLIENT-2727] Go proxy: Query Pagination never complete.
- [CLIENT-2728] Fix an issue where Bin names were ignored if a FilterExpression was passed to the Query.
- [CLIENT-2732] Go proxy: Not able to multiple query calls with the same statement.
- [CLIENT-2759] Go proxy: Background query with Expression doesn't filter records.
- [CLIENT-2725]