Skip to content

Releases: hazelcast/hazelcast-cpp-client

5.7.0

Choose a tag to compare

@g-donev g-donev released this 05 Jun 09:46
6f86429

This version is a minor release and is therefore fully backward-compatible with all 5.x and 4.x versions.

Please refer to the 5.7.0 milestone for details on all issues and PRs that were addressed in this release.

Enhancements

  • This release delivers significant throughput gains across all operations by aligning the client's I/O pipeline with the Java client design. Benchmark results against a 3-node cluster show overall maximum throughput improving from ~40K to ~250K ops/sec: GET throughput up 2.7–4.2× and PUT throughput up 2.9–3.2×, with p99 latency essentially unchanged (a long-standing strength of the C++ client). (#1412)

    • Configurable I/O thread count: Network reads and writes were previously serialized through a single I/O thread for all connections. The client now uses a pool of I/O threads, configurable via the new IO_THREAD_COUNT property and defaulting to 3, matching the Java client. (#1410)
    • Dedicated response thread pool: Invocation completion is now offloaded from the I/O threads to dedicated ClientResponseHandler threads, configurable via the new RESPONSE_THREAD_COUNT property (default 2), preventing I/O thread stalls. (#1412)
    • Lock-free write queue with batch flushing: Per-write dispatch is replaced with a boost::lockfree::queue and scatter-gather async_write, coalescing multiple outbound messages into single system calls. (#1412)
    • Global concurrent invocation registry: Correlation ID lookups now use a boost::concurrent_flat_map for O(1) access, replacing the previous per-connection maps. (#1412)
  • Updated the supported Boost versions: the minimum supported version is now 1.83.0, and the client is tested against versions up to 1.91.0. (#1455)

Upgrade note

When upgrading the C++ client, note that this release aligns its compact schema field ordering with the Java client and the server, changing the computed layout for schemas with two or more fixed-size fields of the same size. In a multi-client deployment where such a schema was already registered by an earlier C++ client version, restart the affected processes after upgrading so they pick up the corrected layout. This scenario is extremely rare and no occurrences have been reported.

Fixes

  • Fixed compact schema field ordering to match other clients: Resolved an issue where the client ordered same-size fixed-size fields non-deterministically during compact schema creation. This could produce a field layout inconsistent with other clients and the server, breaking cross-language deserialization of the affected compact values. (#1409, #1440)
  • Fixed an incorrect cast in the twos_complement logic that could cause an infinite loop. (#1432, #1433)
  • Fixed flake_id_generator_impl::new_id() to match Java AutoBatcher semantics, resolving redundant parallel batch fetches, an INT64_MIN leak, wasted batches, and incorrect handling of non-positive batch validity. (#1452, #1454)
  • Fixed a std::overflow_error crash in the Flake ID generator on Windows. (#1450, #1451)
  • Fixed several Windows build failures with Boost 1.83.0 and OpenSSL 3.x, including a missing NOMINMAX in the Thrift build, an rfc2818_verification failure, and use of the deprecated boost::asio strand::wrap (now replaced with bind_executor). (#1460, #1462, #1464)
  • Fixed a build issue by using explicit boost::optional construction for compatibility with Boost 1.91. (#1441)

Installation

See Installing section for installing the library.

Thanks

To community user @miyanyan for contributing Boost 1.91 compatibility fixes.

5.6.0

Choose a tag to compare

@g-donev g-donev released this 21 Jan 10:41
eb19e7f

This version is a minor release and is therefore fully backward-compatible with all 5.x and 4.x versions.

Please refer to the 5.6.0 milestone for details on all issues and PRs that were addressed in this release.

Fixes

  • Removed the Beta annotation from compact serialization. (#1380)
  • Fixed warning in windows compilation caused by type conversions and dll imports. (#1385)

Installation

See Installing section for installing the library.

5.5.0

Choose a tag to compare

@dmitriyrazboev dmitriyrazboev released this 07 Nov 11:47
9cff5ef

This version is a minor release and is therefore fully backward-compatible with all 5.x and 4.x versions.

Please refer to the 5.5.0 milestone for details on all issues and PRs that were addressed in this release.

Enhancements

  • Added support for the latest Boost libraries and updated the minimum supported versions to 1.88.0 on macOS and 1.80.0 on Windows. Linux remains compatible with Boost 1.73.0. This upgrade restores compatibility with VCPKG, Microsoft’s C++ package manager, ensuring smoother dependency management and broader platform support (#1322 , #1337).

  • The client now aligns its minimum required C++ standard with the version used by the Boost library. When using Boost versions earlier than 1.82.0, the client builds with C++11. For Boost 1.82.0 and later, the minimum requirement increases to C++14. This change ensures consistent compatibility and smoother integration with modern Boost releases.(#1322).

Fixes

  • Resolved an issue with lazy partition assignment that could occur during partition updates. (#1322)

Installation

See Installing section for installing the library.

5.4.0

Choose a tag to compare

@ihsandemir ihsandemir released this 13 Jun 13:53
a620582

These release notes list any new features, enhancements, fixes, and breaking changes implemented in version 5.4.0 of the Hazelcast C++ Client.

This version is a minor release and is therefore fully backward-compatible with all 5.x and 4.x versions.

Please refer to the 5.4.0 milestone for details on all issues and PRs that were addressed in this release.

New Features

  • on_cancel callback handler for the reliable_listener: Added new reliable_listener.h on_cancel callback method (#1215 , #1217)

Fixes

  • Fix unused parameter warnings for all components (#1138)

Installation

See Installing section for installing the library

5.3.1

Choose a tag to compare

@ihsandemir ihsandemir released this 02 Jun 09:30
4411e4d

This document describes the enhancements and fixed issues for the Hazelcast C++ Client v5.3.1 release.

This version is a PATCH release and is fully backward-compatible with all Hazelcast clusters 5.x and 4.x versions.

Refer to the 5.3.1 milestone for details on all issues and PRs that were involved in this release.

Fixes

  • C++ client incompatible with Hazelcast5.5.0 (#1235 )
  • Lookup bug fixed (#1287)

Installation

See Installing section for installing the library.

5.3.0

Choose a tag to compare

@ihsandemir ihsandemir released this 12 Jun 14:50
16d4f42

This document describes the new features, enhancements, and fixed issues for the Hazelcast C++ Client v5.3.0 release.

This version is a minor release and therefore is fully backward-compatible with all 5.x and 4.x versions.

Refer to the 5.3.0 milestone for details on all issues and PRs that were involved in this release.

New Features

  • Partition Aware SQL Client : Sql API is now smarter in the sense that if it is a partition based operation, it will be routed directly to the correct member in the cluster. See the related section in the reference manual to learn the details. (#1167 , #1188)
  • Sync iterators for Sql : The page and row sync iterators are added for easier usage of sql result set with std algorithms. See the related section in the reference manual to learn the details. (#1051 , #1161 )

Fixes

  • Fix unused parameter warnings for all components (#1138)

Installation

See Installing section for installing the library.

Thanks

To community user @cngzhnp, sending PRs for compilation enhancements.

5.2.0

Choose a tag to compare

@akeles85 akeles85 released this 16 Mar 07:45
75b231e

This document describes the new features, enhancements, and fixed issues for the Hazelcast C++ Client v5.2.0 release.

This version is a minor release and therefore is fully backward-compatible with all 5.x and 4.x versions.

Refer to the 5.2.0 milestone for details on all issues and PRs that were involved in this release.

Important note, minimum boost version is upgraded to 1.73 for Windows due to this bug.

New Features

  • Compact Serialization : Compact Serialization is introduced. See the related section in the reference manual to learn the details. (#1082, #1039, #1067, #1150 )
  • Generic Record API : Generic Record API is added. See the related section in the reference manual to learn the details. (#1086, #1156 )
  • Added support for OpenSSL v3: The library is working with OpenSSL v3 and higher versions now. (#1098, #1097 )

Fixes

  • CP Semaphore Test Failures are fixed (#1132)
  • Reliable Topic Test Failures are fixed (#1087)
  • Wrong SQL Timestamp column value is fixed (#1127)
  • ODR violation compilation error is fixed (#1080)
  • connection_manager_translate tests are fixed (#1123)
  • Socket write buffer lifecycle problem is fixed (#1104, #1069, #1070)
  • basic_latch_test.test_wait_for_when_timeout is fixed (#1109)
  • ClientQueueTest.testRemainingCapacity is fixed (#1103)
  • "The static lock used in logger may be destructed before the client is destroyed which may cause" issue is fixed (#977)
  • User executor pool size can be set via ClientExecutionServiceImpl constructor. (#1089)

Installation

See Installing section for installing the library.

Thanks

To community user @cngzhnp, sending PRs for compilation enhancements.

5.1.0

Choose a tag to compare

@OzanCansel OzanCansel released this 30 Dec 14:37
6a22d85

New Features

Enchancements

  • Small improvements in terms of performance. (#1027)

Fixes

  • hazelcast::client::member::version symbols are exported.(#1041 )
  • Discovery token leakage through exception is fixed.(#1044 )
  • Assertion failure in proxy_session_manager is fixed. (#1005, #1027)
  • std::random_shuffle usage removed due to it is removed in C++17 (#1043)
  • Client crash on Viridian cluster pause is fixed.(#1074 )

You can find the full list of closed issues and merged pull requests here

Installation

See Installing section for installing the library.

4.2.1

Choose a tag to compare

@ihsandemir ihsandemir released this 11 Aug 10:13
8c3d1e3

This document includes the new features, enhancements, and fixed issues for Hazelcast C++ Client 4.2.1 release.

New Features

There are no new features.

Enhancements

There are no enhancements.

Fixes

  • Hazelcast C++ API issue with large messages [#980]. Solves the issue with large messages by not interleaving async_write calls.
  • [BACKPORT] Make sure that the logger static lock mutex is not destroyed before any global client instance[#992]

You can find the full list of closed issues and merged pull requests here.

Installation

See Installing section for installing the library.

5.0.0

Choose a tag to compare

@yemreinci yemreinci released this 18 Oct 12:00
5230f08

This document describes the new features, enhancements, and fixed issues in Hazelcast C++ Client v5.0.0.

New Features

No new features.

Enhancements

No enhancements.

Fixes

  • Compile error in imap::get_all when value type is hazelcast_json_value was fixed by @RikeVoltz in #926.

Installation

See the Installing section for installing the library.