3.10-BETA-1
ihsandemir
released this
14 May 12:43
·
462 commits
to master
since this release
This document includes the new features, enhancements, and fixed issues for Hazelcast C++ Client 3.10-BETA-1 release.
New features
- Invocation And Retry Mechanism: Introduced the new system properties "hazelcast.client.invocation.retry.pause.millis" and "hazelcast.client.invocation.timeout.seconds".
- Client Backpressure: Sometimes, e.g., when your servers are overloaded, you may want to slow down the client operations to the cluster. Then the client can be configured to wait until number of outstanding invocations whose reponses are not received to become less than a certain number. This is called "Client Backpressure". By default, the backpressure is disabled. There are a few properties which control the backpressure. These client configuration properties are:
- "hazelcast.client.max.concurrent.invocations"
- "hazelcast.client.invocation.backoff.timeout.millis"
- Client Connection Strategy: Hazelcast client-cluster connection and reconnection strategy can be configured. Sometimes, you may not want your application to wait for the client to connect to the cluster, you may just want to get the client and let the client connect in the background. This is configured using the following:
ClientConfig::getConnectionStrategyConfig().setAsyncStart(bool);
- Client Reconnect Strategy: You can configure how the client should act when the client disconnects from the cluster for any reason. This is configured using the following:
ClientConfig::getConnectionStrategyConfig().setReconnectMode(const hazelcast::client::config::ClientConnectionStrategyConfig::ReconnectMode &);
Possible values for the ReconnectMode are:
- OFF: Prevents reconnect to cluster after a disconnect.
- ON: Reconnect to cluster by blocking invocations.
- ASYNC: Reconnect to cluster without blocking invocations. Invocations will receive
HazelcastClientOfflineException
.
Enhancements
- Shuffle Cluster Connection Member List: When the client is connecting to the cluster, the configured and discovered member addresses are being tried sequentially. The order with which the addresses are tried is by default in a randomly shuffled list. But for some reason, you may want the client try only in the order as provided. To achieve this you need to set this configuration:
config.setProperty("hazelcast.client.shuffle.member.list", "false")
- Listener Events: When a listener is added then the events are being delivered to the listener as they are received. The events are delivered to your listener implementation via event threads. The number of these event threads can be configured using this property:
config.setProperty("hazelcast.client.event.thread.count", "7");
Fixes
Some of the major bug fixes for this release are listed below. You can find the full list of closed issues and closed PRs at the repo with milestone 3.10
- Resend mechanism blocking valuable io thread. [#66]
- Remove seperate owner connection. [#18]
- Response Thread missing. [#321]
- C++ client should use RemoteController during the tests [#366]
Known Issues
There are no known issues for this release.