The 1.1.1 release is the first bugfix release for the 1.1 series. It brings more resiliency on failover, adds more flexibility for view query params and adds a (by default disabled) stats-based throttling mechanism.
An adaptive throttling mechanism has been implemented that is particularily useful when running bulk load operations while maintaining a healthy throughput from a different running application at the same time. The throttler is disabled by default and can be enabled through properties.
The adaptive throttling mechanisms works on top of memory
thresholds that it fetches every N operations from the cluster.
If the memory is higher than a certain level, operations are
throttled until everything is back to normal. See the
cbclient.properties.dist for all available
Note that this code should normally not enabled by default, because it negatively impacts the throughput and latency against your cluster (which is okay if you want the tradeoff in particular situations).
Behind the scenes, property management has been refactored into
a centralized class. While this doesn't change anything in the
first place, all properties should now have the
cbclient. prefix, so that they are picked up
automatically. As always, when there is a
cbclient.properties file around in the
CLASSPATH, it is picked up automatically.
The only notable difference (for backwards compatibility) is the
viewmode property, which can be used with or
Spymemcached has been updated to 2.8.10, which includes a fix that improves timeouts during node failure situations.
When working with the
ComplexKey class for
view queries, it is now possible to use all kinds of numbers
(not only doubles).
A bug in the reconnection logic has been fixed that would negatively impact the reconnect threshold when a node is considered down but a cluster config update has not yet reached the client (or the entry node has been failed over/killed).
Also, possible hanging nodes (that is the socket is open but the process may be dead) are now properly detected and should not cause infinited timeouts and block the client.
flush() command now works over HTTP, but
is currently not working because of an open issue inside
Couchbase Server 2.0 (MB-7381). A workaround is to use the
ClusterManager with Administrator privileges in the meantime.