分布式数据库30讲
王磊
光大银行首席数据架构师
新⼈⾸单¥19.9
1783 人已学习
课程目录
已更新 6 讲 / 共 33 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词|为什么要学习分布式数据库?
免费
基础篇 (5讲)
01|什么是分布式数据库?
02|强一致性:那么多数据一致性模型,究竟有啥不一样?
03|强一致性:别再用BASE做借口,来看看什么是真正的事务一致性
04 | 架构风格:NewSQL和PGXC到底有啥不一样?
05 | 全局时钟:物理时钟和逻辑时钟你Pick谁?
分布式数据库30讲
15
15
1.0x
00:00/00:00
登录|注册

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

王磊 2020-08-19
你好,我是王磊,你也可以叫我 Ivan。
今天,我想和你聊聊时间的话题。
“时光一去永不回,往事只能回味”,这种咏叹时光飞逝的歌曲,你一定听过很多。但是,在计算机的世界里,时间真的是一去不回吗?还真不一定。
还记得我在第 2 讲提到的 TrueTime 吗?作为全局时钟的一种实现形式,它是 Google 通过 GPS 和原子钟两种方式混合提供的授时机制,误差可以控制在 7 毫秒以内。正是在这 7 毫秒内,时光是可能倒流的。
为什么我们这么关注时间呢?是穿越剧看多了吗?其实,这是因为分布式数据库的很多设计都和时间有关,更确切地说是和全局时钟有关。比如,我们在第 2 讲提到的线性一致性,它的基础就是全局时钟,还有后面会讲到的多版本并发控制(MVCC)、快照、乐观协议与悲观协议,都和时间有关。

常见授时方案

那既然有这么多分布式数据库,授时机制是不是也很多,很复杂呢?其实,要区分授时机制也很简单,抓住三个要素就可以了。
时间源:单个还是多个
使用的时钟类型:物理时钟还是混合逻辑时钟
授时点:一个还是多个
根据排列组合,一共产生了 8 种可能性,其中 NTP(Network Time Protocol)误差大,也不能保证单调递增,所以就没有单独使用 NTP 的产品;还有一些方案在实践中则是不适用的(N/A)。因此常见的方案主要只有 4 类,我画了张表格,总结了一下。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《分布式数据库30讲》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥19.9
立即订阅
登录 后留言

精选留言(2)

  • myrfy
    时间决定了数据库系统看到的事件发生顺序。对于对同一条记录进行操作的oplog在不同节点之间复制,然后在不同节点apply的时候,决定了谁在谁之前操作
    2020-08-19
  • 朱海昆
    工作中分布式数据库落地的还是相对少。目前项目各种分布式服务,一般都依赖于一个序列号生成器,一般采用雪花或者雪花变种的一些算法实现。为了保证序列号的唯一或者进一步保证递增,依赖于时钟的同步。现在的做法一般都是结合业务场景,对时钟进行一定的校验,同时对于时钟回拨做一些容错等处理解决问题。
    目前主流还是用应用层的方案来解决分布式的各种问题,如果将来分布式数据库成熟了,应用解决方案会大大简化。
    2020-08-19
收起评论
2
返回
顶部