全局时钟:物理时钟和逻辑时钟你Pick谁?

206 阅读2分钟

要区分授时机制也很简单,抓住三个要素就可以了:

  1. 时间源:单个还是多个使用的
  2. 时钟类型:物理时钟还是混合逻辑时钟
  3. 授时点:一个还是多个

image.png

TrueTime

它的时间源是 GPS 和原子钟,所以属于多时间源和物理时钟,同时它也采用了多点授时机制,就是说集群内有多个时间服务器都可以提供授时服务。

优势:不存在单点,支持全球化部署

劣势:会出现时光倒流

依赖于特定硬件设备

HLC

采用了物理时钟与逻辑时钟混合的方式,不同节点之间发生的事件没有依赖关系时,也会出现时间误差。

HLC 是一种松耦合的设计,所以不会去校正节点的本地时钟,本地时钟是否准确,还要靠 NTP 或类似的协议来保证。

image.png 从左到右,依次表示为:本地时间、L值、C值。 本地时间单调递增。 L取值:本地时间、上一事件L值、依赖事件的L值(如果有),三者取最大 C取值:L选取的那一个基础上的C+1

TSO

优点就是实现简便,如果能够保证时钟单调递增,还可以简化事务冲突时的设计。但缺点也很明显,集群不能大范围部署,同时性能也有上限。

STP

优缺点介于 HLC 和 TSO 之间。不依赖NTP协议。

image.png
  • STP Server。多个 STP Server 构成 STP Server 组,组内根据协议进行选主,主节点被称为 Primary,对外提供服务。
  • STP Client。按照固定的时间间隔,从 Primary Server 同步时间。
  • 其他角色,都从本地的STP Node节点获取时间

此文章为6月Day7学习笔记,内容来源于极客时间《分布式数据库30讲》