Shanzita opened a new pull request, #2091:
URL: https://github.com/apache/cassandra-java-driver/pull/2091
## Summary
Implements client-side support for CEP-59 (Graceful
Disconnect - In-Band Connection Draining) in the Java driver.
When a Cassandra node shuts down, it emits a
GRACEFUL_DISCONNECT event to subscribed connections. The
driver:
- Stops sending new requests on the affected connection
- Drains in-flight requests to completion
- Reconnects automatically
### Changes
- Handle GRACEFUL_DISCONNECT in InFlightHandler to trigger
graceful drain
- Register for GRACEFUL_DISCONNECT on both control and data
connections
- Detect server support from SUPPORTED response in
ChannelFactory
- Add `advanced.connection.graceful-disconnect-enabled`
config option (default true)
- Add GRACEFUL_DISCONNECTS metric enums for node and session
level
- Unit tests for InFlightHandler and ControlConnection
### Testing
- Tested end-to-end against Rishabh's server branch
(omniCoder77/cassandra:feature/cep-59/metrics)
- 200 queries with 0 errors during nodetool drain
- Config disabled test: GRACEFUL_DISCONNECT not registered
when disabled
- All 3534 existing unit tests pass with 0 regressions
Depends on: native-protocol 1.5.3-SNAPSHOT
(SiyaoIsHiding/native-protocol:cep-59)
JIRA: CASSJAVA-124
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]