Releases: IBM/etcd-java
v0.0.14
v0.0.13
Changes since version 0.0.12:
- Support arbitrary
SslContext
configuration when buildingEtcdClient
s - allowing for use of TLS client auth, etc. - Fix: Make
KeyUtils#compareByteStrings
and orderedRangeCache
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 atINFO
level) - 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
PersistentLease
andPersistentLeaseKey
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
, Netty4.1.38.Final
, Protobuf3.9.0
, Guava28.1-jre
- Now built and tested with
openjdk11
in 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
LockClient
interface- Includes integration with
PersistentLease
s 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
ensureWithRetries
parameter 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
Future
returned 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
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 andRangeCache
method 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
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
- gRPC
etcd-java will no longer work with versions of Guava prior to 23.0
.