[
https://issues.apache.org/jira/browse/CASSANDRA-21191?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jane He updated CASSANDRA-21191:
--------------------------------
Description:
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):*
# *Server-Side:*
* Modify the transport layer (specifically the Netty pipeline) to advertise
and emit GRACEFUL_DISCONNECT on shutting down, as CEP-59 outlines.
* Implement configurable timeouts to allow clients a grace period before hard
closure.
# *Python driver (potentially):*
* Update the Python driver to opt-in and handle GRACEFUL_DISCONNECT.
*References:*
* [CEP-59
Wiki|https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=406619103]
* [Discussion Thread
|https://lists.apache.org/thread/wyswxql0zhj10nthn8pmjz40v03qfd5v]
was:
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]
> [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: Brad Schoening
> Priority: Normal
> Labels: cep-59, full-time, gsoc2026, mentor
>
> 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):*
> # *Server-Side:*
> * Modify the transport layer (specifically the Netty pipeline) to advertise
> and emit GRACEFUL_DISCONNECT on shutting down, as CEP-59 outlines.
> * Implement configurable timeouts to allow clients a grace period before
> hard closure.
> # *Python driver (potentially):*
> * Update the Python driver to opt-in and handle GRACEFUL_DISCONNECT.
> *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]