分布式存储与共识
分布式事务终极对决:Raft 状态机复制与 Spanner TrueTime 强一致性深度剖析
深入剖析 Google Spanner、TiDB、CockroachDB 等现代分布式关系型数据库在跨地域多副本事务中的核心算法设计。详细对比 Raft Lease Read、Multi-Paxos 与 TrueTime API 在保证外部一致性(Linearizability)时的时钟等待代价。
#ACID
#分布式数据库
#Go
hybrid_logical_clock.gogo
package consensus
import (
"sync"
"time"
)
// HLC 混合逻辑时钟:兼顾物理时钟与 Lamport 逻辑因果
type HybridLogicalClock struct {
mu sync.Mutex
l int64 // 物理时间最高位 (毫秒)
c int32 // 逻辑计数器
}
func (h *HybridLogicalClock) Now() (physical int64, logical int32) {
h.mu.Lock()
defer h.mu.Unlock()
pt := time.Now().UnixMilli()
if pt > h.l {
h.l = pt
h.c = 0
} else {
h.c++
}
return h.l, h.c
}
func (h *Hy