查看原文
其他

【金猿技术展】千节点线性扩展——STP序列时钟协议

巨杉数据库 数据猿 2021-09-06

巨杉数据库技术

该技术由巨杉数据库申报并参与“数据猿年度金猿策划活动——2020大数据产业创新技术突破榜榜单及奖项”评选。

大数据产业创新服务媒体

——聚焦数据 · 改变商业




SequoiaDB巨杉数据库基于已获专利的全分布式逻辑时钟机制,构建时间序列协议(STP,Sequence Time Protocol)。该协议用于 SequoiaDB内部逻辑时间同步,逻辑时间是SequoiaDB内部用于表示时间,但区别于实际时间的逻辑时间戳。STP维护逻辑时间,提供逻辑时钟服务,而逻辑时间戳主要用于全局事务处理。


技术说明


分布式数据库架构下要保障事务一致性,必须借助分布式事务,而分布式事务需要分布式数据库提供一个全局统一的事务号,准确标识不同会话的先后顺序。为了保证分布式数据一致性,大多数厂商通过GTM(Global Transaction/Time Manager)解决方案提供统一的事务ID或时钟服务,从而导致每次事务操作都需要跨服务器进行。随着服务器规模的扩展,中心节点的处理能力降低,事务延迟增大,导致系统扩展能力受到极大限制。部分数据库厂商为了保证数据一致性选择放弃2PC提交模式,转而使用1PC加业务补偿策略,但在严格的事务一致性需求场景下将无法应用。


一、STP技术简介


作为业界原生分布式数据库以及新一代分布式数据库的代表,SequoiaDB能够实现分布式交易和ACID与传统技术完全兼容,实现架构和功能特性与传统数据库完全兼容,以提供完整的事务支持和一致性保障,充分保证数据安全,满足核心交易业务的严苛要求。


STP以节点形式部署在SequoiaDB集群的每个机器中,以提供逻辑时钟服务。STP节点分为Server和Client两种角色,各STP Server之间通过Raft保证逻辑时钟的强一致性,避免了强制所有参与节点从GTM中获取唯一ID的步骤,每个数据库节点通过本地的STP Client与主STP Server保持逻辑时钟一致性,并通过专利技术确保逻辑时钟持续向前推进,防止出现冲突。


 

其特点包括:


单调递增性:逻辑时钟始终保持单调递增,不受物理时钟回调影响;


高可靠性:STP Server 一主多备,采用一致性 Raft 协议同步逻辑时钟;


高可用性:STP Client 与 Server 之间采用 DEBTP(Dynamic Error Based Time Protocol ) 同步逻辑时间,且 Server 与每个 Client 之间都维持独立的动态时间误差,既可以适应网络抖动,也可以满足不同节点的复杂网络状态。时间误差根据时间同步、网络状态进行动态调整;


高性能:STP Client采用共享内存方式对外提供时间服务,让逻辑时间的获取为本地调用,没有任何网络开销,性能为纳秒级。


STP始终保持单调递增的方法如下:


1. STP Server采用一主多备,通过Raft协议同步ULT,并确保多数派成功。选主时,ULT最大的节点当选主节点;


2. STP Server重启或切主时,会从本地持久化中获取保存的ULT,获取当前的物理时间LRT并重新计算ULT。计算新的ULT时,如果 LRT > ULT + 同步周期则 ULT = LRT,否则 ULT = ULT + 同步周期。新的ULT将通过通过Raft协议同步至其他节点;


3. 当STP Client LLT > ULT时,则该STP Client需要阻塞时间服务,直到ULT >= LLT;


4. 当STP Client故障时,在一个同步周期内STP Client还可以提供时间服务,超时后则不能提供;同时,STP Client提供命令让外部调用促发即时时间同步。

 

二、基于STP的分布式事务



SequoiaDB 基于STP的分布式事务能够提供完整的事务支持和一致性保障,其特性如下:


高并发能力:全局事务GID由接入节点本地生成,不存在全局单点瓶颈,没有网络开销,GTID生成在”纳秒“级;


线性扩展能力:通过增加“接入接点”即可完成事务处理能力的线性扩展;


高性能:在事务访问记录不冲突时, 或者事务之间不出现逻辑时间冲突时,全局事务退化为本地事务,不引入任何其它成本开销,实现高性能;


全局一致的可见性:当事务的逻辑时间不出现冲突时,通过逻辑时间的大小比对即可决定相关事务在全局的可见性;当事务的逻辑时间出现冲突时,则引入“可见性仲裁”来决定相关事务在全局的可见性。

 

三、基于STP的分布式事务校时机制

 

GTID 由 节点ID + LLT 组成,全局唯一。事务包含开始时间(LTb),预提交时间(LTpc)、提交时间(LTc)以及时间误差(LTError), LTb < LTpc + LTError, LTpc <= LTc。两个事务的可见性判断遵守STP逻辑时间比较规则, Δ取两个事务中最大的时间误差。如果两个事务比较为“≡”,则需要进行“可见性仲裁”。

 

建立事务校时,事务从 Coordinator 到 Node建立时,Node会从本地 STP Client 获取 LLT进行校时,如果相差大于指定阈值,则需要进行事务重试。该校时用于快速发现节点的时间是否同步。

 

提交事务校时,在预提交阶段,Node需要从本地STP Client中获取LLT进行校时,如果相差大于指定阈值,则需要进行事务预提交重试。Node在预提交时,需要返回 max(本节点最大的事务开始时间,本节点预提交处理时间)。Coordinator选取 max(Node返回时间,预提交时间) 作为最终的事务提交时间。

 

四、基于STP的分布式事务“一致性2PC”机制



传统事务2PC机制在“2PC: Commit”阶段发生故障时,会出现有的分区数据已提交而有的分区数据状态不确定的情况。而“一致性2PC”机制会在Pre-Commit时共享事务分区信息,让参与事务的分区相互感知;分区执行Pre-Commit后进入WAIT_COMMIT状态。在 “2PC: Commit”阶段出现分区一致性时,处于WAIT_COMMIT的事务会发起一致性确认来修正事务状态,一致性确认协议自动修复极端情况下事务的一致性。


修正事务状态规则如下:


1)任一分区回滚则回滚;


2)任一分区提交则提交;


3)全部为 WAIT_COMMIT 则提交。

开发团队


带队负责人


巨杉数据库STP技术项目的带队负责人是CTO王涛、研发副总裁许建辉、何国明等。


隶属机构:巨杉数据库


巨杉数据库是一家专注分布式数据库技术研发,以全球数据库的领导者为愿景,以培育数据沃土,提升数据价值为使命的国产自研数据库公司。


巨杉数据库自2011年成立以来,专注数据库技术研发,坚持从零开始打造原生分布式数据库引擎,连续三年入榜 Gartner报告,成为当前新一代主流数据库体系的灯塔厂商。


SequoiaDB巨杉数据库是一款金融级分布式数据库,目前已在超过100家大型银行核心生产业务规模应用,并广泛应用于证券、保险、电信、政府、互联网、交通等领域,企业用户总数超过1000家,应用场景包括分布式在线交易、数据中台、分布式内容管理、实时数据管理等。


巨杉数据库拥有世界顶级的数据库研发团队,分布在广州、深圳、北京等地,核心团队成员主要来自于前IBM DB2北美研发团队和华为分布式储存团队,天生具备企业级基因,同时引入包括阿里在内的国内创新型企业人才,是业界最顶尖的企业级分布式数据库团队。目前公司总人数约为170人。


相关评价


●民生银行


巨杉数据库采用原生分布式架构,提供完整SQL兼容,完整支持ACID和分布式事务,具备灾备和多活机制。这些对于金融联机交易业务以及互金核心等是不可或缺的核心能力。


●广发银行


存储资源池化、数据库实例化、云化的产品架构,是微服务架构下,SequoiaDB这样的新一代数据库重要的技术特点。


●恒丰银行


面对海量内容数据,具备多类型数据统一管理,存储弹性扩张,高可用和多活的分布式数据库是一种新主流方向。


提示:了解更多相关内容,点击文末左下角阅读原文”链接可直达该机构官网。

—— / END / ——

以下内容更精彩



2020年度产业图谱: 2020中国数据智能产业图谱1.0版 从产业图谱看中国2020年数据智能行业的发展态势2020数据猿《#榜样的力量#寻找新冠战“疫”,中国数据智能产业先锋力量》大型公益主题策划活动:

●《新冠战“疫”——中国数据智能产业最具社会责任感企业》榜

●《看过大佬们发的朋友圈之后,我相信:明天会更好,明年定会春暖花开》条漫

2019数据猿年度金猿榜:

2019大数据产业趋势人物榜TOP 10

●2019大数据产业创新服务企业榜TOP 15

●2019大数据产业创新服务产品榜TOP 40

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存