Releases: aerospike/aerospike-client-java
Releases · aerospike/aerospike-client-java
3.1.3
Release Date: June 26, 2015
New Features
- Support new batch index protocol which allows multiple namespaces, bin name filters, and read types (read, exists) to be specified in a single batch call. This new functionality is supported by Aerospike Server versions >= 3.6.0 (which has not been released yet). The old batch direct protocol is still supported for compatibility with older servers.
- Added Record.getTimeToLive() which converts server absolute time back to expiration ttl.
- Implement equals on every extended Value class.
- Implement hashCode and equals on Bin, Value and Filter.
- Ignore sleepBetweenRetries when in async mode.
- Change ClientPolicy.failIfNotConnected default to true.
- Added ThreadDaemonFactory which prepends "Aerospike" prefix to thread name.
- Added AerospikeClient.removeUdf().
Bug Fixes
- Ensure command is not being simultaneously processed in task thread before timing out in async mode.
- Mark connection's lastUsed as volatile.
- Handle duplicate node-ids caused by multiple ethernet interfaces. [AER-3648]
- Fix LargeList.filter() command arguments.
- Transfer timeout from command to future task.
- Check for zero-sized arrays and call onSuccess() in async batch get.
Full Changelog: 3.1.2...3.1.3
3.1.2
Release Date: May 14, 2015
New Features
- Support Iterable interface in RecordSet and ResultSet.
- Support new data-admin security role for enterprise edition.
- Show node IP address in timeout exception.
- Update license.
Full Changelog: 3.1.1...3.1.2
3.1.1
Release Date: April 15, 2015
New Features
- Support distributing read commands over replicated nodes in addition to master node. See "ClientPolicy.requestProleReplicas" and "Policy.replica". This functionality is disabled by default and can be enabled by users if using Aerospike server versions >= 3.5.9.
- Support asynchronous execute() for single records. Added asynchronous User-Defined Function (UDF) call example.
- Added new LargeList methods which are supported by Aerospike server versions >= 3.5.8.
- Replaced configuration userModule/createModule with LargeList.setPageSize().
- Removed unnecessary LargeList getCapacity() and setCapacity().
Bug Fixes
- If the call to onSuccess() generates an exception in async mode, call onFailure(). This is important in cases where user's code is waiting for a completion notification which wasn't yet called in onSuccess().
- Fixed a bug with Value.equals().
- Read resource files using resource stream instead of File.
Full Changelog: 3.1.0...3.1.1
3.1.0
Release Date: March 18, 2015
New Features
- Support reading User-Defined Functions (UDFs) from resources.
- Support boolean bin values on client side. The server does not natively handle boolean, so store as long. Use Record.getBoolean(name) to retrieve.
- Added Record.getString(name).
- Update lua list/map/bytes library to be consistent with latest server changes.
- Removed as.lua resource file.
- Added Bin constructors for list/map. Previous code that wrote list/map bins with the default object constructor may now need to be modified to preserve previous behavior. See Incompatible API change.
- Added list bin append via User-Defined Function (UDF) example (UserDefinedFunction.appendListUsingUdf()).
Bug Fixes
- Make mismatched batch digests an error condition.
Full Changelog: 3.0.35...3.1.0
3.0.35
Release Date: February 19, 2015
Bug Fixes
- Fix unpacker bytes to short conversion for negative numbers < -128.
- Remove zero size packet exception and keep processing query/scan/batch. The server will eventually send the finish notification.
- Ensure query threads are initialized before threads are aborted when a query initialization exception occurs.
Full Changelog: 3.0.34...3.0.35
3.0.34
Release Date: February 06, 2015
New Features
- Always return 64 bit integers (long) for numbers retrieved from the server. Code that casts record values to Integer must be changed to call "Record.getInt()" which performs the proper casting. See Incompatible API change.
- Support secondary indexes on bins containing a collection.
- Support asynchronous query.
- Support maxConcurrent in asynchronous batch, scan and query.
- Add asynchronous query and store key examples.
- Add IAerospikeClient and IAsyncClient interfaces that should be more mock friendly.
- Set default set in benchmarks to "testset".
- Support new server error codes.
- Support user-defined roles with namespace/set scoping. Rename UserRoles to User.
- Send key on both reads and writes when "Policy.sendKey" is true.
Bug Fixes
- Fix user key send buffer byte size calculation.
- Make receiving a zero-sized data packet from server an error condition which results in a socket close.
Full Changelog: 3.0.33...3.0.34
3.0.33
Release Date: January 09, 2015
New Features
- Support read consistency level.
- Support transaction commit level on writes.
- Support double/float on client-side. Server will store these values as longs.
- Support large list remove range.
- Separate large collection userModule into createModule and filterModule.
- Use xorshift128plus algorithm to generate random values in benchmarks.
Bug Fixes
- Validate that value type can be used as a key.
- Server has been handling NOBINDATA flag correctly for a long time on read record header, so remove old workaround code.
- Check if server enables LDT before running LDT examples.
Full Changelog: 3.0.32...3.0.33
3.0.32
Release Date: November 18, 2014
New Features
- Create generic thread Executor class used by scan, batch, and udf execute.
- Change "Policy.maxRetries" default from 2 to 1.
- Change scan/query maxRetries value to zero in default constructor (used to be changed in transaction code).
- Create separate default policies for asynchronous commands.
- Removed deprecated RecordExistsAction generation enum values. Use "WritePolicy.generationPolicy" instead.
- Removed "Record.duplicates".
- Add udf methods that take WritePolicy (instead of base Policy) as an argument, so ttl can be specified.
- Add LargeMap.exists().
- Support large list and large stack operations in benchmarks.
- Support record replace option in benchmarks.
Bug Fixes
- Empty blocking queues instead of interrupting threads on query cancel. Thread interrupts can possibly occur after thread task has completed and can cause problems when thread is re-used from a thread pool.
- Send user key in multi-operation call if set in write policy.
- Fix LargeSet.exists().
Full Changelog: 3.0.31...3.0.32
3.0.31
Release Date: October 28, 2014
New Features
- Always send taskId on query/scan.
Bug Fixes
- Fix aggregation query race condition.
- Handle record not found case in large collection size() and getCapacity().
- Disable doclint when generating javadocs in java 8.
Full Changelog: 3.0.30...3.0.31
3.0.30
Release Date: October 10, 2014
New Features
- Add queryNode() for querying on a single node.
- Generate query taskId if not set. Change taskId from int to long.
- Support batch get in benchmarks.
Bug Fixes
- Return immediately if batch keys length is zero.
- Detect "split cluster" case where rogue node thinks it's a one-node cluster.
Full Changelog: 3.0.29...3.0.30