暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Hubble硬核技术干货集锦——混合逻辑时钟

原创 Hubble 2023-01-30
399

在“拿来主义”的数据库市场中,天云数据坚定不疑地走硬核路线。十余年沉浸在数据库技术世界里,如今天云数据HTAP数据库Hubble融合了Oracle交易和MPP数仓的数据库替代升级,在新型大数据环境中扮演了越来越重要的角色。

酒香也怕巷子深,细说Hubble数据库硬核技术——混合逻辑时钟

一、什么是混合逻辑时钟?

混合逻辑时钟即混合了物理时钟PT和逻辑时钟LC,实质上,是对逻辑时钟的增强。

物理时钟是机器本地的时钟,由于系统对时间流逝的感知和度量会出现频率稍高或稍低的状况,因此系统时间会比标准时间稍快或稍慢,一天的误差可能有毫秒甚至秒级。

逻辑时钟是通过happened-before关系确定事件的逻辑时钟,从而确定事件的偏序关系。在分布式场景下,不同机器的时间可能存在不一致,没办法对跨节点的事件确定的先后关系。

二、为什么要用混合逻辑时钟?

在逻辑时钟下,如果a, b是位于一个进程内的顺序事件,且a发生于b之前,那么a happened-before b。 

如果a,b事件是位于2个进程内,a为消息的发送事件,b为同一个消息的接收事件,那么同样a happened-before b。

a  happened-before b记作:a hb b或者a->b,C(a)<C(b),C表示逻辑时钟。 

但在实际中我们不能通过C(a)和C(b)的大小推出a, b事件发生的先后顺序。因为分布式节点间的交互要在事件发生顺序上达成一致, 而不是对于时间达成一致。如何让逻辑时钟和物理时钟达成一致?一种“尽可能”的方式即混合逻辑时钟存在很有必要。

三、Hubble硬核技术价值

Hubble混合逻辑时钟能实现:

  1. 满足逻辑时钟的因果一致性happened-before。 

  2. 尽可能接近物理时钟PT,当物理时钟推进时,逻辑时钟部分被置零。

  3. 记录时间的因果关系,保证和物理时钟的偏差是bounded。

  4. 消除中心节点,用本地的物理时间加上逻辑时间,为具备数据库定义的因果关系的事务排序。

  5. 可以替代wall time使用。

“技术至上,技术人员至上”的理念让天云数据在技术上“开花结果”,述说着属于Hubble的硬核故事。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论