Garvit Rajput created ZOOKEEPER-4945:
----------------------------------------

             Summary: Support automatic renewal of ephemeral nodes via client 
heartbeats
                 Key: ZOOKEEPER-4945
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-4945
             Project: ZooKeeper
          Issue Type: New Feature
          Components: c client, server
            Reporter: Garvit Rajput


### Motivation
Currently, ZooKeeper clients must maintain an active session to retain 
ephemeral nodes. If a session timeout occurs due to a network glitch or GC 
pause, these nodes are deleted even if the client recovers shortly after.

### Proposed Feature
Introduce a configurable **auto-renewal heartbeat mechanism** where the 
ZooKeeper client can **extend the lifetime of ephemeral nodes** for a grace 
period after temporary session disconnections — essentially a soft-reconnect 
buffer.

This feature would:
- Reduce unintended ephemeral node deletion due to transient network failures.
- Improve stability for clients with flaky connections.
- Help cloud-native workloads where short-lived network interruptions are 
common.

### Implementation Ideas
- Introduce a `znode.ephemeral.gracePeriod` config on the server/client.
- Allow clients to reattach to their ephemeral nodes within this window.
- Maintain consistency and fencing semantics using a version hash or ephemeral 
token.

### Benefits
This change would improve ZooKeeper's resilience in distributed environments 
without breaking the ephemeral node contract, as the node would still expire if 
the client doesn't reconnect within the grace period.

### Impact
- Fully backward-compatible
- Opt-in via configuration
- May require slight changes to session expiration logic

Let me know if this is a direction you'd consider. Happy to discuss design or 
help contribute a patch.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to