Hazelcast Cpp Client Versions Save

Hazelcast IMDG C++ Client

v5.3.0

11 months ago

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.

v5.2.0

1 year ago

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.

v5.1.0

1 year ago

New Features

  • SQL API : SQL API is introduced. See the related section in the reference manual to learn the details. (#971, #1035, #1048, #1058, #1061)
  • Added support for Hazelcast Viridian Services (#1045 )
  • Big decimal support is added. (#967 )

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.

v4.2.1

1 year ago

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.

v5.0.0

2 years ago

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

Installation

See the Installing section for installing the library.

v4.2.0

2 years ago

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

New Features

  • External Smart Client Discovery was introduced by #909. See the related section in the reference manual to learn how to configure and use this new feature.

Enhancements

Fixes

You can find the full list of issues and pull-request for this release here.

Installation

See the Installing section for installing the library.

v4.1.1

2 years ago

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

New Features

There are no new features.

Enhancements

There are no enhancements.

Fixes

  • Compile errors on older GCC versions (4.8, 4.9, and 5) were fixed.

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

Installation

See Installing section for installing the library.

v4.1.0

3 years ago

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

The following are the major changes performed in this release:

New Features

  • Mutual Authentication (Two Way Authentication): Mutual Authentication is the process where the client verifies the identity of the server via server's certificate (either self-signed or signed by a CA authority) and the server verifies the client identity via the client provided certificate (either self-signed or signed by a CA authority). See PR #820

  • Hazelcast Cloud Discovery: If you are using Hazelcast Cloud Service and you want to write an application that will utilize the Hazelcast Cloud Database service, you can use the C++ client. See the detailed documentation and implementation PR.

  • Vcpkg and Conan Integrations: You can now use C++ client library with Conan and Vcpkg.

Enhancements

  • SSL API Deprecation: The following APIs are deprecated in favor of using only the new config::ssl_config::set_context(boost::asio::ssl::context context) API. Hence, you have full access to the SSL context to be used and the you can configure it and provide it externally: config::ssl_config::set_enabled, config::ssl_config::set_protocol, config::ssl_config::get_protocol, config::ssl_config::get_verify_files, config::ssl_config::add_verify_file.

Fixes

The following major issues have been fixed for this release.

  • Fixed a dangling pointer in continuation lambda. [#854]
  • The subscription to a Reliable Topic made from a member method of a class does not cause a deadlock now. [#848]
  • Fixed a leakage in address sanitizer. [#847]
  • client_config::reliable_topic_config_map_ is now cannot be modified concurrently. [#849]

You can find the full list of closed issues here.

Installation

See Installing section for installing the library.

v4.0.1

3 years ago

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

This is a patch only release fully compatible with 4.0.0.

The following are the major changes performed in this release:

New Features

There are no new features.

Enhancements

The generated hazelcast library and cmake target name are changed from hazelcastcxx to hazelcast-cpp-client to match the name of the project. You can find the details [#812]

Fixes

The following major issue has been fixed for this release.

  • Reliable topic does not work with Java client as expected [#589]

You can find the full list of all issues closed and PRs merged for this release at the repository.

Known Issues

There are no known issues for this release.

Installation

See Installing section for installing the library.

v4.0.0

3 years ago

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

This is a major API breaking release. We switched to the new Hazelcast Open Binary Protocol v2.0 with this release of the client so that it can used with server versions 4.0 and later.

The following are the major changes performed in this release:

New Features

  • New Client Protocol: We have implemented the new Hazelcast Open Binary protocol version 2. This new protocol eliminates some of the message size limitations of the previous version and solves the problems of backward compatibility of custom field definitions.

  • C++11 Support: The client code has been upgraded to use the C++11 features. The API has been changed to reflect the C++11 usages.

  • Fully Async API: Almost all API methods now return boost::future which allows async programming for all the API calls. boost::future also supports continuations which can be very useful for async programming. You can also use utilities such as boost::when_all, boost::wait_for_all, boost::when_any to handle multiple futures.

  • new_client Factory Method: We made the hazelcast_client constructor as private and provided the new hazelcast::new_client API to obtain and start a new client. The new API returns a future from which you can actually obtain the client or do an async continuation to the future.

  • No Binary Release: We now have full support for cmake install and also cmake find_package(hazelcast) support for projects using Hazelcast. The release version numbering is also updated to reflect the 3 digit numbering support of Linux/Unix/Windows environments. Current version library produces library version 4.0.0. We decreased the client compile time from source code (you can download source zip or git checkout the v4.0.0 tag) so that it made more sense to make source distributions and let you compile it in your own environments. This also works better when you use certain boost and openssl versions. Please see the documentation for further details.

  • CP Subsystem: Hazelcast IMDG 4.0 has introduced CP concurrency primitives with respect to the CAP principle, i.e., they always maintain linearizability and prefer consistency over availability during network partitions and client or server failures. All data structures within CP Subsystem are available through the hazelcast_client::get_cp_subsystem() API. In favor of CP subsystem API, we have removed the legacy IAtomicLong, ISemaphore, and ICountDownLatch.h APIs. The new API provides CP atomic_long, latch, counting_semaphore, fenced_lock and atomic_reference.

  • Exponential Retry Configuration: We removed the getConnectionAttemptLimit and setAttemptPeriod configurations and replaced them with the exponential backoff configuration connection_retry_config in the connection strategy configuration. The client by default tries to connect to the cluster starting with a small timeout time and exponentially increases the timeout up to a configured maximum. This allows a faster connection attempt and more dynamic configuration.

  • optional: The new API uses boost::optional for return types where it is possible to return nullable objects. This is more efficient and simpler API than using the shared_ptr approach.

  • New Backup Aware Client: The client is now by default processing the backup event notifications. When an operation with sync backup is sent by a client to the Hazelcast member(s), the acknowledgment of the operation's backup is sent to the client by the backup replica member(s). This improves the performance of the client operations. You can turn off this feature back to the old behavior using the client_config::backup_acks_enabled(bool) API.

Enhancements

  • API Mixed Type Support: We have removed the old RawPointer API. The new API allows you to pass the type of object for each method call. Hence, this new API can now support mixed types, and you do not need to provide a specific object type when instantiating a Hazelcast structure such as imap.

  • Single External Dependency: We only depend on the Boost library. You need to have Boost installed in your environment. Particularly, we depend on boost::thread and boost::asio.

  • IO Level Design Change: We now use asio for SSL and non-SSL sockets. This eliminates the socket descriptor number limitation of the previous implementation which used the select system API. We also utilize asio::thread_pool for our internal executor implementation.

  • Non-blocking Atomics: Eliminated the previous lock based atomic implementations and switched fully to the std::atomic standard library.

  • Serialization Changes: We have changed the way how object serializations are coded so that the serialization is mostly resolved at compile-time. The new serialization does not need any specific configurations but it simply fails at compile-time if not implemented correctly, e.g., missing method. The new serialization also allows keeping your legacy classes (see the hz_serializer<T> specializations).

  • Group Name Removal: Group configuration has been removed. We now have cluster_name in the ClientConfig API which has replaced the GroupConfig.

  • New Listener API: You can now use the listener APIs with lambda and std::function objects.

  • New Logger Configuration: We have introduced a new logger_config API and a new way to configure integrating your logger.

  • Snake Case: API naming has been changed from camelCase to snake_case.

  • Version API. [#612]

Fixes

The following major issue has been fixed for this release.

  • Missing default ctor for HazelcastJsonValue. [#589]

You can find the full list of closed issues here.

Known Issues

There are no known issues for this release.

Installation

See Installing section for installing the library.