




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一種分布式實(shí)時(shí)數(shù)據(jù)系統(tǒng)中的基于動(dòng)態(tài)索引策略的存取定位機(jī)制李德文,賈士博,譚彰,姚罕琦浙江中控技術(shù)股份有限公司,浙江杭州,310053摘 要:提出一種分布式實(shí)時(shí)數(shù)據(jù)系統(tǒng)中的基于動(dòng)態(tài)索引策略的存取定位機(jī)制。該機(jī)制結(jié)合了改進(jìn)的一致性哈 希算法與“虛擬token空間”機(jī)制。在該機(jī)制基礎(chǔ)上,針對(duì)流程工業(yè)領(lǐng)域測(cè)點(diǎn)數(shù)據(jù)的特征和需求,用大量的廉 價(jià)服務(wù)器實(shí)現(xiàn)了實(shí)時(shí)性高、吞吐量大、可擴(kuò)展性好的分布式實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)。該數(shù)據(jù)庫(kù)系統(tǒng)具有測(cè)點(diǎn)數(shù)據(jù)寫入 位置的自尋找、服務(wù)器集群內(nèi)部狀態(tài)變更時(shí)測(cè)點(diǎn)數(shù)據(jù)位置的自切換、數(shù)據(jù)查詢的自優(yōu)化、服務(wù)器負(fù)載自均衡等 優(yōu)勢(shì)。該系統(tǒng)封裝了分布式系統(tǒng)的各種瓶頸問題,使用戶不需要關(guān)心系統(tǒng)內(nèi)部的機(jī)
2、制,可以像使用單體數(shù)據(jù)庫(kù) 系統(tǒng)一樣直接向系統(tǒng)讀寫數(shù)據(jù),而該系統(tǒng)性能又是單體數(shù)據(jù)庫(kù)的疊加。通過在原型系統(tǒng)中測(cè)試驗(yàn)證,結(jié)果表明 該機(jī)制能夠達(dá)到設(shè)計(jì)預(yù)期目標(biāo)和性能要求。關(guān)鍵詞:分布式;實(shí)時(shí)數(shù)據(jù);虛擬token空間;動(dòng)態(tài)索引;負(fù)載均衡a storage and inquiry location mechanism in distributed real-timedata system based on dynamic index strategyli dewen, jia shibo, tan zhang, yao hanqizhejiang supcon co., ltd., hangzhou, z
3、hejiang, 310053abstract: a storage and inquiry location mechanism in distributed real-time data system based on dynamic index strategy is proposed combining the improved consistent hash algorithm with a "virtual token spacem mechanism and needs of the measuring point data in the field of proces
4、s industries, the mechanism achieves a highly real-time, large throughput per second and good scalability distributed real-time database systems. the database system has advantages of point-data self locating, location self switching when the internal state of the server cluster changed, self-optimi
5、zing of data inquiry, self balancing of servers* load. the system encapsulates a variety of bottlenecks problems in distributed systems , so that users do not need to care about the internal mechanisms of systems .users could read and write data directly toward the system like using a single-server
6、database,but the system performance is the superposition of the single database related tests show that this mechanism achieves expected target and meets performance requirement.key words: distributed; real-time data; virtual token space; dynamic index; load balance0引言而向石化、化工等流程工業(yè)領(lǐng)域的實(shí)時(shí)數(shù)據(jù)庫(kù)是 現(xiàn)代人型過程控制系
7、統(tǒng)的核心數(shù)據(jù)平臺(tái),向效益評(píng)估、 工藝優(yōu)化、錚理決策等上層應(yīng)川提供高效的數(shù)據(jù)服務(wù)。 近年來,隨著產(chǎn)業(yè)結(jié)構(gòu)優(yōu)化和集屮度提升,企業(yè)的生 產(chǎn)規(guī)模不斷擴(kuò)人,對(duì)實(shí)時(shí)數(shù)據(jù)庫(kù)的性能、可靠性、可 擴(kuò)展性要求越來越髙。而實(shí)時(shí)數(shù)據(jù)的動(dòng)態(tài)存取索引機(jī) 制作為系統(tǒng)提供各項(xiàng)數(shù)據(jù)服務(wù)的基礎(chǔ),其設(shè)計(jì)與實(shí)現(xiàn) 的優(yōu)劣直接影響到整個(gè)實(shí)時(shí)數(shù)據(jù)庫(kù)的運(yùn)行效率、數(shù)據(jù) 安全與彈性擴(kuò)展能力。因此,如何設(shè)計(jì)高效、高可靠 性、高可擴(kuò)展性的實(shí)時(shí)數(shù)據(jù)動(dòng)態(tài)存取索引機(jī)制,成為 實(shí)時(shí)數(shù)據(jù)庫(kù)研究領(lǐng)域的一項(xiàng)關(guān)鍵問題。關(guān)注于上層控制策略的用戶對(duì)底層數(shù)據(jù)實(shí)時(shí)存取 系統(tǒng)的封裝性要求也日益增強(qiáng),更多的用戶希望川人 最的廉價(jià)服務(wù)器來實(shí)現(xiàn)系統(tǒng)存取性能的疊加,同時(shí)希 望系統(tǒng)能
8、克服掉分布式系統(tǒng)相較于單體系統(tǒng)的白然缺 陷和瓶頸問題。現(xiàn)有實(shí)時(shí)數(shù)據(jù)存儲(chǔ)動(dòng)態(tài)存取索引方而的研究通過 將實(shí)時(shí)數(shù)據(jù)的組織特點(diǎn)與應(yīng)用特性結(jié)合山2】,從而提高 數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)、查詢性能。當(dāng)前主流實(shí)時(shí)數(shù)據(jù)庫(kù) 產(chǎn)晶雖然能夠在一定程度上實(shí)現(xiàn)分布式存儲(chǔ),但服務(wù) 器節(jié)點(diǎn)z間運(yùn)行相對(duì)獨(dú)立,任務(wù)協(xié)同性不足,難以靈 活實(shí)現(xiàn)數(shù)據(jù)擴(kuò)展與遷移,其帶冇master性質(zhì)的節(jié)點(diǎn)又 會(huì)成為系統(tǒng)可靠性、可擴(kuò)展性和廉價(jià)性的瓶頸。而現(xiàn) 有的互聯(lián)網(wǎng)行業(yè)的分布式存儲(chǔ)系統(tǒng),如hadoop、 cassandra、lucene151等,面向的數(shù)據(jù)對(duì)象是相對(duì)獨(dú) 立的數(shù)據(jù)塊,無法直接匹配流程工業(yè)領(lǐng)域?qū)Υ罅窟B續(xù) 推送的數(shù)據(jù)的實(shí)時(shí)存取的特殊需求。由于no
9、sql技術(shù)具有面向海最數(shù)據(jù)應(yīng)用、規(guī)模 動(dòng)態(tài)擴(kuò)展、系統(tǒng)町川性與町靠性高等特點(diǎn),本文通過 將nosql技術(shù)結(jié)合流程工業(yè)領(lǐng)域?qū)?shù)據(jù)系統(tǒng)的特殊需 要,提出一種基于分布式系統(tǒng)的實(shí)時(shí)數(shù)據(jù)動(dòng)態(tài)存取索 引機(jī)制,在保證數(shù)據(jù)存取實(shí)時(shí)性的基礎(chǔ)上,有效提高 了實(shí)吋數(shù)據(jù)庫(kù)的海量數(shù)據(jù)存儲(chǔ)與處理能力,能夠適應(yīng) 當(dāng)前流程工業(yè)企業(yè)對(duì)數(shù)據(jù)高可用性、高可靠性的需求。1概述1.1系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)如圖1所示。采集器上送的數(shù)據(jù)通過分 布式通訊服務(wù)平臺(tái)分別存儲(chǔ)至系統(tǒng)的多個(gè)節(jié)點(diǎn)中形成 多重冗余,當(dāng)某個(gè)節(jié)點(diǎn)無法正常工作而造成數(shù)據(jù)點(diǎn)備 份失效時(shí),其他備份仍能夠正常存儲(chǔ)、檢索,提供與 失效節(jié)點(diǎn)完全一致的數(shù)據(jù)服務(wù)。在數(shù)據(jù)庫(kù)系統(tǒng)屮,事 務(wù)服務(wù)負(fù)責(zé)數(shù)據(jù)
10、庫(kù)系統(tǒng)中所冇請(qǐng)求的悸理,查詢服務(wù) 為數(shù)據(jù)庫(kù)客戶提供統(tǒng)一的杳詢接口。在數(shù)據(jù)安全性方 而,通過多個(gè)數(shù)據(jù)服務(wù)器間產(chǎn)生不同數(shù)量的冗余備份, 從而區(qū)別對(duì)待關(guān)鍵數(shù)據(jù)與普通數(shù)據(jù),兼顧系統(tǒng)成木與 可靠性。系統(tǒng)中的分布式通訊服務(wù)平臺(tái)是一個(gè)分布式的通 訊系統(tǒng),又可以稱為消息系統(tǒng),為復(fù)雜網(wǎng)絡(luò)、多平臺(tái) 下的應(yīng)用提供消息接收、發(fā)送服務(wù),保障數(shù)據(jù)傳輸?shù)?可靠性、實(shí)時(shí)性、安全性和高效性。采集器采集器采集器分布式通訊服務(wù)平臺(tái)!數(shù)據(jù)服務(wù)器數(shù)抑;眼務(wù)器數(shù)撫服務(wù)器數(shù)據(jù)a .*數(shù)據(jù)b、數(shù)據(jù)匕h:器數(shù)訶!集*數(shù)據(jù)e i*數(shù)抑;aa圖1分布式實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)圖1.2數(shù)據(jù)存儲(chǔ)方案設(shè)計(jì)多個(gè)對(duì)等的服務(wù)器節(jié)點(diǎn)、采集器以及應(yīng)用客戶端 通過接入到
11、分布式通訊服務(wù)平臺(tái),構(gòu)成統(tǒng)一的分布式 實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)。本文結(jié)合了一致性哈希算法(7'8-91 及dht算法i,設(shè)計(jì)了一種基于虛擬token的索引機(jī) 制,確定了各個(gè)服務(wù)器節(jié)點(diǎn)對(duì)測(cè)點(diǎn)數(shù)據(jù)的接收范偉i。 系統(tǒng)的數(shù)據(jù)存儲(chǔ)流程可分為以k5步:(1)采集器對(duì)實(shí)吋數(shù)據(jù)進(jìn)行采集和整理、匯總 后直接通過分布式通訊服務(wù)平臺(tái)發(fā)往實(shí)時(shí)數(shù)據(jù)接收服 務(wù);(2)不同的數(shù)據(jù)可根據(jù)其重要性配置不同份數(shù) 的副本;(3)根據(jù)數(shù)據(jù)的副木情況,木文所敘述的機(jī)制 將采集器的數(shù)據(jù)定位到h標(biāo)節(jié)點(diǎn);(4)將實(shí)時(shí)數(shù)據(jù)上送至對(duì)應(yīng)的服務(wù)器節(jié)點(diǎn);(5)服務(wù)器節(jié)點(diǎn)進(jìn)行解包,將數(shù)據(jù)點(diǎn)名按照一致 性哈希算法映射為數(shù)據(jù)點(diǎn)id,按照各個(gè)服務(wù)器節(jié)點(diǎn)所 指
12、定的令牌號(hào)將相應(yīng)id的數(shù)據(jù)發(fā)送至指定的服務(wù)器 中,從而進(jìn)入各個(gè)服務(wù)器的內(nèi)部數(shù)據(jù)處理過程;(6)當(dāng)節(jié)點(diǎn)不可川或接近磁盤空間的存儲(chǔ)上限 時(shí),系統(tǒng)將根據(jù)木文所提供的機(jī)制智能地為采集器分 配一個(gè)新的服務(wù)器節(jié)點(diǎn)來推送數(shù)據(jù)。1.3數(shù)據(jù)查詢方案設(shè)計(jì)數(shù)據(jù)查詢分為歷史數(shù)據(jù)查詢和實(shí)時(shí)數(shù)據(jù)的訂閱查 詢兩個(gè)部分。系統(tǒng)對(duì)實(shí)時(shí)數(shù)據(jù)的訂閱查詢的請(qǐng)求有如下3個(gè)步 驟:(1)根據(jù)虛擬token機(jī)制和系統(tǒng)所維護(hù)的集群 狀態(tài)變化口志所記錄的當(dāng)前服務(wù)器節(jié)點(diǎn)對(duì)token的管 轄情況,計(jì)算出待杳測(cè)點(diǎn)所在的服務(wù)器節(jié)點(diǎn):(2)訂閱查詢服務(wù)向該服務(wù)器節(jié)點(diǎn)訂閱實(shí)時(shí)數(shù) 據(jù);(3)當(dāng)集群狀態(tài)變化,致使該待查測(cè)點(diǎn)的數(shù)據(jù)被 推送到其他服務(wù)器節(jié)點(diǎn)上時(shí),系
13、統(tǒng)將訂閱查詢服務(wù)引 領(lǐng)至新的服務(wù)器節(jié)點(diǎn)上進(jìn)行訂閱查詢。系統(tǒng)對(duì)丿力史數(shù)據(jù)的杳詢請(qǐng)求有如下4個(gè)步驟:(1)根據(jù)虛擬token機(jī)制和系統(tǒng)所維護(hù)的集群 狀態(tài)變化日志所記錄的當(dāng)前服務(wù)器節(jié)點(diǎn)對(duì)token的管 轄情況,以及查詢的起止時(shí)間,計(jì)算出待查測(cè)點(diǎn)在查 詢起止時(shí)間范圍內(nèi),每個(gè)時(shí)間段上的歷史數(shù)據(jù)分別位 于哪個(gè)服務(wù)器節(jié)點(diǎn)上。如果該測(cè)點(diǎn)有副本,則同時(shí)提 供副木數(shù)據(jù)何:個(gè)吋刻分別位于哪個(gè)服務(wù)辭節(jié)點(diǎn)上;(2)分布式事務(wù)調(diào)度服務(wù)將根據(jù)(1)中提供的 測(cè)點(diǎn)數(shù)據(jù)及副本數(shù)據(jù)在不同時(shí)間段上在個(gè)服務(wù)器節(jié)點(diǎn) 的分布情況,將該杳詢事務(wù)分解為多個(gè)子事務(wù),形成 一 個(gè)高效的并發(fā)查詢策略。(3)歷史數(shù)據(jù)查詢服務(wù)將向(1)和(2)中指定
14、 的服務(wù)器節(jié)點(diǎn)查詢。(4)分布式事務(wù)調(diào)度服務(wù)最終歸并查詢結(jié)果,返 回給客戶端。卜文將重點(diǎn)介紹基于虛擬token空間的動(dòng)態(tài)存取 的索引機(jī)制。2機(jī)制基本原理2.1定義:虛擬token空間用一個(gè)全局唯一的groupid標(biāo)識(shí)一個(gè)眾多測(cè)點(diǎn)的 集合,集合的生成方式依賴于用戶所定義的測(cè)點(diǎn)的物 理或邏輯關(guān)聯(lián)性。這樣,系統(tǒng)中的海量測(cè)點(diǎn)會(huì)被初步 歸并成多個(gè)group o定義token空間為oxoooo-oxffff0對(duì)于每個(gè) group,將其groupid作為md5哈希算法的輸入屋, 其哈希結(jié)果為形如 352d fcd6 fcc7 9137 95e6 e963 7a72 74d9的32位16進(jìn)制數(shù),取其前四位(上
15、例中為352d), 作為這個(gè)group的token值。無論系統(tǒng)中服務(wù)器集群 狀態(tài)如何變化,每個(gè)group始終對(duì)應(yīng)這個(gè)token, 這時(shí),可以在上述的虛擬空間中找到該group的位置,2.2集群狀態(tài)變化日志的職能集群狀態(tài)變化h志分為集群實(shí)時(shí)狀態(tài)變化h志和 集群歷史狀態(tài)變化fi志兩部分。(1)集群實(shí)時(shí)狀態(tài)變化fi志記錄了集群中每個(gè)服 務(wù)器節(jié)點(diǎn)當(dāng)前時(shí)間管轄了虛擬token空間屮的token 范i韋i,以token (以下簡(jiǎn)稱t) nodeld (服務(wù)器節(jié)點(diǎn)id,以下簡(jiǎn)稱n)序列的形式記錄,形如:t'n&njztn_xnn_jnnn上述序列記錄了當(dāng)前時(shí)刻的nodeld為1的節(jié)點(diǎn) 管轄了
16、虛擬token空間中服務(wù)器節(jié)點(diǎn)、的錚轄范圍t1 到t2,即token值在t1到t2之間的group在當(dāng)前 時(shí)段都寫入到n1上,token值在t2到t3 z間的group 在當(dāng)前時(shí)段都寫入到n2上,以此類推,每次更新實(shí) 時(shí)的t-n序列時(shí)還需記錄更新時(shí)間。該h志常駐內(nèi)存。(2)集群歷史狀態(tài)變化口志記錄了在虛擬token 空間屮每段token在每個(gè)時(shí)刻分別被哪個(gè)node所管 轄。其具體記錄格式下文屮將會(huì)詳述。2.3數(shù)據(jù)讀寫過程在流程工業(yè)領(lǐng)域小,數(shù)據(jù)寫事務(wù)的特點(diǎn)是寫過程 持續(xù)不間斷(采集器源源不斷地上送實(shí)吋數(shù)據(jù))、數(shù)據(jù) 結(jié)構(gòu)簡(jiǎn)單、對(duì)寫入效率耍求高。數(shù)據(jù)讀事務(wù)分為歷史數(shù)據(jù)查詢和實(shí)時(shí)訂閱查詢兩 種:歷史數(shù)
17、據(jù)杳詢的特點(diǎn)是查詢時(shí)間可能很長(zhǎng)(1-2 年),查詢數(shù)據(jù)量大;實(shí)時(shí)數(shù)據(jù)訂閱的特點(diǎn)是對(duì)實(shí)時(shí)性 要求高。下而針對(duì)這些特點(diǎn),簡(jiǎn)述數(shù)據(jù)讀寫的基本流程。寫數(shù)據(jù)時(shí),首先,系統(tǒng)根據(jù)川戶對(duì)測(cè)點(diǎn)關(guān)聯(lián)性的 配置為每個(gè)采集器所采集的為測(cè)點(diǎn)分組(前文所述的 group),每個(gè)采集器采集的測(cè)點(diǎn)被分成至多10個(gè) group,如果有重要的、需要備份實(shí)吋數(shù)據(jù)的點(diǎn),則 耍被多個(gè)group包含。然后按照0.1中所述的方法計(jì) 算每個(gè)group的token值,再查閱集群實(shí)時(shí)狀態(tài)變化 口志,得到這個(gè)group屮的測(cè)點(diǎn)應(yīng)推送至的目標(biāo)服務(wù) 器節(jié)點(diǎn),當(dāng)該服務(wù)器節(jié)點(diǎn)不可用時(shí),系統(tǒng)將按照后文 所述的算法口動(dòng)分配一個(gè)或多個(gè)新的服務(wù)器節(jié)點(diǎn)來代 償管轄
18、該不可用節(jié)點(diǎn)的原管轄的token空間范圍。訂閱實(shí)時(shí)數(shù)據(jù)時(shí),先計(jì)算所訂閱的測(cè)點(diǎn)所在的 group的groupid的token值,再根據(jù)實(shí)時(shí)狀態(tài)變化 h志,得到這個(gè)group |的該測(cè)點(diǎn)所在的服務(wù)器節(jié)點(diǎn), 當(dāng)集樣狀態(tài)變化致使該token歸屬于另外的服務(wù)器節(jié) 點(diǎn)所管轄,系統(tǒng)將有通知,訂閱者接到通知后,按照 實(shí)時(shí)狀態(tài)變化口志的變更,到新的服務(wù)器節(jié)點(diǎn)上訂閱。3方案實(shí)現(xiàn)3.1集群狀態(tài)變化日志的數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)在整個(gè)系統(tǒng)初始化的時(shí)候,系統(tǒng)根據(jù)集群中服務(wù) 器的數(shù)量生成一個(gè)初始的t-n序列:tnt2n2t3n3 tn-inn-itnnn,集群實(shí)時(shí)狀態(tài)變化日志和集群歷史狀態(tài)變 化u志都記錄這個(gè)t-n全序列。當(dāng)
19、服務(wù)器集群狀態(tài)變化時(shí),系統(tǒng)將以后文所述的 算法生成一個(gè)新的tn序列。集群歷史狀態(tài)變化日志 分為全量序列和增量序列兩部分。每次集群狀態(tài)變化 后,更新t-n全序列記錄到集群實(shí)時(shí)狀態(tài)變化li志中, 將增量t-n序列append到集群歷史狀態(tài)變化u志屮。 當(dāng)記錄條數(shù)達(dá)到一個(gè)“全量周期值”(可選為1000 即集群狀態(tài)變化1000次)吋,將集群實(shí)吋變化h志所 記錄的當(dāng)前時(shí)刻的全量t-n序列同步給集群歷史狀態(tài) 變化口志,集群歷史狀態(tài)變化口志開始新的一輪增量 記錄。一個(gè)周期值內(nèi)的集群狀態(tài)變化稱為一個(gè)變化周 期,每個(gè)周期維護(hù)一張快查表。下面以三個(gè)集群狀態(tài) 變化情景為例,說明該機(jī)制。情景1:在時(shí)刻,n?達(dá)到了所設(shè)
20、定的飽和閾值 (可設(shè)定為該服務(wù)器節(jié)點(diǎn)磁盤容量的80%左右)。假 設(shè)根據(jù)后文所述的集群狀態(tài)變化策略,t2到t3范圍內(nèi) 的token應(yīng)由n6來管轄,則集群實(shí)時(shí)狀態(tài)變化口志 所記錄的內(nèi)容變更為:tntnt:n3tn-】n,】tnnn。同時(shí), 集群歷史狀態(tài)變化h志記錄了受影響的token范圍的 t-n 序列:1、2皿1、3。上式表示相比于t。時(shí)刻的實(shí)時(shí)狀態(tài)序列,t】時(shí)刻 的集群丿力史狀態(tài)變化為,t2到t3范圍內(nèi)的token應(yīng) 由2來管轄。情景2:假設(shè)n*所管轄的節(jié)點(diǎn)范圍是此 吋在t2時(shí)刻失效。假設(shè)根據(jù)后文所述的集樣狀態(tài)變 化策略,tx-t9范圍內(nèi)的token被管轄的情況如f: tgt8.5范圍內(nèi)的to
21、ken被t,o管轄,t8 5-t9范圍內(nèi)的 token被兒管轄,則相比于s時(shí)刻,集群歷史狀態(tài) 變化日志追加一條記錄:tsnioksnntoo情景3:假設(shè)在(3吋刻有新的服務(wù)器節(jié)點(diǎn)m5加 入。假設(shè)根據(jù)后文所述的集群狀態(tài)變化策略,“5將 代償其他服務(wù)器節(jié)點(diǎn)管轄一部分token范圍,則相比 于b時(shí)刻,集群歷史狀態(tài)變化日志追加一條記錄: t12m5t13;t18n15t2o; t23m5t24。集群歷史狀態(tài)變化示意圖如圖3所示。token0000itff tn全序列h» ii時(shí)則管箱范田變化的117token 空間t2 / (2時(shí)刻許熔范19變化的toks空間t3 / 3時(shí)刻存轄耘田變化的t
22、oken空何:2時(shí)刻百韜范田僉化的token空何tn當(dāng)集腓狀態(tài)變化n次后.車新記錄tn全序列tn+1tn+2圖3集柑力史狀態(tài)變化示總圖集群實(shí)時(shí)狀態(tài)變化【i志的數(shù)據(jù)結(jié)構(gòu)為:structtimecurrenttime; 當(dāng)前吋間stringcurrcnttn; /當(dāng)前 t-n 全序列)卜面介紹集群歷史狀態(tài)變化fl志的數(shù)據(jù)結(jié)構(gòu):首先引入速查表table。對(duì)于每個(gè)變化周期,維 護(hù)一個(gè)速查表。用一維的bitset數(shù)組 tab l e 65536* 1000存儲(chǔ)圖4所示的速查表的信息。圖 4中,tablei*65536+j表示token值為i、本變化周 期內(nèi)集群狀態(tài)變化次數(shù)為j的元索是否屬于某段增量 狀態(tài)
23、變化記錄,1表示在,0表示不在。例如,在t2 吋刻,管轄情況變更的token范圍為t-t2o形如 tsn-.ots.snrjg的增量序列,在表中表示為第丁8-丁9列,第 2行的元素置為“1”。介t<*wi奶hm0000n12i1111112(211111111/1111ia、flfl1111z1/1t ft111n111x、1111/ / 圖4 個(gè)集群變化周期內(nèi)的速查表集群歷史狀態(tài)變化口志的數(shù)據(jù)結(jié)構(gòu)由下 面兒個(gè) 部分組成:(1)全局唯一的 map<time, n, r>其中,n表示該時(shí)刻(time)對(duì)應(yīng)的是第n個(gè)變(2)對(duì)于每張速查表,有:map< n, r, map&
24、lt;starttoken,增量 tn 序列字符 串>其中,starttoken表示每一個(gè)“1”序列的起始 tokeno3.1.2查詢過程首先,客戶端將待查的測(cè)點(diǎn)所在的group做一次 md5哈希運(yùn)算,取其前四位,即為該group的token0對(duì)于訂閱杳詢,直接通過訪問集群實(shí)時(shí)狀態(tài)變化 fi志,發(fā)起group的位置查詢請(qǐng)求,收到詰求后,動(dòng)態(tài) 索引服務(wù)先將groupid再次做md5哈希運(yùn)算,得到其 對(duì)應(yīng)的token,再讀取實(shí)時(shí)口志中記錄的t-n序列, 找到其token在當(dāng)前時(shí)刻所在的node。対于歷史數(shù)據(jù)查詢,步驟如下:(1)橫向定位:先根據(jù)全局唯一的map<time, n, r&g
25、t;,將查詢的時(shí)間范圍初步分解到每一個(gè)集群變 化周期的速查表中。對(duì)于每一張速查表,再根據(jù)時(shí)間, 按map<time, n, r>定位到對(duì)應(yīng)的行上。(2)縱向定位:通過再次做md5哈希運(yùn)算,得到 待查測(cè)點(diǎn)所在group的token值,玄接以下標(biāo)的方式 定位到表小的一列。至此,得到了待查測(cè)點(diǎn)在每個(gè)待 查時(shí)間段上屬于表中的哪個(gè)單元。(3)縱向回溯定位:如果(2)中的那個(gè)單元的 值為“1”,則直接執(zhí)行步驟(4);如果值為“0”, 則在表中豎肓向上搜索,肓到遇到值為“1”的單元格 為止(如果上推到表的第一行還未遇到“1”,則無需 執(zhí)行(4),該token的管轄范圍在本集群變化周期內(nèi) 未改變,
26、直接到本全量周期內(nèi)的全量t-n序列中查找 待查測(cè)點(diǎn)所在的node) 0(4) 橫向回溯定位:(3)中縱向回溯至“1”處 后,向左尋找這個(gè)“1 ”所在的“1 ”序列中笫一個(gè)“1 ” 的 token,根據(jù) map< n, r, map<starttoken,增量 t-n 序列字符串>>定位到待杳點(diǎn)在對(duì)應(yīng)時(shí)刻所在的node。(5) 合并査詢結(jié)來,返回。為該節(jié)點(diǎn)管轄的每一段連續(xù)的token制定代償策略:對(duì)于待代償?shù)拿恳欢蝨oken,冇如下步驟:1.首先檢查其左、右節(jié)點(diǎn)是否滿足:(1)crelat iveremnin(left) > 0;(2 ) crelativerenm
27、in (right) > 0;(3) cremain (left) +c】zn (right) >t (downnode)3.2集群狀態(tài)變化生成策略算法*cdensity首先介紹系統(tǒng)的負(fù)載均衡服務(wù)要為集群狀態(tài)變化 生成策略算法實(shí)時(shí)地記錄哪些服務(wù)器節(jié)點(diǎn)負(fù)載指標(biāo)。(1) 每個(gè)服務(wù)器節(jié)點(diǎn)的當(dāng)前剩余磁盤容量cgain (nodeld)。(2) 每個(gè)服務(wù)器節(jié)點(diǎn)的當(dāng)前管轄的token數(shù)t(nodetd)。(3) 所有服務(wù)器節(jié)點(diǎn)剩余磁盤總?cè)萘縞allreino(4) 系統(tǒng)總剩余容量密度:(4) 其中,t (downnode)為失效節(jié)點(diǎn)原管轄的token范圍中的連續(xù)的一段。若滿足,按照czn( l
28、oft)與cz (right)的比例分配左、右節(jié)點(diǎn)分別為之代 償?shù)膖oken范圍。若冇 crelativere»ain (left/right) > 0 并且 crema in (left/right) t (downnode ) *c density» 則 由其左/右節(jié)點(diǎn)獨(dú)立承擔(dān)代償功能。2. 若不滿足上述條件,則對(duì)于它的原管轄的每段token的人小tk(k為該服務(wù)器節(jié)點(diǎn)管轄多段不連續(xù)的c densitycalizin/65536。token范圍的編號(hào)),分別由近向遠(yuǎn)、左右同時(shí)地搜(5) 每個(gè)服務(wù)器節(jié)吧 點(diǎn)的當(dāng)前相對(duì)剩余磁盤容量索滿足這一條件的其它服務(wù)器節(jié)點(diǎn)。3.
29、若遍歷整個(gè)系統(tǒng)還無法找到一個(gè)/兩個(gè)符合條crelativerewin (nodetd)二(nodeld) -t (nodeld) 件的節(jié)點(diǎn),則重新由近向遠(yuǎn)、左右同時(shí)地搜索三個(gè)及v/density o這個(gè)指標(biāo)表征了該節(jié)點(diǎn)除完成自身管轄外,還有多少代償他人管轄的能力。集群狀態(tài)變化生成原則冇三點(diǎn):(1) 盡量讓負(fù)載較輕的節(jié)點(diǎn)代償失效節(jié)點(diǎn)或空i'可接近耗盡的節(jié)點(diǎn)管轄的token范圍。(2) 在一個(gè)吋刻內(nèi),盡量讓一個(gè)節(jié)點(diǎn)管轄連續(xù)的token區(qū)間。(3) 對(duì)于-段token范圍的不同時(shí)刻,讓它被盡 最少的節(jié)點(diǎn)管轄。根據(jù)以上原則,得到集群狀態(tài)變化策略:當(dāng)有服務(wù)辭節(jié)點(diǎn)磁盤容量超出閾值或失效吋,要三個(gè)以
30、上節(jié)點(diǎn)的crelativinz和大于tk的情況,以三個(gè)或三個(gè)以上的節(jié)點(diǎn)代償管轄tk04機(jī)制優(yōu)勢(shì)(1 )適應(yīng)了應(yīng)用于流程工業(yè)的分布式實(shí)時(shí)數(shù)據(jù)庫(kù) 的特殊性需求:數(shù)據(jù)采集器不斷地推送每一個(gè)測(cè)點(diǎn)的 實(shí)時(shí)監(jiān)測(cè)值,而查詢者既有訂閱實(shí)時(shí)數(shù)據(jù)的需求,乂 有查詢一個(gè)長(zhǎng)吋間段的歷史數(shù)據(jù)的需求。使推送者和 查詢者不必關(guān)心系統(tǒng)內(nèi)部是否有機(jī)器存滿、失效等問 題。(2)系統(tǒng)可擴(kuò)展性好,可適用于不同規(guī)模的集群。(3)兼容了多重副本兀余的數(shù)據(jù)對(duì)靠性策略、分 布式事務(wù)調(diào)度策略、分布式錯(cuò)誤監(jiān)測(cè)及恢復(fù)策略、數(shù) 據(jù)對(duì)象化服務(wù)策略等上層策略。上層策略可以不依賴 于本系統(tǒng)而靈活掛載、替換。(4)解決了普通dht、一致性哈希機(jī)制的性能問
31、題和中心化節(jié)點(diǎn)機(jī)制的中心節(jié)點(diǎn)瓶頸問題:系統(tǒng)只保 存了與服務(wù)器數(shù)量大致相當(dāng)?shù)妮p量級(jí)全局信息,規(guī)避 了上述二者的缺陷。(5)服務(wù)器節(jié)點(diǎn)對(duì)虛擬token空間的動(dòng)態(tài)管轄 機(jī)制避免了服務(wù)器網(wǎng)絡(luò)上的數(shù)據(jù)流遷移,以輕量級(jí)的 控制流代替。5測(cè)試與驗(yàn)證5.1測(cè)試環(huán)境數(shù)據(jù)服務(wù)器為dell990dt,數(shù)據(jù)模擬采集器和客戶端均為dell 380 ,運(yùn)行windows 7操作系統(tǒng)。5.2測(cè)試步首先配置100000個(gè)測(cè)點(diǎn),其id為1-100000,使 用4臺(tái)服務(wù)器搭建服務(wù)器集群,數(shù)據(jù)備份參數(shù)n設(shè)置 為2。點(diǎn)數(shù)總規(guī)模為10w點(diǎn)。使用2臺(tái)數(shù)據(jù)模擬采集 辭模擬10w點(diǎn)正弦波采集數(shù)據(jù),采集周期為2s,通 過分布式通訊服務(wù)平臺(tái)向服
32、務(wù)器集群發(fā)送數(shù)據(jù),使單 臺(tái)服務(wù)器平均實(shí)時(shí)存儲(chǔ)數(shù)據(jù)量達(dá)到2.5w點(diǎn)。為測(cè)試在測(cè)點(diǎn)向各服務(wù)器節(jié)點(diǎn)推送速度不等的情 況下,系統(tǒng)是否能白調(diào)整其負(fù)載情況,按如下步驟進(jìn) 行測(cè)試:(1)使用2臺(tái)數(shù)據(jù)模擬采集器模擬10w點(diǎn)正弦 波采集數(shù)據(jù),采集周期為2s,向系統(tǒng)推送數(shù)據(jù)1000s。 此時(shí)統(tǒng)計(jì)一分鐘內(nèi)各服務(wù)器節(jié)點(diǎn)的cpu平均使 用率、內(nèi)存使用率如表1所示:表i cpu、內(nèi)存使用率(例1)服務(wù)器節(jié)點(diǎn)cpu平均使用 率內(nèi)存平均使用 率nodel約33%約25%node2約28%約31%node3約27%約27%nodc4約28%約27%(2)找出 20000 個(gè) token 值為 0x0000-0x4000 的測(cè)點(diǎn)
33、,采集周期改為is;找出20000個(gè)token值為oxaooo-oxffff的測(cè)點(diǎn), 采集周期改為5s,繼續(xù)推送1000s,再次統(tǒng)計(jì)一分鐘 內(nèi)各服務(wù)器節(jié)點(diǎn)的cpu平均使用率、內(nèi)存使用率如表 2所示:表2 cpu、內(nèi)存使用率(例2)服務(wù)器節(jié)點(diǎn)cpu平均使用 率內(nèi)存平均使用 率nodel約26%約33%node2約24%約31%node3約31%約28%node4約29%約29%5.3測(cè)試結(jié)論結(jié)果表明,在人為構(gòu)造的負(fù)載不均衡的條件下, 系統(tǒng)可以較好地滿足分布式數(shù)據(jù)庫(kù)的性能要求。本節(jié)通過搭建測(cè)試平臺(tái),對(duì)本文所設(shè)計(jì)的分布式 系統(tǒng)的主要功能和性能做了測(cè)試,測(cè)試結(jié)果表明,木 文所設(shè)計(jì)的分布式實(shí)時(shí)數(shù)據(jù)庫(kù)的智能索引系統(tǒng)可以將 多個(gè)單體大型實(shí)時(shí)數(shù)據(jù)庫(kù)較好地協(xié)調(diào)管理起來,達(dá)到 流程丁業(yè)實(shí)時(shí)數(shù)據(jù)庫(kù)的功能和性能要求。由于流程工業(yè)領(lǐng)域?qū)?shí)時(shí)數(shù)據(jù)庫(kù)的性能、可靠性
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度解除股權(quán)質(zhì)押擔(dān)保合同
- 2025年度金融衍生品投資協(xié)議合同
- 二零二五年度房屋租賃押金退還及租金減免合同
- 二零二五年度按揭房屋借款合同貸款用途規(guī)范合同
- 二零二五年度股東權(quán)益保障與公司社會(huì)責(zé)任履行協(xié)議
- 二零二五年度勞動(dòng)合同解除協(xié)議范本及員工關(guān)系處理
- 2025年度木工精細(xì)加工及定制家具制作協(xié)議書
- 二零二五年度健身器材銷售門店租賃協(xié)議
- 二零二五年度物流園區(qū)運(yùn)營(yíng)傭金支付及供應(yīng)鏈管理合同
- 中班安全教育:不碰玻璃瓷器
- 日常采購(gòu)維修合同范本
- 企業(yè)員工職務(wù)犯罪預(yù)防
- (2025春新教材)部編版七年級(jí)語文下冊(cè)全冊(cè)教案
- 5《水污染》教學(xué)設(shè)計(jì)-2023-2024學(xué)年科學(xué)六年級(jí)下冊(cè)冀人版
- 2024 河北公務(wù)員考試(筆試、省直、A類、C類)4套真題及答案
- 統(tǒng)編版歷史 選擇性必修二第12課 《水陸交通的變遷》課件(共27張)
- 幼兒園開學(xué)教職工安全教育培訓(xùn)
- 小學(xué)生雙擁活動(dòng)國(guó)防教育
- 《得勝的基督新婦》課件
- 煙囪拆除工程施工方案設(shè)計(jì)及安全措施
- 2024年執(zhí)業(yè)藥師繼續(xù)教育專業(yè)答案
評(píng)論
0/150
提交評(píng)論