引入时间概念的分布式系统浅谈
- Clock-SI(Snapshot Isolation)
- clock skew
- 去共识的TSO
- 性质的提升
Clock-SI(Snapshot Isolation)
对于分布式系统来说,时间在分布式系统中的使命很明确:利用时间来描述分布式系统中的因果顺序,为了简化分布式系统的实现,很多时间,我们还需要利用时间给分布式系统中的并发顺序给予唯一、确定的先后顺序。Clock-SI(Snapshot Isolation)利用了物理时钟一直往前走的假设,等到确保物理时间向前走了正确的位置,从而来保证快照的时间顺序,PostgreSQL是实现了Clock-SI的。
clock skew
对于时钟偏差,可以尽可能的保证多台机器时钟的同步,比如定期对时钟进行校准,保证时钟一致;避免在高网络延迟的环境中使用硬件时钟,导致时钟偏差的进一步扩大;使用多个时钟源对时钟进行校准,尽可能使时钟一致;或者推出中心化的时钟作为唯一时钟校准的标准等。
去共识的TSO
TSO最初是为全局选取一个中心化的逻辑时钟作为唯一参考系,各个节点与该中心化逻辑时钟交互取号。这样的问题是会引入额外的一跳取号的网络开销,另外还存在单点故障问题,即中心授时的服务器本身一旦不可用,时间戳服务随即中断。而对于预取号的优化,双主问题的影响等,引入共识协议的TSO无疑是损耗巨大的,这个时候就需要可以去共识的TSO。可以增加缓存技术来处理TSO的单点故障问题。
性质的提升
在时钟技术选型中,对于时钟精度的提升是明显的,其实也主要是为了解决分布式系统时钟的问题。另外,高稳定性的时钟可以在各种环境条件下保持稳定的工作状态,减小时钟漂移和抖动。高可靠性的时钟可以在各种条件下保持稳定的工作状态,减小故障率和维修成本。