The 1.1.3 release is the third bugfix release for the 1.1 series. Most of the improvements center around persistence and replication constraints, other small bugs have also been fixed.
ATTENTION: do not upgrade to this release when using buckets of type "memcached". The code will throw an exception during the construction of the CouchbaseClient object. Regular "couchbase" buckets are not affected and we recommend all deployments on the 1.1-branch to upgrade. A proper fix for this known issue is under way and a 1.1.4 release is due shortly.
Spymemcached has been updated to 2.8.12. This version includes corresponding enhancements and bugfixes that are needed by this release.
When running a cluster and during a failure scenario all nodes provided on the bootstrap list are not accessible, the Client now more intelligently backoffs for a certain amount of time and sleeps to save precious CPU resources. Before this change, the Client did try as fast as it can. The maximum interval between backoff is 10 seconds.
When an operation is now cancelled, a CancellationException is now thrown instead of a RuntimeException. Since CancellationExceptions inherit from RuntimeExceptions, this is not an API change and old code will still work, but new code can benefit by distinguishing it from others explicitely.
Various bugfixes have been implemented that improve the stability and fault-tolerance of mutation commands in combination with replication and persistence contstaints (that is, all methods that take ReplicateTo and/or PersistTo ENUMs such as set, replace, add or delete). If you see Exceptions in older versions in combination with those commands, there is a strong possibility that they have been addressed here.
Also, methods with those signatures incorrectly only accepted Strings as values. Since they just call the underlying methods, this is wrong and has been corrected. You can now use all kinds ob Objects with those methods and make use of the built-in transcoding mechanisms.
A bug in the newly implemented warmup backoff algorithm causes the 1.1.3 release to malfunction when using it in combination with "memcached" type buckets. Regular "couchbase" buckets are not affected.