All notable changes to this project will be documented in this file.
- Bug Fixes
- [CLIENT-3155] - Fixed typescript compilation by removing the protected modifier from the ExpOperation class.
-
New Features
- [CLIENT-3127] - Added client.ExistsWithMetadata.
- [CLIENT-3153] - Added support for Node.js 23.
-
Bug Fixes
- [CLIENT-3107] - Map read and List read operations no longer throw a type error when using EXISTS, ORDERED_MAP, or UNORDERED_MAP return types.
- [CLIENT-3145] - Fixed issue with BatchResult not returning inDoubt status to the user.
-
Improvements
- [CLIENT-3061] - Revamped typescript support by improving description file with tighter definitions and documentation.
- [CLIENT-3149] - Fixed import conflicts with third party packages in typescript description file.
- [CLIENT-3149] - Improved typescript description file compilation.
- [CLIENT-3151] - Converted API documentation to TypeDoc documentation.
- [CLIENT-3061] - Revamped typescript support by improving description file with tighter definitions and documentation.
-
Breaking Changes
- [CLIENT-2984] - Dropped support for Node.js 21.
-
New Features
- [CLIENT-2976] - Added support for Ubuntu 24.04.
- [CLIENT-2977] - Added support for Node.js 22.
-
Bug Fixes
- [CLIENT-2975] - Fixed issue with TLS pending buffer calculation in as_uv_tls_try_send_pending().
- New Features
- [CLIENT-2822] - Added the queryDuration enumeration to the policy module. The following values are supported:
- Aerospike.policy.queryDuration.LONG
- Aerospike.policy.queryDuration.SHORT
- Aerospike.policy.queryDuration.LONG_RELAX_AP
- [CLIENT-2822] - Added expectedDuration member to QueryPolicy. Use the queryDuration enumeration when setting expectedDuration.
- [CLIENT-2829] - Added support for readTouchTtlPercent for the following policies:
- ReadPolicy
- OperatePolicy
- BatchPolicy
- BatchReadPolicy
- [CLIENT-2822] - Added the queryDuration enumeration to the policy module. The following values are supported:
-
New Features
- [CLIENT-2770] - Added support for persistent list indexes.
- [CLIENT-2774] - Added 'ttl' property to 'batchWrite' policy.
- [CLIENT-2793] - Added support for the batchParentWrite policy in the client config policy.
- [CLIENT-2795] - Added the 'create' method for the 'aerospike/list' module.
-
Bug Fixes
- [CLIENT-2773] - Added missing error codes to status.js.
- [CLIENT-2794] - Fixed typescript compiler errors.
- [CLIENT-2781] - Batch repeat flag is no longer set on batch writes when the 'sendKey' policy is true.
-
New Features
- [CLIENT-2672] - Added support for MacOS 14.
- [CLIENT-2751] - Added support for Node.js 21.
-
Bug Fixes
- [CLIENT-2599] - Added documentation to avoid build issues on Windows with Python 3.12.
- [CLIENT-2709] - The C Client submodule now marks node’s partitions for retry on the next scan/query page when a node returns records that are discarded due to exceeding maxRecords.
- [CLIENT-2749] - Added missing BOOL enumeration to Aerospike.exp.type. In scan/query with maxRecords set, mark node's partitions for retry on next scan/query page when that node returns records that are discarded due to exceeding maxRecords.
- [CLIENT-2750] - Changed npm-run-all from a dev-dependency to a dependency.
-
Breaking Changes
- [CLIENT-2659] - Dropped support for Debian 10.
- [CLIENT-2660] - Dropped support for CentOS 7.
- [CLIENT-2661] - Dropped support for Red Hat Enterprise Linux 7.
- [CLIENT-2662] - Dropped support for Oracle Linux 7.
- [CLIENT-2663] - Dropped support for Amazon Linux 2.
- [CLIENT-2668] - Dropped support for macOS 11.
-
New Features
- [CLIENT-2095] - The Aerospike client can now be installed using “npm install aerospike” on windows.
- [CLIENT-2572] - Added exp.recordSize expression.
- [CLIENT-2587] - Added Client.createBlobIndex.
- [CLIENT-2587] - Added indexDatatype.BLOB.
- [CLIENT-2615] - Added exp.expWriteFlags and exp.expReadFlags.
- [CLIENT-2617] - Added map.create method with parameter to create a persistent map index.
- [CLIENT-2669] - Added config.errorRateWindow and config.maxErrorRate.
- [CLIENT-1421] - maxErrorRate and errorRateWindow can be adjusted to modify the circuit breaker pattern implemented by the C client.
-
Improvements
- [CLIENT-2671] - Updated batch examples on the Node.js Client API docs page.
-
Bug Fixes
- [CLIENT-2629] - Fixed bug in which some batch methods returned an AEROSPIKE_BATCH_FAILED error rather than records with detailed status codes.
- [CLIENT-2670] - Fixed bug in which config.tenderInterval was not being applied.
-
New Features
-
Breaking Changes
- [CLIENT-2517] - Dropped support for Node.js 19.
- [CLIENT-2581] - Dropped support for Node.js 16.
-
New Features
- [CLIENT-1983] - Added support for the javascript “Map” class as a bin value in client.put method and maps.putItems method.
- [CLIENT-1983] - Added the Bin class for use in the client.put method.
- [CLIENT-2378] - Added exp.inf and exp.wildcard expressions.
- [CLIENT-2488] - Added a “returnType” parameter to map expression remove methods. Acceptable “returnType” values are maps.returnType.INVERTED and maps.returnType.NONE.
-
Improvements
- [CLIENT-1601] - Switched API docs theme to docdash.
- [CLIENT-2374] - Restored typescript support.
-
Bug Fixes
- [CLIENT-2538] - Fixed bug in which list expression remove methods and map expression remove methods resulted in a segmentation fault.
-
New Features
- [CLIENT-630] - Added the following role-based access control (RBAC) security features:
- Modules
- Aerospike.Client.admin
- Aerospike.Client.privilegeCode
- classes
- Aerospike.Client.admin.User
- Aerospike.Client.admin.Role
- Aerospike.Client.admin.Privilege
- Aerospike.Client.adminPolicy
- Methods
- Aerospike.Client.changePassword
- Aerospike.Client.createUser
- Aerospike.Client.createRole
- Aerospike.Client.dropRole
- Aerospike.Client.dropUser
- Aerospike.Client.grantPrivileges
- Aerospike.Client.grantRoles
- Aerospike.Client.queryRole
- Aerospike.Client.queryRoles
- Aerospike.Client.queryUser
- Aerospike.Client.queryUsers
- Aerospike.Client.revokePrivileges
- Aerospike.Client.revokeRoles
- Aerospike.Client.setQuotas
- Aerospike.Client.setWhitelist
- Modules
- [CLIENT-1303] - Added the ‘TTL' property to the query and scan classes. Note: records will only have their ‘TTL’ value set if query.operate or scan.operate is called when the ‘TTL’ property is set.
- [CLIENT-2393] - Added support for Debian 12.
- [CLIENT-630] - Added the following role-based access control (RBAC) security features:
-
Improvements
- [CLIENT-2350] - Initialized values depended on by conditional jumps.
- [CLIENT-2466] - Added additional input validation.
-
Bug Fixes
- [CLIENT-2463] - Paginated queries without a filter specified will no longer throw a TypeError for reading an undefined value
-
updates
- The typescript description file 'index.d.ts' has not been updated. The next release will update 'index.d.ts' and restore typescript support.
-
New Features
- [CLIENT-1803] - Added support for creation of a secondary index on elements within a Collection Data Type.
- [CLIENT-1990] - Added support for Collection Data Type (CDT) Context Base64 serialization.
- [CLIENT-2085] - Added support for rack aware queries and scans.
- [CLIENT-2347] - Added the 'replica' property to the QueryPolicy and ScanPolicy Classes.
- [CLIENT-2348] - Added filter support for secondary indices on elements within a Collection Data Type.
-
Improvements
- [CLIENT-1823] - Changed the example and parameters in the API Documentation for Client.batchApply.
- [CLIENT-2345] - Improved Client.indexRemove unit test by verifying deletion with a query.
- [CLIENT-2373] - Modified Query.where() to replace the current filter rather than add a filter to Query.filters.
- [CLIENT-2376] - Removed dynamic linking to OpenSSL.
-
Updates
- The typescript description file 'index.d.ts' has not been updated. The next release will update 'index.d.ts' and restore typescript support.
-
Breaking Changes
- [CLIENT-2343] - Dropped support for Node.js 14
-
New Features
- [CLIENT-2108] - Added pagination support for queries and scans. Requires Aerospike Server version 6.0 or above.
- [CLIENT-2224] - Added support for rack aware reads when the replication factor is three.
- [CLIENT-2303] - Added support for Amazon Linux 2023.
- [CLIENT-2342] - Added support for Node.js 20
-
Improvements
- [CLIENT-1819] - Fixed issue which caused the configuration class property "rackId" to be ignored.
-
Bug Fixes
- [CLIENT-2231] - Fixed expression API documentation to show parameters for functions.
-
The new features require Aerospike Server version 6.3 or newer.
-
Breaking Changes
- Dropped support for:
- Ubuntu 18.04
- Debian 10 (ARM64 only).
- Dropped support for:
-
New Features
- [CLIENT-2178] - Added ORDERED_MAP and UNORDERED_MAP map operation return types.
- [CLIENT-2187] - Added comparison of map values using expressions.
-
New Features
- [CLIENT-1750] - Added 'returnType.EXISTS' for 'aerospike/maps' and 'aerospike/list' module read operations. This feature requires server version 6.1+.
- [CLIENT-1818] - Added the 'getByKeyList' method 'aerospike/maps' module.
- [CLIENT-2210] - Added the 'getByValueList' method 'aerospike/maps' module.
-
Improvements
- [CLIENT-1819] - Corrected 'Client.batchApply' to have a keys parameter rather than a records parameter.
-
Bug Fixes
- [CLIENT-2231] - Fixed segmentation fault caused by using context with map and list expressions. Added unit tests for map and list expressions using context. Fixed parameter order for map and list expression methods.
-
Improvements
- [CLIENT-2202] - Corrected default values for MaxConnsPerNode, maxSocketIdle, and totalTimeout policies within the API documentation.
-
Bug Fixes
- [CLIENT-2195] - Reworked batch write to accommodate promises and callbacks. Batch write will no longer return "AEROSPIKE_BATCH_FAILED" as an error, and will instead return results with status codes detailing the status of each batch operation.
-
New Features
- [CLIENT-1248] - AddListIndexCreate and AddMapKeyCreate added to cdt_context.js.
-
Improvements
- [CLIENT-2011] - Batch writes now returns the results of transactions ending in the AEROSPIKE_BATCH_FAILED status as well as the status of each record.
- [CLIENT-2150] - Reduced install size from 500MB to 166MB.
-
Bug Fixes
- [CLIENT-2167] - Fixed broken API documentation links.
- [CLIENT-2168] - Added missing methods from operations classes.
-
Updates
- BREAKING: Client does not support Node.js LTS version 14 on macOS using ARM architecture - see Incompatible API Changes for details.
- Added support for
- Node.js 19
- Ubuntu 22.04
- RHEL 9
- Dropped support for:
- Node.js 10, 12, 17
- RHEL 7
- Debian 8, 9
-
New Features
- [CLIENT-2000] - Added ARM architecture support for all currently supported OS systems.
- Bug Fixes
- [CLIENT-1944] - Node.js: Revamped existing API documentation.
- [CLIENT-1943] - Node.js: Added documentation for list, map, hll, and bit expressions
- [CLIENT-1942] - Node.js: Improved examples within the API documentation.
-
Updates
- Debian 9 Stretch LTS has reached its End of Life on June 30 2022. We will drop support for Debian 9 in an upcoming client release.
-
Bug Fixes
- [CLIENT-1778] Node.js: document client support for PKI auth.
- [CLIENT-1762] Add Node.js client TypeScript support.
- Bug Fixes
- [CLIENT-1745] Running node.js client on Alpine 3.15 + node 17.9 results with an error.
- [CLIENT-1746] Node.js batch type js object and documentation incomplete.
- Bug Fixes
- [CLIENT-1743] - Node.js mac client exits on first database operation. (4.00+)
- [CLIENT-1734] - Node.js client: Typescript file missing in npm package version 4.0.2.
-
New Features
- [CLIENT-1713] - Node.js: Support batch apply command.
- [CLIENT-1712] - Node.js: Support batch remove operations.
- [CLIENT-1711] - Node.js: Support batch write operations.
- [CLIENT-1715] - Node.js: Support query partition.
- [CLIENT-1714] - Node.js: Support scan partition.
-
Updates
- BREAKING: Remove deprecated PredicateExpression filtering which has been replaced by new Filter Expressions
- npm registry includes images for nodejs v17.8.0 and v18.0.0
- Bug Fixes
- [CLIENT-1745] Running node.js client on Alpine 3.15 + node 17.9 results with an error.
- Bug Fixes
- [CLIENT-1743] - Node.js mac client exits on first database operation. (4.00+)
- [CLIENT-1734] - Node.js client: Typescript file missing in npm package version 4.0.2.
-
New Features
- [CLIENT-1629] - Node.js: Support for Debian 11.
-
Updates
- [CLIENT-1404] - Node.js: Use the new C client ability to sort maps client-side ahead of operations.
-
Bug Fixes
- [CLIENT-1718] - Support failOnClusterChange for query policy.
- Updates
- Update deprecated Aerospike PredExp usage
- Update Aerospike Expressions usage
-
New Features
-
Updates
- BREAKING: This client requires server version 4.9 or later.
- BREAKING: Drop support for Node.js 8.
- BREAKING: Remove support for CentOS 6 as well as Ubuntu 16.04.
- BREAKING: Remove Scan#priority, Scan#percent, and ScanPolicy#failOnClusterChange, as the server no longer supports these fields.
- Add support for building c-client as a sub-module.
-
Bug Fixes
- CLIENT-1641: Unprocessed results sent to a different transaction on "Partition unavailable"
-
Updates
- Update C client library to v4.6.24.
-
Bug Fixes
- Client doesn't start with "minConnsPerNode" option #419
-
Updates
- Update C client library to v4.6.23.
- Drop support for Ubuntu 16.04.
-
Bug Fixes
- CLIENT-1498: Support infoTimeout on QueryPolicy. The timeout is used when failOnClusterChange is true and an info validation command is sent before/after the query. #412
-
Updates
- Update C client library to v4.6.21.
- Bug Fixes
- CLIENT-1453: Client release v3.16.3 fails to install on Amazon Linux #403
-
Bug Fixes
- CLIENT-1441: Support boolean values in Map/List bins. #401
-
Updates
-
New Features
- Support setting tlsname using Host obj. #382
-
Bug Fixes
- Reverses the breaking change introduced in v3.16.0 of not supporting percent-based scan sampling for server versions 4.9 or later. However, note that scan percent and max_records are mutually exclusive; the client will return an error if both values are set on a scan policy.
- Query with "failOnClusterChange" causes timeout when using command queue. #389
-
Updates
- Remove support for ApplyPolicy#gen, which is not supported by the server. #390
- Update C client library to v4.6.19
- Clarify docs for HLL ALLOW_FOLD policy #386
- Fix minhash bits range in docs (4-51, not 4-58). #385
- Fix spelling of capacity in Command Queue docs. #376 Thanks to @icflournoy!
- Refactor: Set TTL as part of the touch operation #391
- Add support for Ubuntu 20.04.
- Drop support for Ubuntu 14.04.
- Bug Fixes
- Fix memory leaks when running secondary index (SI) queries with string filter predicates. #370
-
New Features
-
Updates
- BREAKING: The client no longer supports the percent-based scan sampling for server versions 4.9 or later. Use the new max records scan policy option instead. See API Changes for details.
- Update C client library to v4.6.16.
- Update dependencies with potential vulnerabilities by running npm audit fix. #367
-
New Features
- Support for BigInt as record key and bin value. #348
-
Updates
- Update C client library to v4.6.13.
-
Bug Fixes
- Regression: Protocol error on authenticated connections. [CLIENT-1169]
-
Updates
- Update C client library to v4.6.12.
-
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 server 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
-
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 server 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 server >= 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.