<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          分布式一致性哪家強?這篇說清楚了

          共 4717字,需瀏覽 10分鐘

           ·

          2021-03-13 11:39


          “在分布式背景下,可以實現(xiàn)雙一致性(事務(wù)一致性、分布式一致性),并提高分布式事務(wù)型集群的處理效率嗎?”

          答案是可以。

          下面數(shù)據(jù)君將為大家深度揭秘這個數(shù)據(jù)庫領(lǐng)域的核心技術(shù)——分布式事務(wù)處理技術(shù)的核心——多級一致性技術(shù)。

          該技術(shù)在遵循了ACID特性的同時,使得事務(wù)處理技術(shù)符合CAP原理,并在理論層面相較“嚴格可串行化”技術(shù)做了擴展,進一步提出了多種強一致性的完整技術(shù)。同時該技術(shù)在工程實踐層面落地了較高的性能,是同類產(chǎn)品Spaneer性能的4+倍,是CorchroachDB的2+倍,高并發(fā)場景下是Greenplum性能的3+倍。

          這意味著,TDSQL實現(xiàn)了數(shù)據(jù)庫領(lǐng)域真正高性能的強一致性工程系統(tǒng),對推動分布式數(shù)據(jù)庫核心技術(shù)以及產(chǎn)業(yè)應用有著重要意義。

          一 問題的背景

          科學研究,始于問題。在分布式事務(wù)處理領(lǐng)域,有很多重要的問題,遠不止是2PC技術(shù)所能囊括的。例如,騰訊云TDSQL目前在解決的一個復雜且是一個復合的問題如下:

          事務(wù)型數(shù)據(jù)庫必須要解決的問題,是數(shù)據(jù)的一致性問題。該問題是事務(wù)ACID特性的C的問題,如果不滿足C,會有多種數(shù)據(jù)異常,如臟讀、不可重復讀、幻讀、讀偏序、寫偏序等數(shù)據(jù)異常。

          而分布式系統(tǒng),遵循CAP理論,其中的C,也是“一致性”,是操作之間讀取數(shù)據(jù)的一致性。如果CAP的C不被滿足,則會出現(xiàn)Steal read、Immortal write、Causal reverse等一致性異常問題(如圖2所示)。

          而分布式事務(wù)型數(shù)據(jù)庫,則同時面臨以上兩類問題,如圖1所示。在分布式事務(wù)型數(shù)據(jù)庫中,該兩類問題各自解決都有難度(例如很多數(shù)據(jù)庫像Oracle都不提供可串行化不能確保數(shù)據(jù)異常不發(fā)生、NoSQL系統(tǒng)為了保證CAP中的A和P而丟掉了C),更不用說協(xié)同被解決了。

          圖1 多級一致性研究背景和問題

          圖2 分布式系統(tǒng)下存在的問題

          TDSQL作為一個分布式事務(wù)型數(shù)據(jù)庫,就面臨著如上的兩個問題疊加(分布式一致性+事務(wù)一致性)這樣一個復合且復雜的技術(shù)問題,其難點在于保證正確性的背景下如何做到高效率,這直接影響著分布式事務(wù)數(shù)據(jù)庫的事務(wù)處理的吞吐量(Transaction throughput)。

          二 學術(shù)界的研究與問題的復雜度

          在學術(shù)界,前述問題的一種解決方式,被稱為“嚴格可串行化”,該技術(shù)可以解決掉事務(wù)的一致性和CAP的一致性引發(fā)的問題。如圖3所示(文獻《Highly available transactions: Virtues and limitations》),其中的樹根,就是事務(wù)一致性和分布式一致性的結(jié)合點,嚴格可串行化。而樹的左子樹(事務(wù)一致性)和右子樹(分布式一致性),是兩個獨立的系統(tǒng),他們之間沒有關(guān)聯(lián)關(guān)系。

          圖3 學術(shù)界對于“事務(wù)一致性和分布式一致性的結(jié)合點”的研究(1)

          從圖3也可以看出,左子樹的事務(wù)一致性隔離級別有很多種,右子樹的分布式一致性有很多種,因此,需要系統(tǒng)地研究各種級別的事務(wù)的一致性和分布式系統(tǒng)的一致性,才能更好的分析問題、解決問題(而不是只考慮樹根的唯一結(jié)合點)。而如圖4告知我們,分布式一致性有很多,圖4總結(jié)有60種左右,這為研究該項問題,帶來了復雜度。

          圖4 分布式一致性關(guān)系圖

          盡管融合分布式一致性的問題有很大的復雜度,但是這樣的攔路虎是阻止不了我們對問題深入研究的熱情和步伐的。TDSQL在前行探索中,如圖5所示,看到了方向和曙光(紅色方框處)。圖5中藍色方框,是事務(wù)中的與隔離性相關(guān)的一致性等級、和分布式一致性,在橫軸的“Isolation(transactional)”列,對應的是事務(wù)的隔離級別,而他們相交處,是紅色方框所框住的,卻是“一片空白”。這片空白處,正是研究所未及處,也正是這片無人區(qū),讓TDSQL的研究有了空間和舞臺。

          圖5 學術(shù)界對于“事務(wù)一致性和分布式一致性的結(jié)合點”的研究(2)

          另外,業(yè)界經(jīng)常提及“強一致性”,但概念混亂不清晰。文獻《Consistency in Non-Transactional Distributed Storage Systems》指出如下內(nèi)容,澄清了強一致性的含義:

          In a hybrid consistent system, strong operations are guaranteed to be seen in some sequential order by all processes (as in sequential consistency), while weak operations are designed to be fast, and they eventually become visible by all processes (much like in eventual consistency). Weak operations are only guaranteed to be ordered according to their interleaving with strong operations: if two operations belong to the same session and one of them is strong, then their relative order of invocation is respected and visible by all processes.

          所以,是否被“所有進程”可見,是判斷強一致性的標準,而在分布式一致性中,只有線性一致性和順序一致性滿足強一致性的含義。而結(jié)合事務(wù)一致性,需要再滿足可串行化才能稱為分布式事務(wù)的強一致性。

          綜上所述,TDSQL所研究的問題,正是ACID的C、CAP的C,以及強一致之間的內(nèi)在聯(lián)系,他們有兩個維度的表現(xiàn):一是考慮這些因素時如何保證正確性,二是在有這些因素存在影響下如何保證所實現(xiàn)的系統(tǒng)有好的性能。如果沒有好的性能,提供再強的一致性也難以實用,因此強一致性背景下實現(xiàn)高性能成為挑戰(zhàn)。

          三 產(chǎn)業(yè)界的實現(xiàn)與存在的問題

          在產(chǎn)業(yè)界,目前只有Google的Spanner系統(tǒng),實現(xiàn)了“嚴格可串行化”,Spanner稱之為“外部一致性”(《Spanner:Googles globally distributed database》)。該項技術(shù)在2012年發(fā)表,使得數(shù)據(jù)庫界的研究和實踐從NoSQL時代買入NewSQL時代,具有劃時代的意義。其實現(xiàn)的技術(shù)本質(zhì),是把分布式中的線性一致性和事務(wù)一致性的可串行化相結(jié)合,從而實現(xiàn)了“嚴格可串行化”。

          圖6 工業(yè)界對于“事務(wù)一致性和分布式一致性的結(jié)合點”的實踐

          但是,Spanner的實現(xiàn),存在一個問題:正確性能夠保證,但性能低下(如圖6所示的事務(wù)吞吐量的計算公式)。因此,該系統(tǒng)具有象征意義。而實踐中,對于需要在金融級的事務(wù)處理場景中,其性能不符合要求。

          四 騰訊云TDSQL的多級一致性技術(shù)

          TDSQL深入研究了分布式一致性問題,解決了一些技術(shù)難題。例如圖7,線性一致性有多個子類,那么線性一致性和事務(wù)一致性結(jié)合時,是否應該有多個級別的“嚴格可串行化”?再如,為什么順序一致性可以和可串行化結(jié)合而能確保強一致性?這些問題,都需要在理論層面加以證明,然后才能遷移到工程系統(tǒng)中指導工程實現(xiàn)。

          圖7 線性一致性的定義

          在深入研究了ACID的C和CAP的C以及強一致性之后,TDSQL團隊通過一致性建模技術(shù),從概念、模型、基于模型的操作、事務(wù)模型框架、數(shù)據(jù)結(jié)構(gòu)和高效算法設(shè)計等多個角度,基于TDSQL和Greenplum實現(xiàn)了“多級一致性”技術(shù)(基于Greenplum目的是為了便于和業(yè)界的產(chǎn)品實現(xiàn)對比發(fā)現(xiàn)問題),該技術(shù)在正確性方面,給出了滿足強一致性的線性可串行化、順序可串行化級別的定義和證明等,使得前述的事務(wù)一致性方面的數(shù)據(jù)異常如寫偏序、分布式一致性方面的分布式異常如Steal read等問題被消除。而在性能方面,有著優(yōu)異的表現(xiàn)。

          該技術(shù)在Google云上對比測試了Spanner的性能,對比測試了業(yè)界知名的NewSQL系統(tǒng)CorchroachDB、對比測試了原生的Greenplum,均獲得了較好的結(jié)果,如圖8所示(TDSQL的多級一致性:SER-L,線性可串行化;SER-S,順序可串行化),從多個角度驗證對比了TDSQL多級一致性的性能,在圖8中給出部分實驗數(shù)據(jù)。圖8的實驗分為4個層面進行了對比:

          1.對比Spanner的性能:圖8左上角的子圖,同樣性價比的同等資源情況下,TDSQL的多級一致性是Spanner性能的4+倍。

          2.對比CorchroachDB的性能圖8左下角的子圖,同樣硬件測試環(huán)境下,TDSQL的多級一致性是CorchroachDB性能的2+倍。

          3.對比原生的Greenplum的性能:圖8右子圖,硬件測試環(huán)境下,TDSQL的多級一致性是原生的Greenplum性能的3+倍。

          4.存在一定程度的網(wǎng)絡(luò)延時的情況下,TDSQL多級一致性的性能表現(xiàn):圖8右子圖,還測試在分布式環(huán)境下,當網(wǎng)絡(luò)存在1.5ms和5ms的延時情況下,高并發(fā)場景下的TDSQL多級一致性技術(shù),依然好于無延時情況的Greenplum的RC隔離級別的性能,這表明具有更高一致性的隔離級別可以做到更好的性能(CorchroachDB早期版本實現(xiàn)了快照隔離和可串行化,但在新版本中,只保留了更嚴格的可串行化級別,大家可想想為什么呢?)。

          圖8 TDSQL多級一致性技術(shù)性能驗證

          五 TDSQL多級一致性工作的意義

          TDSQL多級一致性的研究與實踐工作,有幾個價值:

          1.實現(xiàn)多種強一致性的工程系統(tǒng):在目前已知的系統(tǒng)內(nèi),實現(xiàn)強一致性的只有Spanner和TDSQL;實現(xiàn)多種級別的強一致性系統(tǒng),只有TDSQL。這對于深入實踐強一致性系統(tǒng),有著榜樣的作用,我們可從中知道,工程實踐中,該方向的理論是可行的。

          2.真正高性能的強一致性工程系統(tǒng):確保正確性的系統(tǒng),未必能夠有效運用到實際的環(huán)境中,因為高性能是衡量一個系統(tǒng)的核心指標。而多種強一致性下的TDSQL,有著可以滿足實際應用的性能。在無任何數(shù)據(jù)異常和一致性異常出現(xiàn)的情況下,用戶不必再擔心數(shù)據(jù)或操作出現(xiàn)意想不到的問題,但卻可以享受極佳的性能體驗,這表明,工程實踐中,該技術(shù)落地是可行的。

          我們期待,序幕拉開,真正的強一致性系統(tǒng)將如雨后春筍……

          六 未來工作

          一個好消息是,未來該項技術(shù)大概率會開源。

          TDSQL的事務(wù)處理技術(shù),已經(jīng)有一部分開源了,大家可以在github上找到3TS這個開源項目,該項目專注于事務(wù)處理技術(shù),會深入涉及與事務(wù)處理技術(shù)相關(guān)的各個層面,進行有價值、有深度的研究和實踐。目前該項目下已經(jīng)開源了13種并發(fā)訪問控制算法,并提供了詳細的文檔資料。

          TDSQL和中國人民大學數(shù)據(jù)工程與知識工程教育部重點實驗室期望,能用自己的實際行動,讓我們攜手完成的項目,為學術(shù)界和工程界做出有意義的貢獻,推動數(shù)據(jù)庫技術(shù)向前發(fā)展。路漫漫其修遠兮,我們在努力前行中,歡迎加入TDSQL,一起在先進技術(shù)的海洋中暢游。

          圖9 TDSQL未來的技術(shù)發(fā)展方向

          - End -


           更多精彩


          Beyond database:云時代數(shù)據(jù)庫技術(shù)演進的幾大關(guān)鍵趨勢


          TDSQL的2020進化在未來之前,更在未來之后


          ↓↓一年19.9特惠數(shù)據(jù)庫點這兒~ 

          瀏覽 39
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  含羞草视频一区二区三区在线无码 | 神马久久樱桃 | 国产精品秘 久久久久久99 | 日韩无码不卡免费视频 | 亚洲精品乱码久久久久久自慰 |