All notable changes to this project will be documented in this file.
-
New Features
- Add new delete record operation. Requires server version 4.7 or later (4.7.0.8+ or 4.8.0.3+ recommended). #322
- Support compressed commands and responses. Requires Aerospike Enterprise Server version 4.8 or later. #335
- Add per-node opened/closed connection stats. #336
- Support write operations on background scans & queries. Requires server version 4.7 or later. #338
- Support new records-per-second limit for scans, replacing scan priority. Requires server version 4.7 or later. #339
- Add predicate filter support for batch, read, write, delete, and record UDF transactions. Requires server version 4.7 or later. #340
-
Updates
- New Features
- Support for bitwise operations. Requires server version 4.6 or later. #312
-
New Features
- Support for operations on nested lists & maps. Requires server version 4.6 or later. #307
-
Updates
- Update C client library to v4.6.7.
- Support Debian 10. Drop support for Debian 7.
- Fix tests for certain out-of-bounds list operations due to changed error code sent by server v4.6.
- Update dev dependecies: standard v14, yargs v14, nyc
-
New Features
-
Updates
-
New Features
- Support new relaxed read modes for SC namespaces. (via C client v4.6)
- Use stack based connection pools for more aggressive trimming of idle connections. (via C client v4.6)
-
Updates
- BREAKING: Read consistency level changes - see Incompatible API Changes for details.
- Update C client library to v4.6.1.
- Update nan to v2.13.2.
- Update mocha, codecov & other dev dependencies to latest version.
- Updates
- Update C client library to v4.5.0.
- Update nan to v2.12.1.
- Update nyc to v13.3 to address multiple potential vulnerabilities in nyc dependencies.
- Update docs for udfRemove function to document changes in server behavior when trying to delete a UDF module that does not exist.
- Drop Node.js v4 from the test matrix. The client still runs on Node.js v4 for now, but not all of its dev dependencies do.
-
New Features
- Add support for rack-aware clients.
- Add client run-time stats.
-
Updates
- Update C client library to v4.4.0.
- Remove unused error codes.
- Improve global command queue docs.
- Shared memory layout has changed. The default Config#sharedMemory.key has changed to 0xA8000000 so old client applications do not mix shared memory with new client applications. If you are using shared memory clients with a custom shared memory key, it's critical that you change the key when upgrading to this version.
-
Bug Fixes
-
Updates
- Update C client library to v4.3.20.
- Replace V8 conversion functions deprecated in Node.js 10.12/11
- Suppress compiler deprecation warnings for Release builds
- Add Node.js 10 back to Travis CI test matrix
-
Bug Fixes
-
Updates
- Fix some tests breaking when auth enabled. #284
-
New Features
- Support "deserialize" policy setting. #278
- Add getter for client instance to AerospikeError.
-
Bug Fixes
-
Updates
- Update C client library to v4.3.18.
- Update nan and chai to latest versions.
- Updates
-
New Features
-
Updates
-
New Features
- Support list/map nearest key/value get/remove operations (relative rank range). Requires server version v4.3.0 or later. #264
- Support list write flags NO_FAIL and PARTIAL. Add new map write flags, including NO_FAIL and PARTIAL. Requires server version v4.3.0 or later. #265
- Rewrote examples to use latest client APIs, ES2017 async functions, and reduce yargs boilerplate code #266
-
Updates
- Bug Fixes
- Fix Set Order/Sort List operations broken on some platforms #261
-
New Features
-
Updates
-
Bug Fixes
-
New Features
- Support authentication mode (Config#authMode). When user authentication is enabled, the mode specifies internal server authentication or external (e.g. LDAP) authentication.
- Support separate login timeout (Config#loginTimeoutMs) when authentication is enabled.
- Support for Async Hooks in Node.js 9/10 #255
-
Updates
- Tests: Upgrade to Mocha v5, Choma v1.2 & replace expect.js with Chai
- Update C client library to v4.3.11.
-
Bug Fixes
-
New Features
- Support building package on Windows (64bit, Windows 7 or later) #239
- Add new, optional command queue. If configurable limit of in-process commands is exceeded, additional commands are queued for later execution. #245
- Added new
inDoubt
flag toAerospikeError
. TheinDoubt
flag indicates if a write command may have completed even though an error was returned. This scenario can occur on a client timeout for a command that has been sent to the server. #242 - Added a command reference to
AerospikeError
for the database command, during which the error occurred. TheCommand
object may contain additional information such as the record key for single-record-key read/write commands. #242
-
Updates
- Update C client library to v4.3.5.
-
Bug Fixes
-
Updates
- Update C client library to v4.3.2.
-
New Features
-
Updates
- Bug Fixes
- Release event loop on #close even if client not connected #225
- Bug Fixes
-
New Features
- Support for Promises in addition to Callback functions PR #210
- Support nobins flag on query operations
- Support CDT List Increment operation. Requires Aerospike server version 3.15 or later.
- Improved timeout handling and automatic transaction retries - see detailed API changes for more info.
- Support gen policy for apply UDF operation.
-
Bug Fixes
- Fix memory leak in batchRead #213
-
Updates
- Requires Node.js v4.x (LTS) or later; Node.js v0.12.x and io.js are no longer supported PR #179
- Update C client library to v4.2.0.
- Changes to callback function signatures for several client operations. PR #210
- Removal of several client functions, that were marked as deprecated under v2.x. PR #214
- Policy rewrite and changes to how default client policies are configured. PR #221
- Changes to shared memory layout and default shared memory key.
Please refer to the full list of backward incompatible API changes for further details.
- Bug Fixes
- Close cluster event callback handle when client is closed #211
- New Features
- Add socket timeout setting to query policy #207
-
New Features
- Client emits cluster state changed events #206
-
Updates
-
New Features
- Expose new consistency level in batch policy [#197](aerospike#197
- Add interface to dynamically add/remove seed hosts #194
- New UDF register/unregister job to async wait for job completion #198
- Improved Info.parse() function, replacing Info.parseInfo()
-
Updates
- Update C client library to v4.1.6.
- The Client#udfRegisterWait and Info#parseInfo functions have been marked deprecated. See API Changes for details.
v2.5.x is the last release to support Node.js v0.12 and io.js. The next major client release will require Node.js v4 or later.
-
New Features
- Capture more useful stacktraces for debugging #189
-
Bug Fixes
- Bug Fixes
- Support queries with keys with just namespace + digest #184
-
New Features
-
Bug Fixes
-
Updates
-
Bug Fixes
-
Updates
- Remove non-functional TLS support for now. #160
-
Documentation
- Mark LargeList functionality as deprectated. #159
- Bug Fixes
- Fix installation on macOS. #155 Thanks to @arch1t3ct!
- Fix installation on platforms without
which
command. - Explicity link zlib to fix usage on Alpine Linux. #117 Thanks to @rma4ok!
-
New Features
- Added constant enums
Aerospike.ttl
for "special" TTL values, incl.DONT_UPDATE
value supported by Aerospike Server v3.10.1 and later.
- Added constant enums
-
Bug Fixes
- Security Fix: Download C client using HTTPS and verify package checksum. #153 Thanks to Adam Baldwin of @liftsecurity for the report!
- Support for Ubuntu 16.10/17.04 in the C client download script. #154 Thanks to @kitex!
-
Bug Fixes
- Fix write operator to support double values. #148 Thanks to @OlegPoberegets!
-
Changes
- Renamed Cluster ID to Cluster Name; Cluster Name verification requires Aerospike Server v3.10 or later.
-
Updates
- Update C client library to v4.1.1.
-
New Features
- Support for durable delete write policy [CLIENT-769]; requires Aerospike Server Enterprise Edition v3.10 or later.
- Support IPv6 socket protocol; requires Aerospike Server v3.10 or later.
- Support Cluster ID verification; requires Aerospike Server v3.10 or later.
- Support new peers info protocol; requires Aerospike Server v3.10 or later.
Support TLS 1.2 secure socket protocol; requires future Aerospike Server release.- New Client#infoAny command to send info request to single cluster node.
-
Improvements
- Add support for two new server error codes (23 & 24) introduced in Aerospike Server v3.9.1.
- Regression: Skip LDT and CDT Map tests if server does not support the feature [CLIENT-753]
-
Updates
- Update C client library to v4.1.0.
- Shared memory layout has changed in v4.1.0 of the C client library. See backward incompatible API changes for more details.
- The
retry
policy value for read, write, remove and operate policies has been deprecated as it does not actually affect single key read/write commands, the batch read command or query/scan commands in client versions v2.x.
- Bug Fixes
- Fix installation on Amazon Linux. #143
-
New Features
- Add Client#infoAll method to simplify processing info responses from multiple hosts. #43
-
Bug Fixes
-
Improvements
- Improved C-client resolution to avoid issues fetching C client artifact during npm package installation
-
Changes
- Update C client library to v4.0.7.
- Drop support for Debian 6
- New Features
- Added back support for applying stream UDF to query results w/o aggregation.
- Added
maxConnsPerNode
config setting to address #130.
- Bug Fixes
- Prevent segfault processing query/scan record stream if client object goes out of scope. [CLIENT-735]
- Update C client to v4.0.6 with fix to complete scan on empty sets. #132
-
New Features
- Support for operations on Sorted Maps. Requires Aerospike server version 3.8.4 or later.
-
Improvements
- Key objects returned in callbacks now include the digest
- Code cleanup to support [email protected] which adds several new rules
-
Fixes
- Fix compile time error with Node 0.12 using gcc 4.4. #131
-
Changes
- The
aerospike.operator
module has been split up into two seperate modulesaerospike.operations
andaerospike.lists
for operations on scalar and list data types respectively. See detailed list of API changes for further details.
- The
-
Documentation
- Pulled client configuration out into a separate class and expanded the documentation.
- Documented
sharedMemory
configuration. - Added tutorial for using Aerospike client in Node.js cluster setup.
- Fixes
- Event loop does not get released if module gets required but never used to open & close client connection. #124
- Improvements
-
Improvements
- Optimize callback handler performance. #119
- Removed some unused async C++ helper functions; minor code cleanup
-
Fixes
- Ensure callbacks are always called asynchronously, even for param errors raised by the client itself. #120
-
Tests
- Complete tests for writing bins with specific data types
- Extend query/scan performance tests
-
Documentation
- Minor JSDoc documentation fixes
- Documentation
- Added overview page for API docs
- Added "Getting Started" tutorial to API docs
- Updated documentation for aerospike module
-
Improvements
- Added new filter predicates in the
Aerospike.filter
module:- contains() to match on list/map membership for integer & string values
- geoWithinRadius() to match on geospatial locations within a given radius from another point (incl. geospatial locations in lists and maps)
- geoContainsPoint() to match on geospatial regions that include given lng/lat coordinates (incl. geospatial regions in lists and maps)
- geoContains() is deprecated and has been replaced by geoContainsGeoJSONPoint()
- geoWithin() is deprecated and has been replaced by geoWithinGeoJSONRegion()
- New async. implementation for Query#foreach (renamed from Query#execute).
- Added support for background queries with Record UDF via Query#background.
- Support aborting background queries via RecordStream#abort.
- Consolidated ScanTask, IndexTask into new Job class with support for querying background queries as well.
- Combined Scan#applyEach and Scan#background to reduce chance of mis-use. (Record UDF can only be applied on background scan.)
- Added new filter predicates in the
-
Fixes
- Fix possible memory corruption parsing UDF module or function names.
- Improvements
- Added support for creating secondary indexes on list and map values; requires Aerospike server version >= 3.8. [CLIENT-684]
- Added
Aerospike.info
module withparseInfo
utility method to parse info string returned by Aerospike cluster nodes usingClient#info
method. - Added IndexTask class returned by
Client#createIndex
to replaceClient#createIndexWait
;IndexTask#waitUntilDone
polls for task completion asynchronously. - Added new Scan API implementation via
Client#scan
.
-
Improvements
- Use asynchronous client commands of the new Aerospike C/C++ client library version 4.0.
- Follow Node.js error-first callback conventions: The client now returns
null as the first parameter (
error
) in most callbacks when the command was executed successfully. See backward incompatible API changes for more details. #105, PR #106. Thanks to @eljefedelrodeodeljefe! - Add support for pluggable callback handler logic for backwards compatibility with legacy error callback semantics.
- The
Key
,Double
andGeoJSON
functions can be used as Constructors now to create instances of the respective data types, e.g.var key = new Key(ns, set, 'mykey1')
. Use of theDouble
andGeoJSON
functions as well as thekey
function as regular functions without thenew
keyword is deprecated but still supported for backwards compatibility. - The new
batchRead
command was added to support reading different namespaces/bins for each key in a batch. This method requires Aerospike server version >= 3.6.0. The batchGet/batchExists/batchSelect client commands deprecated but still supported for backwards compatibility. - Added
isConnected
client method to check cluster connection status. - Improvements to the client's mocha test suite, incl. performance improvements by re-using a single client connection for all tests.
- Add missing status codes to
Aerospike.status
. - Added support for set compression threshold policy for write operations, retry policy for read operations, and ttl policy for apply operations.
-
Fixes
- Node segfault when trying to query the aerospike client after closing the connection. #88
-
Changes
- Drop support for Node.js v0.10. The Aerospike Node.js client now requires Node.js v0.12 or later.
- The
add
client command was renamed toincr
; theadd
function is maintained as an alias for the newincr
function for backwards compatibility but is deprecated. - The
execute
client command was renamed toapply
; theexecute
function is maintained as an alias for the newapply
function for backwards compatibility but is deprecated.
-
Documentation
- JSDoc-style annotations have been added throughout the library code and new API documentation is generated from the source code using JSDoc v3. This is work-in-progress and will be completed before v2.0.0-final is released.
-
Improvements
- Update build script to support Fedora 23 as well as Korora 22/23. #113, #115
- Update Aerospike C client library to v4.0.3.
- Optionally read hosts config from
AEROSPIKE_HOSTS
environment variable. Thanks to @mrbar42! - Collect TPS stats in benchmarks.
- Update Travis CI config to test latest Node.js release & add badge. Thanks to @revington!
-
Fixes
- Fix replica policy value overwriting gen policy [CLIENT-699]
- Fix lists being returned as bytes in listGetRange/listPopRange operations (via C client library v4.0.3).
-
Improvements
- Support
operator.incr()
operation on double values. - Refactor test suite to improve performance and maintainability.
- Support
-
Fixes
- Fix segfault when
client.connect()
is called without callback function.
- Fix segfault when
-
Documentation
- Fix wrong method name in llist documentation. Thanks to @srinivasiyer!
- Update build dependencies for CentOS/RHEL 6.
- Clarify supported data types and (lack of) automatic data type conversions.
- Update supported Node.js versions.