Skip to content

Releases: hazelcast/hazelcast-nodejs-client

Hazelcast Node.js Client 4.0.2

29 Jan 14:33
Compare
Choose a tag to compare

This document includes the new features, enhancements, and fixed issues for Hazelcast Node.js Client 4.0.2 release.

New Features

  • None.

Enhancements

  • None.

Fixes

  • Client connection and underlying socket could leak in case of connection timeout. #738
  • Client could handle membership changes incorrectly on split brain. #733
  • Reconnect to members periodical task was initialized too early leading to potential races. #707
  • Connection could not be closed immediately on socket error. #704
  • Failed client start could lead to resource leaks. #692
  • Map query and Reliable Topic code samples were incorrect. #706
  • Fix TS typings for network config. #699
  • Client statistics were using incorrect client type identifier leading to issues in Hazelcast Management Center UI. #753

Breaking Changes

  • None.

Known Issues

  • None.

Hazelcast Node.js Client 4.1.0

25 Jan 08:06
Compare
Choose a tag to compare

This document includes the new features, enhancements, and fixed issues for Hazelcast Node.js Client 4.1.0 release.

New Features

  • Blue/Green Failover Config: Client now supports blue/green deployment and disaster recovery (IMDG EE feature). #713
  • External Smart Client Discovery via Load Balancer: Adds a new discovery mechanism that allows smart client to decide whether it needs to use public addresses for communication with members. As a result, Node.js client does not need a dedicated plugin to communicate with a cluster running on a cloud environment where members are exposed via a load balancer. #703
    • Note: this feature requires Hazelcast IMDG 4.2 or higher version.

Enhancements

  • Client now supports IMap.setTtl() operation. #741
  • Client now supports IAtomicLong.getAndDecrement() operation. #640
  • Map operations that insert and modify map entries now support maxIdle parameter. #742
  • Client is now capable of reporting statistics to Hazelcast Management Center 4.2020.08 and newer. #751
  • Client now avoids random connection delay when port not specified. In prior versions, the client was randomly trying 5701, 5702, and 5703 ports in any order when connecting to members, unless the port is specified in configuration. Now it starts with 5701 port to avoid extra delays in the most common deployment scenario. #735
  • Default cluster connect timeout is increased from 20 seconds to 2 minutes in order to provide more reliable behavior in Kubernetes and similar environments where IP resolution or system restart can take around a minute. #744
  • Default automated pipelining threshold is increased from 8KB to 64KB. #729
  • Primitive number type is now used instead of Long for correlation ids. #624

Fixes

  • Prevent client ending up with two addresses to same node when node is behind a private network. #713
  • Client connection and underlying socket could leak in case of connection timeout. #739
  • Client could handle membership changes incorrectly on split brain. #734
  • Connection could not be closed immediately on socket error. #709
  • Failed client start could lead to resource leaks. #689
  • Map query and Reliable Topic code samples were incorrect. #708
  • Fix TS typings for network config. #700

Breaking Changes

  • None.

Known Issues

  • None.

Contributors

We would like to thank the contributors from our open source community who worked on this release:

Hazelcast Node.js Client 4.0.1

01 Dec 15:23
Compare
Choose a tag to compare

This document includes the new features, enhancements, and fixed issues for Hazelcast Node.js Client 4.0.1 release.

New Features

  • None.

Enhancements

  • Listener deregistration was made more fault-tolerant. Now, it returns immediately and proceeds all server-side calls in the background. #627

Fixes

  • CountDownLatch#countDown could give up early on timeout error. #620
  • IMap's lock-related calls may throw OperationTimeoutError when a member dies. #622
  • Some public API methods with Promise<void> return type could return Promise with wrong non-void resolve type. #633
  • FencedLock's lock/tryLock methods did not clean up CP session resources on unexpected error. #642
  • Session-aware Semaphore was not properly releasing CP session in case of exception handling. #660
  • Java API code snippets and JAAS code sample were using 3.12 API instead of the 4.0 one. #669
  • Incorrect splice usage in IMap#getAll call for maps with Near Cache. #672
  • Client was not waiting for backup acks listener registration on start. #682
  • Listener registration did not wait for all connections. #682
  • Client had some floating promises which could lead to unhandled promise rejections. #686
  • Client did not clean up resources on failed start, i.e. if one of client start's steps failed, there could be active background tasks left. #692

Breaking Changes

  • None.

Known Issues

  • None.

Hazelcast Node.js Client 3.12.4

23 Nov 08:41
Compare
Choose a tag to compare

This document includes the new features, enhancements, and fixed issues for Hazelcast Node.js Client 3.12.4 release.

New Features

  • None.

Enhancements

  • Code Sample Code sample and documentation for Hazelcast Cloud is now up to date. #550
  • npm artifact npm artifact's size is now reduced significantly. #654

Fixes

  • getDistributedObjects() call could lead to unhandled promise rejection. #540
  • Client's member list could be broken by Hot Restart. #610
  • Lock call may throw OperationTimeoutError when a member dies. #618
  • Pending invocations were not rejected or retried on connection close. #662
  • redoOperation option was not implemented properly. #662
  • Incorrect splice usage in IMap#getAll call for maps with Near Cache. #670

Breaking Changes

  • None.

Known Issues

  • None.

Hazelcast Node.js Client 4.0.0

28 Sep 14:03
c52a41f
Compare
Choose a tag to compare

This document includes the new features, enhancements, and fixed issues for Hazelcast Node.js Client 4.0.0 release.

New Features

  • Hazelcast IMDG 4.0 Changes: Client protocol enhancements, architectural improvements, serialization improvements. #522
  • Ownerless Client: Simpler design to track member leaves and joins to the cluster. #522
  • CP Subsystem Support: New concurrency APIs including AtomicLong, AtomicReference, FencedLock, Semaphore, and CountDownLatch. Hazelcast IMDG 4.0 introduces CP Subsystem powered by Raft consensus protocol. It provides CP concurrency primitives with respect to the CAP principle, i.e., they always maintain linearizability and prefer consistency to availability during network partitions and client or server failures. #577, #580, #582, #591, #593
  • Backup Acknowledgment: Node.js client now supports backup acks (aka boomerang backups). So far the client was waiting for the sync backups to complete on the member. Boomerang backups decrease the number of network hops, thus improving the performance. #573

Enhancements

  • Configuration Redesign: Programmatic configuration was simplified. The configuration is now represented with a plain object. #554
  • Idiomatic Node.js API: Redesign of the API in a way that Node.js developers used to. #563
  • Performance: The number of allocated Buffers was reduced for writes. #585, #605
  • Private APIs were removed from the documentation. #568
  • Default serialization now supports native Buffer type. #572
  • Default serialization now supports Java UUID type. #586
  • New serverStackTrace property was added into HazelcastError class. It contains server-side stack trace elements and may be useful for debugging and diagnostics. #576
  • The client now uses native promises instead of promises provided by bluebird library. #587
  • Built-in benchmark now includes warm-up phase and support command-line arguments. #596

Fixes

  • Redo configuration option was ignored by the client. It is handled correctly now. #590
  • The member list could be broken after Hot Restart enabled member restart. Now the client handles the restart correctly. #575
  • Previously client.getDistributedObjects() call could lead to an unhandled promise rejection. #522

Breaking Changes

  • Minimal required Node.js version is now 10. #574
  • AP-based concurrency primitives (Lock, Semaphore, AtomicLong) were removed from the client. #522
  • Programmatic configuration API was changed to work with plain objects and declarative configuration support was removed. Certain configuration options were renamed to match option names from the old declarative configuration and Java client's XML/YAML configuration. #554
  • Client API was improved to a more idiomatic JS way. This means introducing properties instead of methods where possible and similar changes. #563
  • Buffer type is not used for mapping byte[] Java type. #572

Known Issues

  • Client statistics format in Node.js client v4.0 is compatible with Management Center v4.0. Support for format compatible with Management Center v4.2020.08 and newer will be added in one of the upcoming minor releases of the client. #556

4.0.0-alpha.1

27 Aug 11:21
Compare
Choose a tag to compare
  • Changed minimal required Node.js version to 10 (#574)
  • Simplified programmatic configuration and removed declarative configuration support (#554)
  • Simplified client API (#563)
  • Removed private APIs from documentation and reduced npm artifact size (#568)
  • Added Buffer type support (#572)
  • Added boomerang backups support (#573)
  • Added serverStackTrace property in HazelcastError class (#576)
  • Removed string serialization policy configuration option (#532)
  • Removed AP-based concurrency primitives (AtomicLong, Lock, Semaphore) (#522)
  • Added support for CP-based AtomicLong (#577)

Note: this is an alpha release, so Hazelcast client API is a subject to change.

Hazelcast Node.js Client 3.12.3

08 May 09:49
Compare
Choose a tag to compare

This document includes the new features, enhancements, and fixed issues for Hazelcast Node.js Client 3.12.3 release.

New Features

  • None.

Enhancements

  • RestValue Serializer: Serialization service is now able to handle RestValue objects that are inserted via the REST endpoints. #528

  • LOADED Event: When an entry is loaded from MapStore, the client now emits a LOADED event. #495

  • README.md: README.md is simplified and the full documentation is moved to DOCUMENTATION.md. #526

Fixes

  • None.

Breaking Changes

  • None.

Known Issues

  • None.

Hazelcast Node.js Client 3.12.2

31 Jan 08:50
Compare
Choose a tag to compare

This document includes the new features, enhancements, and fixed issues for Hazelcast Node.js Client 3.12.2 release.

New Features

  • None.

Enhancements

  • AWS PrivateLink Compatibility: Hazelcast Cloud Discovery is now also compatible with the AWS PrivateLink feature to provide connectivity between VPCs. #513

Fixes

  • A race condition that makes getting not-fully-initialized data structures possible when concurrent calls to get data structure is made is fixed. #512

  • Incorrect code samples and README sections are updated. #498, #504

Breaking Changes

  • None.

Known Issues

  • None.

Hazelcast Node.js Client 3.12.1

25 Jul 11:16
Compare
Choose a tag to compare

This document includes the new features, enhancements, and fixed issues for Hazelcast Node.js Client 3.12.1 release.

New Features

  • Automated Pipelining: With this new feature, all operations are pushed into an internal queue and the client tries to send them in batches to reduce the number of Socket.write() calls. #481

Enhancements

  • Performance: Unnecessary buffer allocations and copying while reading data from the socket is removed where possible. #481

Fixes

  • Non-ASCII characters in data structure names was leading to invalid names on the member side because the client was using character count as the length of string in bytes mistakenly. #491

Breaking Changes

  • None.

Known Issues

  • None.

Hazelcast Node.js Client 3.12

06 May 14:36
Compare
Choose a tag to compare

This document includes the new features, enhancements, and fixed issues for Hazelcast Node.js Client 3.12 release.

New Features

  • HazelcastJsonValue: Starting with Hazelcast IMDG 3.12, one can query JS objects stored inside the distributed data structures. Querying can also be made with HazelcastJsonValue using JSON strings. #468

Enhancements

  • Performance: Buffer allocations are revised and string serialization/deserialization methods are replaced with standard API calls. With these changes, overall performance of the client is significantly increased. There is up to 7000% throughput improvement on the Imap#get benchmark with 100KB string values. #473

  • Custom Credentials: README is updated with a basic sample of custom credentials. Also, an extensive JAAS based custom credentials code sample is provided. #466

  • Benchmarks: Self-throttling benchmarks are updated to reflect the true performance of the client. #467

Fixes

  • Formerly, lifecycle event changes was not logged. Now, they are logged with the info level #471
  • Missing statistics like os.processCpuTime are added and some statistics collection mechanisms are updated. #451
  • Client connection was not sending ping to member when it is constantly reading but not writing any data. #450

Breaking Changes

  • String Serialization: Hazelcast Node.js client now follows UTF-8 standard (RFC 3629) for string data type serialization of 4 byte UTF characters. This may lead to compatibility issues with Hazelcast IMDG 3.x and other client libraries for string and JSON values. See String Serialization section for more information.

Known Issues

None.