【金猿技術(shù)展】分布錯時事務(wù)機(jī)制——亞信科技分布式數(shù)據(jù)庫全局一致性實現(xiàn)方法
【數(shù)據(jù)猿導(dǎo)讀】 本項目由亞信科技投遞并參與“數(shù)據(jù)猿年度金猿策劃活動——2022大數(shù)據(jù)產(chǎn)業(yè)創(chuàng)新技術(shù)突破榜單及獎項”評選

分布錯時事務(wù)機(jī)制應(yīng)用于分布式集群中任一節(jié)點,以當(dāng)前節(jié)點為例:在接收到攜帶第一操作的請求之后,確定第一操作的當(dāng)前狀態(tài),以及進(jìn)入第一操作的當(dāng)前狀態(tài)的混合時間戳;根據(jù)第一操作確定待處理的目標(biāo)數(shù)據(jù)行;根據(jù)進(jìn)入當(dāng)前狀態(tài)的混合時間戳和/或目標(biāo)數(shù)據(jù)行的提交混合時間戳確定對目標(biāo)數(shù)據(jù)行的處理方式。由于每個混合時間戳由包括物理時鐘和邏輯時鐘的混合時鐘確定,混合時鐘或混合時間戳可以在并發(fā)多事務(wù)場景中有效區(qū)分每個事務(wù)和每個狀態(tài)。因此,基于具有明確的區(qū)分作用的混合時間戳,可以在事務(wù)處理過程中保證事務(wù)一致性和事務(wù)隔離性。`
技術(shù)說明
在分布式數(shù)據(jù)領(lǐng)域,如何協(xié)調(diào)多終端發(fā)起的事務(wù),以保證事務(wù)一致性和隔離性是目前急需解決的技術(shù)問題。目前,存在以下兩種應(yīng)對方式:
第一種方式,在分布式集群中使用全局的時間戳生成服務(wù)生成每項事務(wù)的時間戳,并根據(jù)該時間戳來確定事務(wù)的執(zhí)行順序,從而實現(xiàn)事務(wù)一致性和隔離性。第二種方式,在分布式集群中,使用精確的GPS定時時鐘(全球定位系統(tǒng)的定時服務(wù),Global Positioning System)或者原子時鐘提供時鐘偏移較小的分布式時鐘服務(wù),并通過預(yù)設(shè)接口(如,truetimeAPI)為每項事務(wù)獲取精確的時間,并根據(jù)時間順序來確定事務(wù)的執(zhí)行順序,從而實現(xiàn)事務(wù)一致性和隔離性。
然而這兩種方式要么可能會帶來額外的時間延遲,要么需要昂貴且非普遍的硬件配置,并非理想的技術(shù)手段。因此,如何基于現(xiàn)有的條件(如,由配置有普通硬件的物理服務(wù)器搭建的分布式數(shù)據(jù)庫) ,且不以犧牲操作的延遲性來實現(xiàn)事務(wù)的一致性和隔離性,仍為需要改進(jìn)的技術(shù)問題。
分布錯時事務(wù)機(jī)制基于混合的邏輯時鐘以及分布式事務(wù)二階段提交手段,可以實現(xiàn)在現(xiàn)有硬件的基礎(chǔ)上,協(xié)調(diào)好各個事務(wù)中每項操作的處理過程,從而實現(xiàn)保持事務(wù)一致性和隔離性的目的。具體實施方法如下:
確定第一操作的當(dāng)前狀態(tài),以及進(jìn)入當(dāng)前狀態(tài)的混合時間戳;其中,混合時間戳由包括物理時鐘和邏輯時鐘的混合時鐘確定;根據(jù)第一操作確定待處理的目標(biāo)數(shù)據(jù)行;其中,每個數(shù)據(jù)行包括記錄提交時間的提交混合時間戳和記錄的數(shù)據(jù),目標(biāo)數(shù)據(jù)行隸屬于至少一個節(jié)點;根據(jù)進(jìn)入當(dāng)前狀態(tài)的混合時間戳和/或目標(biāo)數(shù)據(jù)行的提交混合時間戳確定對目標(biāo)數(shù)據(jù)行的處理方式。
獲取當(dāng)前的第一混合時間戳和物理時間戳,并比對物理時間戳與第一混合時間戳的物理時鐘部分的數(shù)值的大小;若比對結(jié)果為相等,以自增方式更新第一混合時間戳的邏輯時鐘部分的數(shù)值;若比對結(jié)果為大于,更新第一混合時間戳的物理時鐘部分的數(shù)值為物理時間戳,以及以賦零值的方式更新第一混合時間戳的邏輯時鐘部分的數(shù)值;確定進(jìn)入當(dāng)前狀態(tài)的混合時間戳為更新的第一混合時間戳。
根據(jù)當(dāng)前狀態(tài)的混合時間戳和/或目標(biāo)數(shù)據(jù)行的提交混合時間戳確定對目標(biāo)數(shù)據(jù)行的處理方式,包括:
1、若目標(biāo)數(shù)據(jù)行隸屬于一個節(jié)點,且當(dāng)前狀態(tài)為提交狀態(tài),針對目標(biāo)數(shù)據(jù)行進(jìn)行更新操作,并將進(jìn)入目標(biāo)提交操作的提交狀態(tài)的第二混合時間戳確定為與更新操作相應(yīng)的數(shù)據(jù)行的提交混合時間戳。
2、若目標(biāo)數(shù)據(jù)行隸屬于至少兩個節(jié)點,且當(dāng)前狀態(tài)為預(yù)提交狀態(tài),根據(jù)進(jìn)入目標(biāo)提交操作的預(yù)提交狀態(tài)的第三混合時間戳確定對目標(biāo)數(shù)據(jù)行的處理方式。
3、根據(jù)進(jìn)入目標(biāo)提交操作的預(yù)提交狀態(tài)的第三混合時間戳確定對目標(biāo)數(shù)據(jù)行的處理方式,包括:獲取在至少兩個節(jié)點上進(jìn)入目標(biāo)提交操作的預(yù)提交狀態(tài)的第三混合時間戳,并從中篩選出最大的提交時間戳;將最大的提交時間戳作為進(jìn)入目標(biāo)提交操作的提交狀態(tài)的第四混合時間戳,確定處理方式包括:針對目標(biāo)數(shù)據(jù)行進(jìn)行更新操作,并將第四混合時間戳確定為與更新操作相應(yīng)的數(shù)據(jù)行的提交混合時間戳。
4、若接收到與用戶終端相連接的節(jié)點發(fā)送的攜帶第五混合時間戳的任一請求,第五混合時間戳大于當(dāng)前的第一混合時間戳,更新當(dāng)前的第一混合時間戳為第五混合時間戳。
5、混合時間戳還包括對應(yīng)的狀態(tài)標(biāo)志,第一操作為目標(biāo)讀操作,以及當(dāng)前狀態(tài)為開始狀態(tài),根據(jù)進(jìn)入當(dāng)前狀態(tài)的混合時間戳和/或目標(biāo)數(shù)據(jù)行的提交混合時間戳確定對目標(biāo)數(shù)據(jù)行的處理方式,包括:
① 若目標(biāo)數(shù)據(jù)行的提交混合時間戳對應(yīng)的狀態(tài)標(biāo)志為地址標(biāo)志,獲取操作目標(biāo)數(shù)據(jù)行的第二操作,并根據(jù)第二操作和/或進(jìn)入目標(biāo)讀操作的開始狀態(tài)的第六混合時間戳確定對目標(biāo)數(shù)據(jù)行的處理方式;
② 若目標(biāo)數(shù)據(jù)行的提交混合時間戳對應(yīng)的狀態(tài)標(biāo)志為時間標(biāo)志,根據(jù)第六混合時間戳確定對目標(biāo)數(shù)據(jù)行的處理方式。
6、根據(jù)第二操作和/或進(jìn)入目標(biāo)讀操作的開始狀態(tài)的第六混合時間戳確定對目標(biāo)數(shù)據(jù)行的處理方式,包括:
① 當(dāng)目標(biāo)讀操作與第二操是同一事務(wù)中的操作時,設(shè)置目標(biāo)數(shù)據(jù)行所記錄的數(shù)據(jù)對目標(biāo)讀操作可見;
② 當(dāng)目標(biāo)讀操作與第二操不是同一事務(wù)中的操作時:
若第二操作為寫操作或者若第二操作為處于開始狀態(tài)的提交操作,設(shè)置目標(biāo)數(shù)據(jù)行所記錄的數(shù)據(jù)對目標(biāo)讀操作不可見;
若第二操作為處于預(yù)提交狀態(tài)的提交操作,響應(yīng)于讀信號,根據(jù)第六混合時間戳確定對目標(biāo)數(shù)據(jù)行的處理方式;若第二操作為處于提交狀態(tài)的提交操作,根據(jù)第六混合時間戳確定對目標(biāo)數(shù)據(jù)行的處理方式。
7、確定第六混合時間戳與目標(biāo)數(shù)據(jù)行的提交混合時間戳的差值:
① 若差值的絕對值不大于預(yù)設(shè)閾值,重啟目標(biāo)讀操作,以重新確定對目標(biāo)數(shù)據(jù)行的處理方式;
② 若差值的絕對值大于預(yù)設(shè)閾值,且差值大于零,設(shè)置目標(biāo)數(shù)據(jù)行所記錄的數(shù)據(jù)對目標(biāo)讀操作可見;
③ 若差值的絕對值大于預(yù)設(shè)閾值,且差值小于零,設(shè)置目標(biāo)數(shù)據(jù)行所記錄的數(shù)據(jù)對目標(biāo)讀操作不可見。
8、若處理方式包括設(shè)置目標(biāo)數(shù)據(jù)行所記錄的數(shù)據(jù)對目標(biāo)讀操作不可見,方法還包括:
① 獲取目標(biāo)數(shù)據(jù)行關(guān)聯(lián)的歷史數(shù)據(jù)行;根據(jù)第六混合時間戳與關(guān)聯(lián)的歷史數(shù)據(jù)行的提交混合時間戳設(shè)置關(guān)聯(lián)的歷史數(shù)據(jù)行所記錄的數(shù)據(jù)是否對目標(biāo)讀操作可見。
② 分布錯時事務(wù)機(jī)制還包括:統(tǒng)計每個節(jié)點上處于活躍狀態(tài)的操作,并從處于活躍狀態(tài)的操作中篩選出進(jìn)入相應(yīng)操作的開始狀態(tài)的混合時間戳為最小的第三操作;確定進(jìn)入第三操作的開始狀態(tài)的混合時間戳為第七混合時間戳;根據(jù)第七混合時間戳刪除符合刪除條件的歷史數(shù)據(jù)行。
9、該機(jī)制的數(shù)據(jù)處理裝置包括:
第一確定模塊,用于確定第一操作的當(dāng)前狀態(tài),以及進(jìn)入當(dāng)前狀態(tài)的混合時間戳;其中,混合時間戳由包括物理時鐘和邏輯時鐘的混合時鐘確定;第二確定模塊,用于根據(jù)第一操作確定待處理的目標(biāo)數(shù)據(jù)行;其中,每個數(shù)據(jù)行包括記錄提交時間的提交混合時間戳和記錄的數(shù)據(jù),目標(biāo)數(shù)據(jù)行隸屬于至少一個節(jié)點;第三確定模塊,用于根據(jù)進(jìn)入當(dāng)前狀態(tài)的混合時間戳和/或目標(biāo)數(shù)據(jù)行的提交混合時間戳確定對目標(biāo)數(shù)據(jù)行的處理方式。
★專利申請?zhí)?公開號:CN 114942966 A
開發(fā)團(tuán)隊
·帶隊負(fù)責(zé)人姓名:張樺
張樺先生作為AntDB數(shù)據(jù)庫的研發(fā)帶頭人,從2008年移動計費核心改造之初就參與了AntDB的研發(fā)設(shè)計工作。隨著AntDB在全國超過20個省的運(yùn)營商核心系統(tǒng)的落地,張樺先生帶領(lǐng)的AntDB數(shù)據(jù)庫見證了中國通訊市場從2G向5G發(fā)展的全部歷程,也經(jīng)歷了運(yùn)營商行業(yè)國產(chǎn)化替換從首次落地向大規(guī)模推廣的整個階段。作為我國數(shù)據(jù)庫領(lǐng)域的核心專家,張樺先生在數(shù)據(jù)庫領(lǐng)域和垂直行業(yè)應(yīng)用方面有近20年經(jīng)驗,不斷推進(jìn)AntDB在通信、金融、交通、能源、物聯(lián)網(wǎng)等行業(yè)的規(guī)模落地。
·隸屬機(jī)構(gòu):亞信科技
亞信科技始于1993年,是領(lǐng)先的“數(shù)智化全棧能力提供商”,依托咨詢規(guī)劃、產(chǎn)品研發(fā)、實施交付、系統(tǒng)集成、智慧決策、數(shù)據(jù)運(yùn)營與客戶服務(wù)7大能力為百行千業(yè)政企客戶提供“端到端”的全鏈路數(shù)智化服務(wù)。
亞信科技積極擁抱5G、人工智能、云計算、大數(shù)據(jù)、物聯(lián)網(wǎng)等先進(jìn)技術(shù),擁有行業(yè)領(lǐng)先的研發(fā)能力,已形成包括客戶關(guān)系管理、計費賬務(wù)、大數(shù)據(jù)、人工智能、5G網(wǎng)絡(luò)智能化、研發(fā)運(yùn)維一體化、數(shù)字化運(yùn)營、PaaS平臺、物聯(lián)網(wǎng)產(chǎn)品等在內(nèi)的AISWare產(chǎn)品體系。
公司秉承“一鞏固、三發(fā)展”戰(zhàn)略,在傳統(tǒng)業(yè)務(wù)方面,以5G為契機(jī),全面布局,提升效能,鞏固BSS市場領(lǐng)導(dǎo)者地位;在新興業(yè)務(wù)方面,力爭5G OSS網(wǎng)絡(luò)智能化業(yè)務(wù)、DSaaS數(shù)字化運(yùn)營業(yè)務(wù)、垂直行業(yè)及企業(yè)上云業(yè)務(wù)的規(guī)?;l(fā)展??蛻羯婕罢?wù)、通信、金融、能源、交通、廣電、郵政等行業(yè)。同時,亞信科技與業(yè)界伙伴共建生態(tài),推動商業(yè)模式轉(zhuǎn)變,為全行業(yè)數(shù)字化轉(zhuǎn)型和產(chǎn)業(yè)可持續(xù)發(fā)展貢獻(xiàn)力量。
相關(guān)評價
我們之所以選擇AntDB的內(nèi)存數(shù)據(jù)庫,其中重要的原因在于內(nèi)存數(shù)據(jù)庫的高效和分布式數(shù)據(jù)庫的可擴(kuò)展,同時,也具備高可用性的設(shè)計。
我們選擇在21年8月13日,進(jìn)行賬務(wù)數(shù)據(jù)庫的割接,一是因為在月中,可以有充足的時間準(zhǔn)備次月的出賬,二是紀(jì)念84年前的八一三淞滬抗戰(zhàn),銘記落后就會挨打的歷史。整個割接非常順利,到9月份,又完成了容災(zāi)數(shù)據(jù)庫的切換演練,至今已平穩(wěn)運(yùn)行一年多的時間,從實際情況看,數(shù)據(jù)庫的重要生產(chǎn)指標(biāo),都滿足了計費賬務(wù)系統(tǒng)的場景要求,出賬耗時縮減了30%左右,CPU負(fù)荷下降33%以上,內(nèi)存維持75%以下,AntDB不僅實現(xiàn)了平穩(wěn)過渡,也實現(xiàn)了業(yè)務(wù)側(cè)的提質(zhì)增效,達(dá)到了預(yù)期的要求。
此次項目的成功上線,解決了生產(chǎn)運(yùn)營過程中存在的瓶頸問題,打破了長期以來,國內(nèi)通信行業(yè)的支撐系統(tǒng)受限于國外數(shù)據(jù)庫廠商的局面,樹立了通信行業(yè)核心數(shù)據(jù)庫的創(chuàng)新標(biāo)桿;在新數(shù)據(jù)庫的功能、高可用、可維護(hù)性等方面掌握了核心技術(shù),為后續(xù)數(shù)據(jù)庫的全面轉(zhuǎn)型,沉淀了方法,積累了經(jīng)驗,更是培養(yǎng)了一支自主可控的專業(yè)隊伍。
——上海移動信息系統(tǒng)運(yùn)營部總經(jīng)理 陸英雷
國產(chǎn)數(shù)自主可控數(shù)據(jù)庫AntDB在省清分結(jié)算系統(tǒng)的應(yīng)用,提供了省中心數(shù)據(jù)統(tǒng)一服務(wù)能力以及“全流程+多協(xié)議+高性能+全業(yè)務(wù)數(shù)據(jù)”的處理能力,滿足了海量交易數(shù)據(jù)的集中采集、處理、查詢要求,為取消省界收費后部-省兩級架構(gòu)支撐系統(tǒng)提供新動力。
現(xiàn)今的AntDB正高效完成業(yè)務(wù)報表的輸出,支撐處理云南高速每天1000萬條門架流水、200萬條車道流水。當(dāng)前數(shù)據(jù)量存儲累計超100TB,已穩(wěn)定運(yùn)行近兩年,獲得了業(yè)務(wù)團(tuán)隊和業(yè)界的認(rèn)可。
AntDB作為自主可控的國產(chǎn)數(shù)據(jù)庫,成功運(yùn)用于該“清分結(jié)算”類大數(shù)據(jù)庫平臺業(yè)務(wù),具有廣泛的社會意義:
高速交通行業(yè)示范作用:通過我省清分結(jié)算國產(chǎn)數(shù)據(jù)庫的成功應(yīng)用,為高速行業(yè)內(nèi)應(yīng)用國產(chǎn)數(shù)據(jù)庫樹立典范,增強(qiáng)行業(yè)內(nèi)應(yīng)用國產(chǎn)技術(shù)的信心。
信創(chuàng)產(chǎn)業(yè)示范效應(yīng):既響應(yīng)國家號召、破解核心軟件“卡脖子”風(fēng)險,又落實云南高速集團(tuán)公司的要求,助力公司實現(xiàn)自主可控創(chuàng)新引領(lǐng),提升業(yè)務(wù)連續(xù)性,規(guī)避供應(yīng)鏈安全風(fēng)險。
——云南公路聯(lián)網(wǎng)收費管理有限公司副總經(jīng)理 張成林
來源:數(shù)據(jù)猿
刷新相關(guān)文章
我要評論
不容錯過的資訊
-
1沖刺科創(chuàng)板的京儀裝備凈利潤暴漲828%?
-
2瞻仕咨詢|第三屆銀行業(yè)數(shù)字化創(chuàng)新(中國
-
3【金猿信創(chuàng)展】火山引擎——云上增長新動
-
4【金猿信創(chuàng)展】跬智信息Kyligence——把
-
5【金猿產(chǎn)品展】云數(shù)據(jù)平臺CyberMeta——
-
6張涵誠:建設(shè)新一代數(shù)據(jù)要素流通平臺 推
-
7【金猿信創(chuàng)展】愛數(shù)——以全域數(shù)據(jù)能力,
-
8【金猿人物展】實在智能創(chuàng)始人、CEO孫林
-
9【金猿投融展】濤思數(shù)據(jù)——專注時序大數(shù)
-
10【金猿技術(shù)展】基于復(fù)雜網(wǎng)絡(luò)的高維元數(shù)據(jù)
大數(shù)據(jù)企業(yè)推薦more >
大家都在搜
