[ 
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]

Reply via email to