Skip to content

Releases: IBM/etcd-java

v0.0.14

14 Jan 00:01
Compare
Choose a tag to compare

Changes since version 0.0.13:

  • Fix: Ensure RangeCache#size() is correct when internal deletionQueue has stale entries
  • Updated dependencies including gRPC 1.26.0, Netty 4.1.42.Final, Protobuf 3.11.0, Guava 28.2-jre, gson 2.8.6, JUnit 4.13, slf4j 1.7.30

v0.0.13

26 Oct 00:13
Compare
Choose a tag to compare

Changes since version 0.0.12:

  • Support arbitrary SslContext configuration when building EtcdClients - allowing for use of TLS client auth, etc.
  • Fix: Make KeyUtils#compareByteStrings and ordered RangeCache consistent with server side key ordering (unsigned byte comparison)
  • Fix: More improvements to RangeCache resiliency, in particular fixing a potential thread-safety issue
  • Fix: Treat too many requests errors as retryable even for non-idempotent requests
  • Fix: Cleaner ordering of EtcdClient#close() logic which should eliminate some misplaced warning log messages
  • Logging improvements to RangeCache and watches in general, including clearer differentiation of watch stream auth error/re-auth info messages (it previously wasn't possibly to distinguish these from other kinds of retryable stream errors at INFO level)
  • Update gRPC dependency to version 1.24.1

v0.0.12

16 Sep 23:33
Compare
Choose a tag to compare

Changes since version 0.0.11:

  • Important resiliency fixes to RangeCache - a race condition meant that its watch might not be reinstated in the face of compaction errors from the server
  • Add KVClient#compact(...) method for performing manual store compactions
  • Include watch id in all watcher-scoped exceptions and log messages

v0.0.11

03 Sep 03:49
Compare
Choose a tag to compare

Changes since version 0.0.10:

  • Important PersistentLease and PersistentLeaseKey resiliency and thread-safety fixes
  • Ensure RangeCache#size() can never return a negative value
  • Various minor logging improvements/additions, particularly related to leases
  • Updated dependencies including gRPC 1.23.0, Netty 4.1.38.Final, Protobuf 3.9.0, Guava 28.1-jre
  • Now built and tested with openjdk11 in addition to openjdk8

v0.0.10

25 Apr 01:18
Compare
Choose a tag to compare

The primary difference from 0.0.9 is updated dependencies:

  • gRPC 1.20.0
  • Netty 4.1.34.Final
  • Protobuf 3.7.1
  • Guava 27.1-jre
  • Slf4j 1.7.26

Important note: Due to gRPC library API changes, this release of etcd-java (and future ones) requires grpc-java version >= 1.20.0. Conversely, no versions of of etcd-java prior to 0.0.10 work with grpc-java versions >= 1.20.0.

v0.0.9

30 Dec 17:55
Compare
Choose a tag to compare

Changes since version 0.0.8

  • Fix long-standing deadline suppression bug - timeouts worked, but deadlines specified in most fluent requests were being ignored
  • Support for server-side locks introduced in etcd 3.2 via a new LockClient interface
    • Includes integration with PersistentLeases and the client's session lease, so that users don't have to first wait for explicit lease establishment before making a lock request
  • Resiliency: Improved and more consistent failure retry/back-off timing and behaviour across the various client functions
  • Improvements to lease support (#19):
    • keepAliveOnce() method now implemented for "standalone" keep-alive requests
    • New ensureWithRetries parameter for the one-time lease revoke() method which will retry in the background
    • Richer one-time lease grant requests via new fluent grant() method, LeaseClient.create(...) methods deprecated in favour of this
    • Performance: more streamlining of internal executor usage
  • Updated dependencies: gRPC 1.17.1, guava 27.0.1
  • Minor doc cleanup

v0.0.8

01 Nov 00:13
Compare
Choose a tag to compare

Changes since version 0.0.7:

  • Fix to DNS resolution of etcd server endpoints - #15
  • Ensure the Future returned by async(Executor) is always completed by the provided executor - #17
  • Update to latest version of dependencies including grpc-java and netty, and latest etcd API protobuf
  • Various other minor fixes and cleanup

Thanks to @arnaudbos for his contributions to this release!

v0.0.7

23 Aug 14:37
Compare
Choose a tag to compare

This release contains an important fix to the RangeCache utility class. There are no other updates since v0.0.6 and so no need to upgrade if you do not use RangeCache.

v0.0.6

01 Aug 01:44
Compare
Choose a tag to compare

This release contains important fixes and improvements to stability and performance, including:

  • Fix backoff-retry with deadline and timeout behaviour in KVClient requests
    • Deadline encompasses all retries (if specified), timeout applies to each attempt
  • Retry DNS resolution errors
  • Ensure internal threads are shutdown cleanly when closing clients
  • Use dedicated unbounded executor as default for callbacks instead of common ForkJoinPool
  • Streamline KVClient sync() requests and RangeCache method threading

Custom executors can now be specified per call for KVClient async requests (via the new .executor(Executor) builder method).

v0.0.5

09 Jul 03:21
Compare
Choose a tag to compare

Updates since version 0.0.4:

  • Fix potential instability due to use of bounded SerializedExecutor for watch event loop in conjunction with consolidated thread pools - could cause blocking on network threads leading to broken watch streams
  • Updated dependencies:
    • gRPC 1.13.1
    • Netty 4.1.25.Final
    • Guava 25.1-jre
    • Gson 2.8.5

etcd-java will no longer work with versions of Guava prior to 23.0.