kevo/pkg/replication/primary_info.go

36 lines
854 B
Go

package replication
// GetReplicaInfo returns information about all connected replicas
func (p *Primary) GetReplicaInfo() []ReplicationNodeInfo {
p.mu.RLock()
defer p.mu.RUnlock()
var replicas []ReplicationNodeInfo
// Convert replica sessions to ReplicationNodeInfo
for _, session := range p.sessions {
if !session.Connected {
continue
}
replica := ReplicationNodeInfo{
Address: session.ListenerAddress, // Use actual listener address
LastSequence: session.LastAckSequence,
Available: session.Active,
Region: "",
Meta: map[string]string{},
}
replicas = append(replicas, replica)
}
return replicas
}
// GetLastSequence returns the highest sequence number that has been synced to disk
func (p *Primary) GetLastSequence() uint64 {
p.mu.RLock()
defer p.mu.RUnlock()
return p.lastSyncedSeq
}