Rishabh Saraswat created CASSANDRA-21191:
--------------------------------------------
Summary: [CEP-59] Implementation of In-Band Connection Draining
(Graceful Disconnect)
Key: CASSANDRA-21191
URL: https://issues.apache.org/jira/browse/CASSANDRA-21191
Project: Apache Cassandra
Issue Type: New Feature
Components: Messaging/Client, Tool/cqlsh
Reporter: Rishabh Saraswat
Assignee: Rishabh Saraswat
This ticket covers the implementation of the server-side logic and protocol
extensions defined in {*}CEP-59: Graceful Disconnect – In-Band Connection
Draining for Node Shutdown{*}.
*Goal:*
Currently, when a Cassandra node shuts down or drains, client connections are
often terminated abruptly, leading to failed requests. CEP-59 proposes an
"in-band" signal (GRACEFUL_DISCONNECT) to notify clients before the socket is
closed, allowing them to stop sending new requests and wait for pending ones to
complete.
*Proposed Scope (Implementation):*
# *Native Protocol:* Add the new GRACEFUL_DISCONNECT event/message type to the
Native Protocol (targeted for the next protocol version).
# *Server-Side (Java):*
* Modify the transport layer (specifically the Netty pipeline) to broadcast
the disconnect signal to all active channels during the StorageService.drain()
sequence.
* Implement configurable timeouts to allow clients a grace period before hard
closure.
# *Tooling (cqlsh/Python):*
* Update the Python driver/cqlsh to handle the new signal, ensuring users see
a clean message rather than a stack trace during node maintenance.
*References:*
* [CEP-59
Wiki|https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=406619103]
* [Discussion Thread
|https://lists.apache.org/thread/wyswxql0zhj10nthn8pmjz40v03qfd5v]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]