Releases: IBM/etcd-java
v0.0.14
v0.0.13
Changes since version 0.0.12:
- Support arbitrary
SslContextconfiguration when buildingEtcdClients - allowing for use of TLS client auth, etc. - Fix: Make
KeyUtils#compareByteStringsand orderedRangeCacheconsistent with server side key ordering (unsigned byte comparison) - Fix: More improvements to
RangeCacheresiliency, in particular fixing a potential thread-safety issue - Fix: Treat
too many requestserrors 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
RangeCacheand 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 atINFOlevel) - Update gRPC dependency to version
1.24.1
v0.0.12
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
Changes since version 0.0.10:
- Important
PersistentLeaseandPersistentLeaseKeyresiliency 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, Netty4.1.38.Final, Protobuf3.9.0, Guava28.1-jre - Now built and tested with
openjdk11in addition toopenjdk8
v0.0.10
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
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
LockClientinterface- 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
- Includes integration with
- 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
ensureWithRetriesparameter for the one-time leaserevoke()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, guava27.0.1 - Minor doc cleanup
v0.0.8
Changes since version 0.0.7:
- Fix to DNS resolution of etcd server endpoints - #15
- Ensure the
Futurereturned byasync(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
v0.0.6
This release contains important fixes and improvements to stability and performance, including:
- Fix backoff-retry with deadline and timeout behaviour in
KVClientrequests- 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
KVClientsync()requests andRangeCachemethod threading
Custom executors can now be specified per call for KVClient async requests (via the new .executor(Executor) builder method).
v0.0.5
Updates since version 0.0.4:
- Fix potential instability due to use of bounded
SerializedExecutorfor 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
- gRPC
etcd-java will no longer work with versions of Guava prior to 23.0.