亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種實時數(shù)據(jù)庫的分布式存儲方法①

        2019-04-29 08:58:38李賢慧
        計算機系統(tǒng)應用 2019年4期
        關(guān)鍵詞:分片一致性分布式

        周 淳,李賢慧

        (南瑞集團有限公司(國網(wǎng)電力科學研究院有限公司),江蘇瑞中數(shù)據(jù)股份有限公司,南京 211106)

        數(shù)據(jù)庫技術(shù)產(chǎn)生于20 世紀年代后期,其理論與技術(shù)發(fā)展極為迅速,應用也日益廣泛,數(shù)據(jù)庫技術(shù)的一個重要分支:實時數(shù)據(jù)庫是采用實時數(shù)據(jù)模型建立起來的數(shù)據(jù)庫,實時數(shù)據(jù)庫技術(shù)是實時系統(tǒng)和數(shù)據(jù)庫技術(shù)相結(jié)合的產(chǎn)物[1],作為解決關(guān)系型數(shù)據(jù)庫實時處理能力等問題而產(chǎn)生的一種數(shù)據(jù)庫技術(shù),實時、高效、穩(wěn)定是實時數(shù)據(jù)庫最關(guān)鍵的指標.

        實時數(shù)據(jù)庫在數(shù)據(jù)通信、數(shù)據(jù)存儲、數(shù)據(jù)檢索、數(shù)據(jù)訪問、數(shù)據(jù)處理、數(shù)據(jù)展現(xiàn)等方面的專業(yè)化及產(chǎn)品化,為構(gòu)建基于大容量實時歷史數(shù)據(jù)之上的分析應用提供了便捷穩(wěn)定的數(shù)據(jù)支撐,使應用系統(tǒng)可以從更高更深層次充分利用寶貴的生產(chǎn)實時歷史數(shù)據(jù).而隨著網(wǎng)絡(luò)技術(shù)迅速發(fā)展,實時系統(tǒng)產(chǎn)生的數(shù)據(jù)量呈指數(shù)級增長,且各業(yè)務(wù)應用對海量數(shù)據(jù)的管理和應用的實時性提出了越來越高的要求,現(xiàn)有的單機實時數(shù)據(jù)庫技術(shù)不論在理論還是實際應用中都存在很大的局限性,已不能完全適應當前需求.

        目前業(yè)界使用實時數(shù)據(jù)庫基本仍使用單核心集中部署[2,3],分布式計算和存儲技術(shù)思想的引入則可以很好的解決單機實時數(shù)據(jù)庫遇到的這些瓶頸,但如何設(shè)計一個滿足事務(wù)應用處理時效性以及事務(wù)吞吐率的需求的分布式實時數(shù)據(jù)庫是一個難點,本文通過對分布式實時數(shù)據(jù)庫部分關(guān)鍵技術(shù)(數(shù)據(jù)分布、數(shù)據(jù)一致性、數(shù)據(jù)重分布)的研究,設(shè)計了一種分布式實時數(shù)據(jù)庫管理系統(tǒng),可以為實時數(shù)據(jù)庫應用發(fā)展提供技術(shù)支撐.

        1 概述

        1.1 總體架構(gòu)設(shè)計

        分布式實時數(shù)據(jù)庫部署架構(gòu)如圖1所示.

        圖1 分布式實時數(shù)據(jù)庫系統(tǒng)部署架構(gòu)

        在部署架構(gòu)中,管理節(jié)點是整個分布式實時數(shù)據(jù)庫的管理者,主要存儲系統(tǒng)元數(shù)據(jù)信息,包括數(shù)據(jù)分布方式、各節(jié)點狀態(tài)、主備節(jié)點一致性狀態(tài)等關(guān)鍵信息.

        調(diào)度節(jié)點屬于分布式訪問層,統(tǒng)一的訪問接口使得應用能夠?qū)⒎植际降膶崟r數(shù)據(jù)庫視為一個完整的邏輯整體進行訪問;同時調(diào)度節(jié)點也屬于分布式定位層,是數(shù)據(jù)的分布和收集者,主要負責數(shù)據(jù)的分發(fā),查詢結(jié)果的收集匯總以及任務(wù)調(diào)度.在分布式查詢訪問多個節(jié)點上的數(shù)據(jù)時,并發(fā)式的訪問處理能夠?qū)崿F(xiàn)多路數(shù)據(jù)請求在多個存儲節(jié)點上的并行處理,從而實現(xiàn)了高效的分布式數(shù)據(jù)訪問.

        數(shù)據(jù)節(jié)點屬于分布式存儲層.每一個數(shù)據(jù)節(jié)點運行和管理一個數(shù)據(jù)庫實例.數(shù)據(jù)節(jié)點負責整個數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)的實際存儲,接收來自調(diào)度節(jié)點的數(shù)據(jù),執(zhí)行經(jīng)分解的查詢?nèi)蝿?wù),執(zhí)行結(jié)果通過調(diào)度節(jié)點返回給應用程序.數(shù)據(jù)節(jié)點的數(shù)量僅受限于以太網(wǎng)帶寬、機房物理條件等硬性條件.各數(shù)據(jù)節(jié)點只存儲屬于相應分區(qū)的數(shù)據(jù),邏輯上是對等的.主備數(shù)據(jù)節(jié)點實現(xiàn)數(shù)據(jù)在節(jié)點間的冗余互備.

        1.2 元數(shù)據(jù)表

        實時數(shù)據(jù)庫可以簡單地理解為由標簽點信息庫、值數(shù)據(jù)庫兩個部分組成[4].如圖2所示.

        標簽點信息庫含有測點基本信息的一張表,以標簽點標簽(point_name)作為關(guān)鍵字,一條記錄包含一個標簽點的基本配置信息,如標簽點描述、壓縮算法等.用戶可從此標簽點信息庫中查詢標簽點的基本信息.值數(shù)據(jù)庫包含了實時值緩存和歷史數(shù)據(jù)存儲,每條記錄反映了某標簽點產(chǎn)生的實時數(shù)據(jù)的時間戳、數(shù)值、質(zhì)量等信息.用戶可從值數(shù)據(jù)庫中查詢實時數(shù)據(jù)值.因此實時數(shù)據(jù)庫最主要的兩個維度即標簽點和數(shù)據(jù)時間.若需要將實時數(shù)據(jù)庫所有數(shù)據(jù)分布到多個節(jié)點中,則應該從這兩個維度入手.

        圖2 標簽點表和數(shù)據(jù)值表

        元數(shù)據(jù)存儲:標簽點表作為元數(shù)據(jù)表,存儲在調(diào)度節(jié)點,每個調(diào)度節(jié)點擁有一份完整的標簽點信息,多個調(diào)度節(jié)點互為備份,通過管理節(jié)點控制調(diào)度節(jié)點狀態(tài),使用同步線程做異?;謴?

        1.3 數(shù)據(jù)流

        數(shù)據(jù)接入數(shù)據(jù)流如圖3,數(shù)據(jù)由應用服務(wù)器或客戶端發(fā)往調(diào)度節(jié)點,由調(diào)度節(jié)點根據(jù)分布規(guī)則,將數(shù)據(jù)發(fā)送到不同數(shù)據(jù)主節(jié)點,數(shù)據(jù)主節(jié)點在存儲過程中會將數(shù)據(jù)轉(zhuǎn)發(fā)給對應備份節(jié)點.

        數(shù)據(jù)查詢數(shù)據(jù)流如圖4,查詢請求和查詢條件由應用服務(wù)器或客戶端發(fā)往調(diào)度節(jié)點,由調(diào)度節(jié)點根據(jù)查詢條件中涉及到的標簽點和時間范圍,通過分布規(guī)則,篩選相關(guān)的數(shù)據(jù)節(jié)點,拆分并重新組織多個子查詢請求分配到多個數(shù)據(jù)節(jié)點,多個數(shù)據(jù)節(jié)點并行處理查詢,完成后將結(jié)果返回調(diào)度節(jié)點,調(diào)度節(jié)點待所有已分配的子查詢返回結(jié)果后做聚集處理.將結(jié)果反饋到應用服務(wù)器或客戶端.

        這里涉及到分配主備節(jié)點的問題,每一個子查詢只可能被發(fā)送到某一個數(shù)據(jù)主節(jié)點或者備份節(jié)點,除非查詢異常才會繼續(xù)由調(diào)度節(jié)點發(fā)往另一個節(jié)點做查詢(同時需要向管理節(jié)點匯報節(jié)點狀態(tài)),調(diào)度節(jié)點可以通過判斷主備節(jié)點的繁忙程度來選擇分配節(jié)點,數(shù)據(jù)節(jié)點定時向管理節(jié)點匯報當前活動狀態(tài)以及繁忙程度,調(diào)度節(jié)點也會定時從管理節(jié)點同步所有數(shù)據(jù)節(jié)點狀態(tài),繁忙程度的度量[5]可以從CPU 平均使用率、平均網(wǎng)絡(luò)使用率、當前磁盤使用率、當前內(nèi)存占用率等方便綜合測算.

        圖3 數(shù)據(jù)接入的數(shù)據(jù)流

        圖4 數(shù)據(jù)查詢的數(shù)據(jù)流

        2 數(shù)據(jù)分布設(shè)計

        2.1 分布規(guī)則

        設(shè)計分布規(guī)則時,既要考慮到標簽點數(shù)據(jù)的關(guān)聯(lián)性(如果能夠?qū)⒉糠植樵冞\算放在數(shù)據(jù)節(jié)點內(nèi)部直接處理,顯然要比將數(shù)據(jù)傳輸?shù)秸{(diào)度節(jié)點后再集中做運算性能要高的多),又要考慮分布式架構(gòu)并行處理帶來的效率提升.

        可以考慮將連續(xù)的一批標簽點,一個時間段的數(shù)據(jù)分布在同一個數(shù)據(jù)節(jié)點中,可以考慮通過自定義的Hash 函數(shù)實現(xiàn),Hash 函數(shù)類似如下格式:其中slice_id為最后函數(shù)確定分配的分片號,通過函數(shù)前部計算結(jié)果對一個設(shè)定的Hash_Bucket取模獲得,hash_str(point_name)和day_time(time)分別是對標簽點名和時間段的一個量化函數(shù),考慮到標簽點或時間區(qū)域內(nèi)數(shù)據(jù)的關(guān)聯(lián)性,設(shè)計b1 和b2 控制標簽點或某相鄰時間段內(nèi)的數(shù)據(jù)分散程度.w1 和w2 為系數(shù),或者稱之為未標準化權(quán)重,例如極端情況下設(shè)置w2 為0,則表示完全按照標簽點來分布數(shù)據(jù),每個標簽點的所有時間的數(shù)據(jù)都存放在同一個數(shù)據(jù)分片或其備份分片上;同樣的,若設(shè)置w1 為0,則表示完全按照時間段來分布數(shù)據(jù),每個時間段的所有標簽點的數(shù)據(jù)都存放在同一個數(shù)據(jù)分片或其備份分片上.

        可以看到,該等式是以point_name和time為自變量,slice_id為因變量的函數(shù),根據(jù)函數(shù)定義,說明任意一組已知的point_name和time,可以唯一確定一個slice_id,也就是說根據(jù)接入的數(shù)據(jù)中的標簽點名和數(shù)據(jù)時間戳,我們可以分布到一個確定的數(shù)據(jù)分片.

        考慮到系統(tǒng)實際運行中,節(jié)點可能會有調(diào)整變動,若Hash_Bucket設(shè)為初始節(jié)點數(shù),且每個slice_id對應一個節(jié)點,則節(jié)點變動會導致Hash_Bucket變動,繼而會使得整個數(shù)據(jù)重分布涉及到系統(tǒng)所有數(shù)據(jù)文件,因為需要對每條數(shù)據(jù)值使用新Hash 函數(shù)計算對應數(shù)據(jù)節(jié)點,這種方式只能通過提高Hash 運算以及數(shù)據(jù)傳輸?shù)牟⑿卸葋硖岣咧胤植夹?

        借鑒一致性Hash 算法[6]可以有效解決該問題,管理節(jié)點存儲一個大小為Hash_Bucket的數(shù)組(分片映射表),每個元素存儲該元素下標對應數(shù)據(jù)分片所在的數(shù)據(jù)節(jié)點,該映射關(guān)系可以通過人工設(shè)定或者按node_num(數(shù)據(jù)節(jié)點數(shù))取模的方式自動分配.

        圖5顯示了數(shù)據(jù)是如何根據(jù)分布規(guī)則分布到不同節(jié)點上的,分布規(guī)則包含自定義的Hash 函數(shù)和分片映射表,通過自定義的Hash 函數(shù)和分片映射表可以將標簽點以及數(shù)據(jù)分布到不同數(shù)據(jù)節(jié)點,分布規(guī)則需要在標簽點寫入之前確定,且分布規(guī)則一旦確定后,直到數(shù)據(jù)節(jié)點變動需要重分布才會改變,且只能改變分片映射表.

        若整個分布式實時庫系統(tǒng)啟動前沒有預先設(shè)置分布規(guī)則,則啟動后分片映射表根據(jù)數(shù)據(jù)節(jié)點數(shù)自動生成,接入標簽點和數(shù)據(jù)前,仍需要通過管理客戶端設(shè)置Hash 函數(shù)相關(guān)參數(shù),該分布規(guī)則直接交由管理節(jié)點保存,調(diào)度節(jié)點在分配標簽點和數(shù)據(jù)前需要從管理節(jié)點預先獲取分布規(guī)則.調(diào)度節(jié)點首次獲取到分布規(guī)則后會存儲到內(nèi)存中,無需在每次分配數(shù)據(jù)時重新獲取分配規(guī)則,若系統(tǒng)擴容或縮容等有數(shù)據(jù)節(jié)點的變動,需要修改分布規(guī)則時,則需要調(diào)度節(jié)點重新初始化并獲取分布規(guī)則.

        圖5 數(shù)據(jù)分布規(guī)則

        2.2 數(shù)據(jù)重分布設(shè)計

        隨著數(shù)據(jù)庫內(nèi)數(shù)據(jù)總量的變動,可能需要考慮數(shù)據(jù)節(jié)點的擴容或縮容.數(shù)據(jù)節(jié)點的變動必然需要考慮數(shù)據(jù)均衡和數(shù)據(jù)重分布.

        前文設(shè)計的實時庫系統(tǒng),采用的分片映射表和Hash 分布2 層分布的方式,重分布策略可以設(shè)計為Hash 函數(shù)不做改變,而只改變分片映射表,例如重新按照新的節(jié)點數(shù)自動取模生成新的映射表,調(diào)度節(jié)點通過對比新舊分片映射表的差異,設(shè)置每個數(shù)據(jù)節(jié)點相應的分片移動路徑并分配到各個數(shù)據(jù)節(jié)點,數(shù)據(jù)節(jié)點按完整分片目錄做數(shù)據(jù)遷移.這樣以分片為最小移動單位,無需做數(shù)據(jù)解壓和Hash 運算,極大減少CPU 運算和磁盤IO 以及網(wǎng)絡(luò)IO 的開銷.

        一個更高效的做法即根據(jù)整個數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)總量做均分,圖6是一個擴容過程,將數(shù)據(jù)總量大于平均數(shù)據(jù)量的數(shù)據(jù)節(jié)點中的部分分片向少于平均數(shù)據(jù)量的數(shù)據(jù)節(jié)點移動,這樣可以使得數(shù)據(jù)重分布需要移動的總吞吐量達到最小.

        3 單機實時數(shù)據(jù)庫存儲設(shè)計

        實時數(shù)據(jù)庫存儲設(shè)計盡可能沿用已有的單機實時庫設(shè)計,即設(shè)計滿足單個數(shù)據(jù)庫實例既可以作為獨立個體運行,也可以作為分布式架構(gòu)中一個數(shù)據(jù)節(jié)點運行,也就是說單個數(shù)據(jù)節(jié)點需要包含實時庫所有模塊:網(wǎng)絡(luò)收發(fā)模塊、數(shù)據(jù)緩存模塊、數(shù)據(jù)處理模塊、數(shù)據(jù)存儲模塊(包含索引).

        圖6 數(shù)據(jù)節(jié)點擴容時數(shù)據(jù)分片的移動

        這里主要考慮數(shù)據(jù)存儲模塊,數(shù)據(jù)緩存模塊、數(shù)據(jù)處理模塊都是建立在該模塊之上,而網(wǎng)絡(luò)收發(fā)模塊只和設(shè)計的通信協(xié)議有關(guān),和數(shù)據(jù)邏輯相對獨立.

        數(shù)據(jù)存儲按照分片管理,如圖7所示,每個分片號(slice_id)對應一個文件目錄,若作為單獨數(shù)據(jù)庫實例運行,該實例包含所有分片號,若作為分布式架構(gòu)中一個節(jié)點,該實例包含分片映射表中部分分片,每個分片文件目錄下按時間段區(qū)分數(shù)據(jù)文件組存儲數(shù)據(jù)塊,文件組和時間段一一對應,每個文件組和分片目錄各自存儲一個版本號(version),每次寫和修改更新版本號,查詢不做版本號更新[7].

        圖7 單數(shù)據(jù)節(jié)點基本存儲結(jié)構(gòu)

        從整個個分布式系統(tǒng)角度看,數(shù)據(jù)節(jié)點是系統(tǒng)中最基本的存儲和計算單元,從數(shù)據(jù)完整性角度來看,數(shù)據(jù)節(jié)點內(nèi)部數(shù)據(jù)文件組是最小粒度的具有自描述性的存儲單元,也是最基本的自恢復和同步單元.

        4 數(shù)據(jù)冗余備份和一致性處理

        分布式數(shù)據(jù)庫的一個難點就是如何處理存儲數(shù)據(jù)的一致性,包括元數(shù)據(jù)和數(shù)據(jù)的同步以及異常處理.

        4.1 管理節(jié)點數(shù)據(jù)一致性

        管理節(jié)點一般需要配置多個節(jié)點來保障高可用性,主要存儲的是分布規(guī)則等關(guān)鍵配置,以及各主備節(jié)點狀態(tài)等小顆粒信息,適合基于corosync 或zookeeper 類似架構(gòu)實現(xiàn),保證信息同步有序一致,對于這一類場景目前已經(jīng)有廣泛的應用實踐,例如文獻[8].

        4.2 調(diào)度節(jié)點元數(shù)據(jù)一致性

        調(diào)度節(jié)點除了定時從管理節(jié)點同步各節(jié)點狀態(tài)到內(nèi)存外,主要存儲標簽點元數(shù)據(jù)信息,對標簽點的增刪改查以事務(wù)方式執(zhí)行,需要保證單次操作的原子性和強一致性,即每次在某一調(diào)度節(jié)點的操作,需要保證成功同步到其他所有正常調(diào)度節(jié)點,若低于1/2 的調(diào)度節(jié)點同步失敗,管理節(jié)點將失敗的節(jié)點做異常標記,等待后續(xù)同步恢復;若超過1/2 的節(jié)點同步失敗,則在已執(zhí)行成功節(jié)點上執(zhí)行撤銷操作,若撤銷失敗,同樣做異常標記,等待后續(xù)同步恢復.

        調(diào)度節(jié)點元數(shù)據(jù)信息被劃分區(qū)塊,因為所有操作具有強一致性,因此正常節(jié)點每個區(qū)塊以及區(qū)塊順序都應該是完全一致的.管理節(jié)點定時檢測異常的調(diào)度節(jié)點并進行同步恢復操作.

        4.3 數(shù)據(jù)冗余備份和一致性

        通過冗余的鏡像機制來保證集群的高可用特性,設(shè)計需要考慮實時性和容錯性,對于主備數(shù)據(jù)節(jié)點數(shù)據(jù)一致性的選擇,最簡單的做法首選強一致性,但CAP 理論[9]告訴我們一致性、可用性和網(wǎng)絡(luò)分區(qū)三者不可兼得,弱一致性也有其適用范圍,特別是在實時性要求較高而對及時一致性要求較低的場景.

        主備數(shù)據(jù)節(jié)點的狀態(tài)由管理節(jié)點監(jiān)控,調(diào)度節(jié)點通過管理節(jié)點獲取主備數(shù)據(jù)節(jié)點的狀態(tài),可以指派數(shù)據(jù)寫入和查詢節(jié)點,同時實時任務(wù)處理過程中數(shù)據(jù)節(jié)點狀態(tài)異常也實時反饋給管理節(jié)點.前面已經(jīng)提到數(shù)據(jù)寫入和查詢的的數(shù)據(jù)流,寫入時調(diào)度節(jié)點數(shù)據(jù)直接寫入主節(jié)點,由主節(jié)點將數(shù)據(jù)往鏡像節(jié)點做自動轉(zhuǎn)發(fā)同步,不保證主備節(jié)點數(shù)據(jù)的強一致性,只保證數(shù)據(jù)的最終一致性,查詢時主庫鏡像庫分擔查詢壓力,由調(diào)度節(jié)點按負載情況分派查詢?nèi)蝿?wù).

        4.4 數(shù)據(jù)異常處理

        主庫節(jié)點若發(fā)生異常,備節(jié)點會由管理節(jié)點指派升級為主節(jié)點,異常節(jié)點恢復后會作為備份節(jié)點繼續(xù)運行,管理節(jié)點會在檢測到異常數(shù)據(jù)節(jié)點時啟動一致性檢測,通過兩層版本號檢測和文件級同步的方式可以使恢復操作對實時處理性能影響最小化,且恢復效率高,具體檢測和恢復方式為:通過分析主備數(shù)據(jù)節(jié)點的各分片版本號以及分片內(nèi)文件組的版本號(version)不一致情況,確定需要同步的索引和數(shù)據(jù)文件塊并進行數(shù)據(jù)同步,即對不同版本號文件組直接做替換操作,數(shù)據(jù)流通過底層TCP 傳輸.

        為了不影響整個系統(tǒng)的實時性,主備數(shù)據(jù)異?;謴蜁r采用在線同步模式,即同步過程中不影響數(shù)據(jù)正常讀寫,采用如下策略:數(shù)據(jù)同步過程中主節(jié)點產(chǎn)生的修改記錄以Log 方式記錄在主數(shù)據(jù)節(jié)點,并在同步完成后解析Log 和更新數(shù)據(jù),解析過程中的數(shù)據(jù)修改仍然追加到Log 末尾,直到所有Log 解析完畢,管理節(jié)點設(shè)置該主備數(shù)據(jù)節(jié)點狀態(tài)為Normal.

        5 應用實例

        如下是一個分布式實時數(shù)據(jù)庫的搭建和設(shè)計思路:

        (1)建構(gòu)系統(tǒng)架構(gòu):創(chuàng)建管理節(jié)點集群,調(diào)度節(jié)點集群,數(shù)據(jù)節(jié)點集群,數(shù)據(jù)節(jié)點服務(wù)器的數(shù)量和數(shù)據(jù)量有關(guān),管理節(jié)點因為體量較小,可以和調(diào)度節(jié)點合并到同一個服務(wù)器集群.管理節(jié)點存儲節(jié)點元信息,包括數(shù)據(jù)分布規(guī)則、各節(jié)點狀態(tài)等信息,調(diào)度節(jié)點存儲測點信息表,數(shù)據(jù)節(jié)點存儲包含測點名、數(shù)據(jù)時間和數(shù)據(jù)值的數(shù)據(jù)表,每個數(shù)據(jù)節(jié)點通過主備節(jié)點實現(xiàn)冗余備份,管理節(jié)點、調(diào)度節(jié)點和數(shù)據(jù)節(jié)點間分別建立連接,數(shù)據(jù)和調(diào)度節(jié)點定時向管理節(jié)點匯報當前活動狀態(tài)及繁忙程度,調(diào)度節(jié)點定時從管理節(jié)點同步所有節(jié)點狀態(tài);

        (2)建立分布規(guī)則:管理節(jié)點依據(jù)輸入?yún)?shù)確定系統(tǒng)唯一的分布規(guī)則,分布規(guī)則的設(shè)計見2.1 節(jié);

        (3)測點請求:調(diào)度節(jié)點收到測點寫請求后,檢測測點合法性,檢測通過執(zhí)行對測點表的操作,并向其余所有調(diào)度節(jié)點做同步,一致性設(shè)計見4.2 節(jié);

        (4)數(shù)據(jù)寫請求:調(diào)度節(jié)點收到數(shù)據(jù)寫請求后根據(jù)測點名和數(shù)據(jù)時間,依據(jù)分布規(guī)則,將數(shù)據(jù)發(fā)送到不同的數(shù)據(jù)主節(jié)點,數(shù)據(jù)節(jié)點的存儲方式見第3 節(jié),另外,如4.3 節(jié)所述,數(shù)據(jù)主節(jié)點在存儲過程中將數(shù)據(jù)轉(zhuǎn)發(fā)給對應的備份節(jié)點.數(shù)據(jù)存儲過程中發(fā)生異常會執(zhí)行恢復流程,見4.4 節(jié);

        (5)數(shù)據(jù)讀請求:調(diào)度節(jié)點收到讀數(shù)據(jù)請求后,根據(jù)讀請求中測點名和數(shù)據(jù)時間,通過分布規(guī)則篩選數(shù)據(jù)節(jié)點,拆分并重新組織多個讀取子任務(wù)分配到多個數(shù)據(jù)節(jié)點并行讀取數(shù)據(jù),完成后將結(jié)果返回調(diào)度節(jié)點,調(diào)度節(jié)點待所有子任務(wù)返回后做聚集處理.將結(jié)果反饋到請求端.

        為了驗證該設(shè)計的可行性,使用C++語言開發(fā)了分布式實時庫原型系統(tǒng),使用3 個管理和調(diào)度服務(wù)器的集群,5 個數(shù)據(jù)服務(wù)器的集群,執(zhí)行了數(shù)據(jù)讀寫測試,并和單機實時數(shù)據(jù)庫做對比.測試數(shù)據(jù)來源于電力調(diào)度系統(tǒng)模擬數(shù)據(jù),原始數(shù)據(jù)量均為10 TB,測點規(guī)模為1000 萬級別,分別從測點建立,數(shù)據(jù)接入效率,數(shù)據(jù)實際存儲量,數(shù)據(jù)隨機查詢四個方面進行測試對比.表1是對比結(jié)果.

        表1 性能測試對比

        測試結(jié)果顯示,在磁盤壓力較低的情況,單機存儲因為無需做數(shù)據(jù)分布處理和同步,性能較高;而在需要做復雜運算或者磁盤IO 開銷大的場景下,分布式存儲比單機存儲方式有幾倍的性能提升.

        6 結(jié)語

        由于工業(yè)領(lǐng)域?qū)崟r數(shù)據(jù)庫的性能、可靠性、可擴展性等要求越來越高,本文通過將分布式技術(shù)和實時數(shù)據(jù)庫技術(shù)相結(jié)合,提出一種實時數(shù)據(jù)系統(tǒng)中的數(shù)據(jù)分布式存儲的設(shè)計,同時給出了數(shù)據(jù)冗余、數(shù)據(jù)重分布以及數(shù)據(jù)一致性的一整套方案.為突破當前實時數(shù)據(jù)庫技術(shù)瓶頸提供技術(shù)支撐.

        猜你喜歡
        分片一致性分布式
        上下分片與詞的時空佈局
        詞學(2022年1期)2022-10-27 08:06:12
        關(guān)注減污降碳協(xié)同的一致性和整體性
        公民與法治(2022年5期)2022-07-29 00:47:28
        注重教、學、評一致性 提高一輪復習效率
        IOl-master 700和Pentacam測量Kappa角一致性分析
        分片光滑邊值問題的再生核方法
        CDN存量MP4視頻播放優(yōu)化方法
        基于模糊二分查找的幀分片算法設(shè)計與實現(xiàn)
        分布式光伏熱錢洶涌
        能源(2017年10期)2017-12-20 05:54:07
        分布式光伏:爆發(fā)還是徘徊
        能源(2017年5期)2017-07-06 09:25:54
        基于事件觸發(fā)的多智能體輸入飽和一致性控制
        97在线视频免费| 亚洲欧美另类日本久久影院| 色综合久久久久久久久久| 加勒比婷婷色综合久久| 一区视频在线观看免费播放.| 精品香蕉久久久午夜福利| 后入到高潮免费观看| 欧美a视频在线观看| 免费人妻无码不卡中文字幕18禁| 白色白在线观看免费2| 亚色中文字幕| 亚洲av综合av国产av| 亚洲中文字幕久久精品品| 亚洲一区视频中文字幕| 国产自国产在线观看免费观看| 精品福利一区二区三区免费视频 | 国产精品无码一区二区在线观一| 日本女优中文字幕四季视频网站| 国产成人啪精品| 中国a级毛片免费观看| 四虎国产精品永久在线| 91九色最新国产在线观看| 超短裙老师在线观看一区二区| 久久婷婷色香五月综合激情| 成人无码一区二区三区网站| 丰满少妇呻吟高潮经历| 亚洲乱码中文字幕在线播放| 精品蜜桃av免费观看| 麻豆国产VA免费精品高清在线| 久久国产A√无码专区亚洲| 品色永久免费| 亚洲熟妇自偷自拍另欧美| 日本久久伊人特级黄色| 亚洲一区二区三区色偷偷 | 亚洲精品久久久av无码专区| 国产精品黑丝美女啪啪啪| 丝袜美腿在线观看视频| 亚洲综合一区二区三区蜜臀av| 亚洲国产精品久久九色| h国产视频| 亚洲日韩∨a无码中文字幕|