mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-10-23 14:30:46 +02:00
master: sync hashicorp raft leadership with seaweedfs/raft leader
When seaweedfs/raft elects a new leader, transfer hashicorp raft leadership to the same node. This ensures both raft systems always have the same leader, allowing dual-write to work correctly. Changes: - Add SyncHashicorpRaftLeadership() to transfer hashicorp raft leadership - Call sync on seaweedfs/raft leader change event - Only the current hashicorp raft leader can initiate transfer
This commit is contained in:
1 parent
cad5b8b281
commit
bf04ddcae8
2 files changed
+37
No files matched your search
@@ -209,6 +209,8 @@ func (ms *MasterServer) SetRaftServer(raftServer *RaftServer) {
|
||||
if ms.Topo.RaftServer.Leader() != "" {
|
||||
glog.V(0).Infof("[%s] %s becomes leader.", ms.Topo.RaftServer.Name(), ms.Topo.RaftServer.Leader())
|
||||
ms.Topo.LastLeaderChangeTime = time.Now()
|
||||
// Sync hashicorp raft leadership to match seaweedfs/raft leader for dual-write
|
||||
raftServer.SyncHashicorpRaftLeadership(ms.Topo.RaftServer.Leader())
|
||||
}
|
||||
})
|
||||
raftServerName = fmt.Sprintf("[%s]", ms.Topo.RaftServer.Name())
|
||||
|
||||
Reference in new issue
Block a user