Changelog History
Page 4
-
v2.2.1 Changes
August 13, 2019Minor improvement release.
Improvements
- Supports the
Write
role in server v4.6.0.2+
- Supports the
-
v2.2.0 Changes
May 21, 2019Minor Fixes and improvements release.
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.
-
v2.1.1 Changes
April 25, 2019Minor Fixes and improvements release.
Fixes
- Fixes an issue where meta tags were ignored in reflection API for
ScanAllObjects
/QueryObjects
/BatchGetObjects
. Resolves #260.
- Fixes an issue where meta tags were ignored in reflection API for
Improvements
- Tend won't send
rack:
command to the nodes ifClientPolicy.RackAware
is not set. PR #259, thanks to Dmitry Maksimov - Adds a new GeoJson example.
- Tend won't send
-
v2.1.0 Changes
April 11, 2019Minor Feature and Improvements release.
New Features
- Adds
WarmUp
method forClient
,Cluster
andNode
. This method will fill the connection queue to ensure maximum and smooth performance on start up.
- Adds
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 toconnectionHeap
.
-
v2.0.0 Changes
March 19, 2019Major release. There are some breaking changes, both syntactically and semantically. Most changes are minor, and can be fixed with relative ease. The only major issue is that the behavior of the client when a key does not exist has changed. It used to return no error, but
nil
Record.Bins
. Now it returnsErrKeyNotFound
error. This is a significant changes, and you should search your code for all instances ofBins == nil
and adapt the code accordingly.Major:
- Optimizes connection creation out of the transaction pipeline and makes it async.
- Put 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.
- Remove
ToValueArray
andToValueSlice
methods to discourage such suboptimal use. ChangesQueryAggregate
signature to remove the need for those methods. - Remove unnecessary conversion from BinMap to Bins in reflection API to speedup the command an avoid unnecessary memory allocations.
- Use shorter intervals with exponential back-off for tasks.
Breaking:
Get
/Put
/Touch
/Operate
andExecuteUDF
commands will return anErrKeyNotFound
error when the key does not exist in the database. The old behavior used to be not to return an error, but have an emptyRecord.Bins
.- Renames
Statement.Addfilter
toStatement.SetFilter
, change the name and type ofStatement.Filters
toStatement.Filter
. - Remove
ClientPolicy.RequestProleReplicas
. THe client will always request them. - Removes
ScanPolicy.ServerSocketTimeout
andQueryPolicy.ServerSocketTimeout
in favor of the already existingPolicy.SocketTimeout
. - Renames
Policy.Timeout
toPolicy.TotalTimeout
to make the naming consistent with other clients. - Moves
atomic
package to internal. - Moves
ParticleType
package to internal. - Moves
RequestNodeInfo
andRequestNodeStats
to methods on Node object, and addsInfoPolicy
to the relevant API signatures. - Removes
WaitUntilMigrationIsFinished
fromScan
/Query
policies. - Changes
NewConnection
method signature, makesLoginCommand
private. - Makes
OperationType
private. - Remove long deprecated method for pool management.
- Removes unused
ReadN
method inConnection
. - Embeds Policies as values and not pointers inside
MultiPolicy
,ScanPolicy
,QueryPolicy
Minor:
- Fixes a race condition in the
AdminCommand
. - Synchronize the
XORShift
to avoid race conditions. - Completely removes deprecated LDT code.
- Fixes a race condition in the
-
v1.39.0 Changes
March 11, 2019Major improvements Release.
Improvements
- Significantly improves
Batch
/Scan
/Query
/UDF
/QueryAggregate
performance, up to 10x depending on the number of records.
- Significantly improves
Changes
- Removes
BatchPolicy.UseBatchDirect
from the code since it is not supported on the server anymore.
- Removes
-
v1.38.0 Changes
February 21, 2019New Features
- Support new server
truncate-namespace
command viaClient.Truncate
whenset
is not specified.
- Support new server
Improvements
- The client will not clear a partition map entry when a node reports that it no longer owns that partition entry until another node claims ownership.
- Adapt UDF test for new server changes. The server will not return an error after
RemoveUDF
if the UDF did not exist. - Improves a few tests and relaxes tolerances in tests to accommodate slower cloud test environments.
Fixes
- Fixes a race condition in XOR shift RNG.
- Fixes a race condition in the AdminCommand.
-
v1.37.0 Changes
December 03, 2018New Features
- Support lut-now parameter for Client.Truncate() in servers that support and require it.
- Added support for CDT Map Relative Ops:
MapGetByKeyRelativeIndexRangeOp
,MapGetByKeyRelativeIndexRangeCountOp
,MapGetByValueRelativeRankRangeOp
,MapGetByValueRelativeRankRangeCountOp
,MapRemoveByKeyRelativeIndexRangeOp
,MapRemoveByKeyRelativeIndexRangeCountOp
. - Added support for CDT List Relative Ops:
ListGetByValueRelativeRankRangeOp
,ListGetByValueRelativeRankRangeCountOp
,ListRemoveByValueRelativeRankRangeOp
,ListRemoveByValueRelativeRankRangeCountOp
. - Added
INFINITY
andWILDCARD
values for use in CDT map/list comparators.
Improvements
- Increase default
Policy.SocketTimeout
to 30s. IfSocketTimeout
is longer thanTimeout
,Timeout
will be used instead silently. This change is done for the client to perform more intuitively in cloud environments. - Never return a random node if a node was not found in the partition map.
- Return more descriptive error messages on various partition map and other node related errors.
- Increase default
Changes
- Remove the ability to force old batch direct protocol on the client because the server will be removing support for the old batch direct protocol.
- Update admin message version to 2.
- Remove unused error codes.
- Remove Go 1.7 and 1.8 from travis tests due to incompatibility with the test framework.
-
v1.36.0 Changes
November 01, 2018Feature Release.
New Features
- Support rackaware feature. You need to set the
ClientPolicy.RackAware = true
, and set theClientPolicy.RackId
. All read operations will try to choose a node on the same rack ifPolicy.ReplicaPolicy = PREFER_RACK
. This feature is especially useful when the app/cluster are on the cloud and network throughput over different zones are price differently.
- Support rackaware feature. You need to set the
Improvements
- Update Operate command documentation.
- Improve an expectation in a CDT Map test.
- Move UDF object test to the proper file.
- Support float64 struct fields when the value of the field has been changed inside lua and set to int - will only affect clusters which support float.
- Fixes an issue where key value was sent and cause server PARAMETER_ERROR via the operate command if policy.SendKey was set but no write operations were passed.
- Updated README example with clarification.
Fixes
- Fixes an issue where multiple operation results for a bin would be appended to the first result if it was a list.
-
v1.35.2 Changes
October 02, 2018Improvement release.
Improvements
- Do not allocate a partition map on each tend unless needed.
- Adds
ConnectionsClosed
stat and sets the connection and dataBuffer to nil in a few places to help the GC. - Use a heap data structure for connection pooling instead of a queue. This allows better management of connections after a surge, since it keeps the unused connection in the bottom of the heap to close. It also helps with performance a bit due to better caching of the data structure in CPU.