《首次揭秘:腾讯TDSQL分布式多级一致性数据库系统技术.docx》由会员分享,可在线阅读,更多相关《首次揭秘:腾讯TDSQL分布式多级一致性数据库系统技术.docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、首次揭秘:腾讯TDSQL分布式多级一致性数据库系统技术李海翔腾讯TDSQL专家工程师 “在分布式背景下怎么实现双一致性事务一致性、分布式一致性并进步分布式事务型集群的处理效率腾讯TDSQL数据库长期致力于根底研究创新并持续获得关键技术打破。2020年度12月21日第11届DTCC中国数据库技术大会大会上腾讯TDSQL数据库专家工程师李海翔共享了数据库领域的核心技术分布式事务处理技术的核心多级一致性技术。该技术在遵循了ACID特性的同时使得事务处理技术符合CAP原理并在理论层面相较“严格可串行化技术做了扩展进一步提出了多种强一致性的完好技术。同时该技术在工程理论层面落地了较高的性能是同类产品Sp
2、aneer性能的4倍是CorchroachDB的2倍高并发场景下是Greenplum性能的3倍。这意味着TDSQL实现了数据库行业首个高性能的强一致性工程系统对推动分布式数据库核心技术和产业应用有着重要意义。0.问题的背景科学研究始于问题。在分布式事务处理领域有很多重要的问题远不止是2PC技术所能囊括的。例如腾讯TDSQL目前在解决的一个复杂且是一个复合的问题如下事务型数据库必需要解决的问题是数据的一致性问题。该问题是事务ACID特性的C的问题假如不知足C会有多种数据异常如脏读、不可重复读、幻读、读偏序、写偏序等数据异常。而分布式系统遵循CAP理论其中的C也是“一致性是操作之间读取数据的一致性
3、。假如CAP的C不被知足那么会出现Stealread、Immortalwrite、Causalreverse等一致性异常问题如图2所示。而分布式事务型数据库那么同时面临以上两类问题如图1所示。在分布式事务型数据库中该两类问题各自解决都有难度例如很多数据库像Oracle都不提供可串行化不能确保数据异常不发生、NoSQL系统为了保证CAP中的A以及P而丢掉了C更不用讲协同被解决了。图1多级一致性研究背景以及问题图2分布式系统下存在的问题TDSQL作为一个分布式事务型数据库就面临着如上的两个问题叠加分布式一致性事务一致性这样一个复合且复杂的技术问题其难点在于保证正确性的背景下怎样做到高效率这直接影响
4、着分布式事务数据库的事务处理的吞吐量Transactionthroughput。1.学术界的研究与问题的复杂度在学术界前述问题的一种解决方式被称为“严格可串行化该技术可以解决掉事务的一致性以及CAP的一致性引发的问题。如图3所示文献?Highlyavailabletransactions:Virtuesandlimitations?其中的树根就是事务一致性以及分布式一致性的结合点严格可串行化。而树的左子树事务一致性以及右子树分布式一致性是两个独立的系统他们之间没有关联关系。图3学术界对于“事务一致性以及分布式一致性的结合点的研究1从图3可以以看出左子树的事务一致性隔离级别有很多种右子树的分布式
5、一致性有很多种因此需要系统地研究各种级别的事务的一致性以及分布式系统的一致性才能更好的分析问题、解决问题而不是只考虑树根的唯一结合点。而如图4告知我们分布式一致性有很多图4总结有60种左右这为研究该项问题带来了复杂度。图4分布式一致性关系图尽管交融分布式一致性的问题有很大的复杂度但是这样的拦路虎是阻止不了我们对问题深化研究的热情以及步伐的。TDSQL在前行探究中如图5所示看到了方向以及曙光红色方框处。图5中蓝色方框是事务中的与隔离性相关的一致性等级、以及分布式一致性在横轴的“Isolation(transactional)列对应的是事务的隔离级别而他们相交处是红色方框所框住的却是“一片空白。这
6、片空白处正是研究所未及处也正是这片无人区让TDSQL的研究有了空间以及舞台。图5学术界对于“事务一致性以及分布式一致性的结合点的研究2另外业界经常提及“强一致性但概念混乱不明晰。文献?ConsistencyinNon-TransactionalDistributedStorageSystems?指出如下内容澄清了强一致性的含义Inahybridconsistentsystem,strongoperationsareguaranteedtobeseeninsomesequentialorderbyallprocesses(asinsequentialconsistency),whileweako
7、perationsaredesignedtobefast,andtheyeventuallybecomevisiblebyallprocesses(muchlikeineventualconsistency).Weakoperationsareonlyguaranteedtobeorderedaccordingtotheirinterleavingwithstrongoperations:iftwooperationsbelongtothesamesessionandoneofthemisstrong,thentheirrelativeorderofinvocationisrespecteda
8、ndvisiblebyallprocesses.所以是否被“所有进程可见是判断强一致性的标准而在分布式一致性中只有线性一致性以及顺序一致性知足强一致性的含义。而结合事务一致性需要再知足可串行化才能称为分布式事务的强一致性。综上所述TDSQL所研究的问题正是ACID的C、CAP的C和强一致之间的内在联络他们有两个维度的表现一是考虑这些因素时怎样保证正确性二是在有这些因素存在影响下怎样保证所实现的系统有好的性能。假如没有好的性能提供再强的一致性也难以实用因此强一致性背景下实现高性能成为挑战。2.产业界的实现与存在的问题在产业界目前只有Google的Spanner系统实现了“严格可串行化Spanne
9、r称之为“外部一致性?Spanner:Googlesgloballydistributeddatabase?。该项技术在2021年度发表使得数据库界的研究以及理论从NoSQL时代买入NewSQL时代具有划时代的意义。其实现的技术本质是把分布式中的线性一致性以及事务一致性的可串行化相结合进而实现了“严格可串行化。图6工业界对于“事务一致性以及分布式一致性的结合点的理论但是Spanner的实现存在一个问题正确性可以保证但性能低下如图6所示的事务吞吐量的计算公式。因此该系统具有象征意义。而理论中对于需要在金融级的事务处理场景中其性能不符合要求。3.腾讯TDSQL的多级一致性技术TDSQL深化研究了分
10、布式一致性问题解决了一些技术难题。例如图7线性一致性有多个子类那么线性一致性以及事务一致性结合时是否应该有多个级别的“严格可串行化再如为什么顺序一致性可以以及可串行化结合而能确保强一致性这些问题都需要在理论层面加以证明然后才能迁移到工程系统中指导工程实现。图7线性一致性的定义在深化研究了ACID的C以及CAP的C和强一致性之后TDSQL团队通过一致性建模技术从概念、模型、基于模型的操作、事务模型框架、数据构造以及高效算法设计等多个角度基于TDSQL以及Greenplum实现了“多级一致性技术基于Greenplum目的是为了便于以及业界的产品实现比照发现问题该技术在正确性方面给出了知足强一致性的
11、线性可串行化、顺序可串行化级别的定义以及证明等使得前述的事务一致性方面的数据异常如写偏序、分布式一致性方面的分布式异常如Stealread等问题被消除。而在性能方面有着优异的表现。该技术在Google云上比照测试了Spanner的性能比照测试了业界知名的NewSQL系统CorchroachDB、比照测试了原生的Greenplum均获得了较好的结果如图8所示TDSQL的多级一致性SER-L线性可串行化SER-S顺序可串行化从多个角度验证比照了TDSQL多级一致性的性能在图8中给出局部实验数据。图8的实验分为4个层面进展了比照比照Spanner的性能图8左上角的子图同样性价比的同等资源情况下TDS
12、QL的多级一致性是Spanner性能的4倍。比照CorchroachDB的性能图8左下角的子图同样硬件测试环境下TDSQL的多级一致性是CorchroachDB性能的2倍。比照原生的Greenplum的性能图8右子图硬件测试环境下TDSQL的多级一致性是原生的Greenplum性能的3倍。存在一定程度的网络延时的情况下TDSQL多级一致性的性能表现图8右子图还测试在分布式环境下当网络存在1.5ms以及5ms的延时情况下高并发场景下的TDSQL多级一致性技术仍然好于无延时情况的Greenplum的RC隔离级别的性能这说明具有更高一致性的隔离级别可以做到更好的性能CorchroachDB早期版本实
13、现了快照隔离以及可串行化但在新版本中只保存了更严格的可串行化级别大众可想想为什么呢。图8TDSQL多级一致性技术性能验证4.TDSQL多级一致性工作的意义TDSQL多级一致性的研究与理论工作有几个价值:第一个实现多种强一致性的工程系统在目前已知的系统内实现强一致性的只有Spanner以及TDSQL实现多种级别的强一致性系统只有TDSQL。这对于深化理论强一致性系统有着典范的作用我们可从中知道工程理论中该方向的理论是可行的。第一个高性能的强一致性工程系统确保正确性的系统未必可以有效运用到实际的环境中因为高性能是衡量一个系统的核心指标。而多种强一致性下的TDSQL有着可以知足实际应用的性能。在无任
14、何数据异常以及一致性异常出现的情况下用户不必再担忧数据或者操作出现意想不到的问题但却可以享受极佳的性能体验这说明工程理论中该技术落地是可行的。我们期待序幕拉开真正的强一致性系统将如雨后春笋5.将来工作一个好消息是将来该项技术大概率会开源。TDSQL的事务处理技术已经有一局部开源了大众可以在github上找到3TS这个开源工程该工程专注于事务处理技术会深化涉及与事务处理技术相关的各个层面进展有价值、有深度的研究以及理论。目前该工程下已经开源了13种并发访问控制算法并提供了详细的文档资料。图9TDSQL将来的技术开展方向腾讯TDSQL以及中国人民大学数据工程与知识工程教育部重点实验室期望能用自己的实际行动让我们携手完成的工程为学术界以及工程界做出有意义的奉献推动数据库技术向前开展。路漫漫其修远兮我们在努力前行中欢送参加TDSQL一起在先进技术的海洋中畅游。12月23日19:30TAPD团队的小萌将结合研发经过中的详细场景共享怎样基于TAPD实现团队敏捷研发度量腾讯技术工程