across leaders里的leaders指的是这个paxos组的不同任期的leader,它们的lease interval也不会发生重叠,其实把这句话连起来看就通顺了:
within each Paxos group, Spanner assigns timestamps to Paxos writes in monotonically increasing order, even across leaders.
在一个paxos组中,Spanner给在这个paxos中发生的写操作(paxos write)分配的时间戳保持单调递增,即使这个paxos组发生leader切换。
主要原因是由于各个机器的时钟偏移,在发生leader切换后,前一个leader和新leader的lease interval可能会重叠,就像下面这样:

在发生重叠之后,存在的问题就是,在某个时间段,一个paxos组中存在两个leader,比如上面的[t1, t2],这就已经违反了paxos协议。
所以spanner让每个leader都维护已经分配过的最大的时间戳 ,在发生leader迁移时,原leader通过wait,让TT.now.earliest >
,这样在新的leader上分配的时间戳就算在最极端的时钟偏移也不会和上一个leader的lease interval发生重叠:

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69999831/viewspace-3129038/ ,如需转载,请注明出处,否则将追究法律责任。