You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kvrocks.apache.org by "redwood9 (via GitHub)" <gi...@apache.org> on 2026/03/22 02:54:35 UTC

[PR] feat(controller): add lease config and HEARTBEAT support for master l… [kvrocks-controller]

redwood9 opened a new pull request, #387:
URL: https://github.com/apache/kvrocks-controller/pull/387

   As discussed in the KvRocks split-brain issue (https://github.com/apache/kvrocks/issues/3380)
   here is the first step of the proposed solution: Introduce a lease mechanism to KvRocks.
   This involves the following changes:
   
   KvRocks side:
   Add lease support inside KvRocks
   Implement periodic lease refresh (heartbeat) when the feature is enabled
   https://github.com/apache/kvrocks/pull/3397
   
   Controller side:
   When performing master detection/probing, also fetch and synchronize:
   Current master information
   Lease-related information (especially lease expiration/TTL)
   
   Add new configuration for lease duration / refresh interval
   
   Lease heartbeat is strictly opt-in via configuration:
   
   If the lease-related config is not set (or explicitly disabled), KvRocks and the controller behave exactly the same as today — no extra overhead, no behavioral change.
   Only when the lease feature is explicitly enabled in the config will KvRocks start sending lease refresh heartbeats and the controller will begin comparing master info + lease validity during failover checks.
   
   The detailed commit content:
   - Add LeaseConfig to ControllerConfig (enabled, lease_ms fields)
   - Add ElectionVersion atomic.Uint64 to Cluster, incremented on PromoteNewMaster
   - Add LeaseParams and SetLeaseParams to ClusterNode
   - GetClusterNodeInfo sends CLUSTERX HEARTBEAT when lease is enabled
   - ClusterChecker.WithLeaseConfig() enables lease-mode probing


-- 
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: issues-unsubscribe@kvrocks.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org