韓藝?yán)? 李富年 陳志丹
摘? 要: 橋梁監(jiān)測(cè)系統(tǒng)可以有效保障服役橋梁的安全性、耐久性和完整性。長(zhǎng)期穩(wěn)定的橋梁結(jié)構(gòu)監(jiān)測(cè)數(shù)據(jù)是橋梁監(jiān)測(cè)系統(tǒng)安全運(yùn)行的基礎(chǔ)。由于監(jiān)測(cè)數(shù)據(jù)的高采樣頻率的特性,導(dǎo)致現(xiàn)有的關(guān)系型數(shù)據(jù)庫(kù)無(wú)法完成實(shí)時(shí)、高頻、海量數(shù)據(jù)存儲(chǔ)的任務(wù)。該文以贛江特大橋?yàn)楸O(jiān)測(cè)對(duì)象,針對(duì)監(jiān)測(cè)傳感器數(shù)據(jù)中時(shí)間標(biāo)簽的唯一性,采用基于時(shí)序數(shù)據(jù)的InfluxDB數(shù)據(jù)存儲(chǔ)引擎,為監(jiān)控、統(tǒng)計(jì)、分析、告警和管理等提供數(shù)據(jù)訪問(wèn)服務(wù),并在此基礎(chǔ)上設(shè)計(jì)實(shí)現(xiàn)了一套橋梁監(jiān)測(cè)系統(tǒng)。實(shí)踐表明,該時(shí)序數(shù)據(jù)存儲(chǔ)引擎能夠提供海量的存儲(chǔ)能力,同時(shí)兼顧極高的數(shù)據(jù)訪問(wèn)性能,為橋梁監(jiān)測(cè)提供可行的數(shù)據(jù)存儲(chǔ)方案。
關(guān)鍵詞: 橋梁監(jiān)測(cè); 系統(tǒng)設(shè)計(jì); 數(shù)據(jù)存儲(chǔ); 時(shí)序數(shù)據(jù)庫(kù); InfluxDB; 數(shù)據(jù)訪問(wèn)
Abstract: The bridge′s monitoring system can effectively guarantee the safety, durability and integrity of the existing bridges. The long?term stable monitoring data of bridge structure is the basis of safe operation of the bridge monitoring system. Due to the high sampling frequency of monitoring data, the existing relational database cannot complete the task of real?time, high?frequency and mass data storage. The Ganjiang Bridge is taken as the monitoring object in this paper. In allusion to the uniqueness of time label in the monitoring sensor data, InfluxDB data storage engine based on time series data is used to provide data access services for monitoring, statistics, analysis, alarm and management. On this basis, a set of bridge monitoring system is designed and implemented. The experiments show that the time?series data storage engine can provide massive storage capacity, meanwhile can take into account extremely high data access performance, which provides a feasible data storage solution for the bridge monitoring.
Keywords: bridge monitoring; system design; data storage; time series database; InfluxDB; data access
0? 引? 言
橋梁結(jié)構(gòu)監(jiān)測(cè)系統(tǒng)的數(shù)據(jù)存儲(chǔ)模塊需要為監(jiān)控、統(tǒng)計(jì)、分析、告警和管理等提供數(shù)據(jù)訪問(wèn)服務(wù)[1]。傳統(tǒng)的數(shù)據(jù)存儲(chǔ)方案普遍使用關(guān)系數(shù)據(jù)庫(kù)(如Oracle,MySQL等),大量使用關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)時(shí)會(huì)帶來(lái)諸多問(wèn)題:
1) 需要海量存儲(chǔ)設(shè)備。以采用頻率為50 Hz的加速度傳感器為例,每天有432萬(wàn)條數(shù)據(jù),單索引的情況下占用存儲(chǔ)約為4 GB,存儲(chǔ)1年則需要約2 TB的磁盤空間。而要更準(zhǔn)確地反映橋梁結(jié)構(gòu)振動(dòng),則采樣頻率一般遠(yuǎn)高于50 Hz,其對(duì)磁盤空間的需求將呈指數(shù)級(jí)增長(zhǎng)[2]。目前,普通磁盤陣列的容量很難滿足上述海量數(shù)據(jù)的存儲(chǔ)需求,需隨時(shí)間不斷添置磁盤陣列設(shè)備,會(huì)帶來(lái)存儲(chǔ)成本的不斷提升。
2) 數(shù)據(jù)檢索效率會(huì)逐漸變慢。為保證檢索效率,關(guān)系型數(shù)據(jù)庫(kù)常采用分區(qū)、索引等方式增強(qiáng)檢索效率,但隨著存儲(chǔ)容量指數(shù)級(jí)增長(zhǎng),其效率也會(huì)逐步下降[3]。因此,針對(duì)高密度的監(jiān)測(cè)數(shù)據(jù)訪問(wèn)需求,要求存儲(chǔ)系統(tǒng)能夠提供海量的存儲(chǔ)能力,同時(shí)兼顧極高的數(shù)據(jù)訪問(wèn)性能,能夠在秒級(jí)甚至毫秒級(jí)獲取所需要的數(shù)據(jù)斷面[4]。
針對(duì)傳感器數(shù)據(jù)中時(shí)間標(biāo)簽的唯一性,采用時(shí)序數(shù)據(jù)庫(kù)具備無(wú)可比擬的技術(shù)優(yōu)勢(shì),其能存儲(chǔ)高頻變化的海量數(shù)據(jù),同時(shí)還能實(shí)現(xiàn)對(duì)海量數(shù)據(jù)的快速訪問(wèn)。本文以贛江特大橋?yàn)楸O(jiān)測(cè)對(duì)象,針對(duì)橋梁監(jiān)測(cè)系統(tǒng)實(shí)時(shí)、高頻和海量的存儲(chǔ)需求,采用了先進(jìn)開源的InfluxDB數(shù)據(jù)存儲(chǔ)引擎。它是一個(gè)沒(méi)有外部依賴的時(shí)間序列數(shù)據(jù)庫(kù),適用于記錄度量、事件及執(zhí)行分析。實(shí)踐表明,相比于關(guān)系型數(shù)據(jù)庫(kù),InfluxDB時(shí)序數(shù)據(jù)庫(kù)在采集存儲(chǔ)橋梁結(jié)構(gòu)數(shù)據(jù)方面具有明顯的性能優(yōu)勢(shì)[5]。
1? 贛江特大橋監(jiān)測(cè)系統(tǒng)總體結(jié)構(gòu)
贛州贛江特大橋位于贛江支流章江、貢江兩江匯合口下游,全長(zhǎng)2.156 km,主跨長(zhǎng)300 m,主跨塔底以上索塔全高120.6 m,是國(guó)內(nèi)首座時(shí)速350 km大跨度高速鐵路斜拉橋。為了保證贛江特大橋的健康安全運(yùn)行,需要監(jiān)測(cè)大橋運(yùn)營(yíng)階段在車輛與風(fēng)載作用下主梁的振動(dòng)、撓度和應(yīng)變等響應(yīng),安裝的較為完整的監(jiān)測(cè)系統(tǒng)對(duì)橋梁進(jìn)行實(shí)時(shí)監(jiān)測(cè)和實(shí)時(shí)分析。贛江特大橋監(jiān)測(cè)主要包括橋梁部分,橋梁用傳感器376個(gè),軌道用傳感器76個(gè),全橋合計(jì)有各類傳感器467個(gè)。監(jiān)測(cè)系統(tǒng)硬件拓?fù)鋱D如圖1所示。
根據(jù)贛江特大橋監(jiān)測(cè)系統(tǒng)的需求將系統(tǒng)分為數(shù)據(jù)存儲(chǔ)服務(wù)與數(shù)據(jù)應(yīng)用服務(wù),如圖2所示。實(shí)現(xiàn)橋梁傳感器設(shè)備運(yùn)行狀態(tài)實(shí)時(shí)監(jiān)測(cè)、實(shí)時(shí)分析、實(shí)時(shí)報(bào)警、橋梁構(gòu)件維護(hù)、檢修管理等功能。其中,數(shù)據(jù)存儲(chǔ)服務(wù)系統(tǒng)由兩部分組成,基于時(shí)間的傳感器數(shù)據(jù)使用時(shí)序數(shù)據(jù)庫(kù)InfluxDB數(shù)據(jù)庫(kù)存儲(chǔ),按照“時(shí)標(biāo)?值”的數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)。設(shè)備管理、用戶管理、巡檢管理等模塊使用關(guān)系型數(shù)據(jù)庫(kù)MySQL存儲(chǔ)。
2? 基于InfluxDB的監(jiān)測(cè)數(shù)據(jù)存儲(chǔ)系統(tǒng)
2.1? InfluxDB數(shù)據(jù)存儲(chǔ)系統(tǒng)
本系統(tǒng)采用開源的InfluxDB為數(shù)據(jù)存儲(chǔ)引擎,其內(nèi)置HTTP API,方便存儲(chǔ)和檢索,數(shù)據(jù)可以被標(biāo)記,允許非常靈活的查詢。數(shù)據(jù)應(yīng)用服務(wù)主要包括實(shí)時(shí)數(shù)據(jù)服務(wù)、歷史數(shù)據(jù)服務(wù)、故障診斷預(yù)警服務(wù)、設(shè)備管理服務(wù),巡檢管理服務(wù)、用戶管理服務(wù)。其中,實(shí)時(shí)、歷史數(shù)據(jù)由InfluxDB提供數(shù)據(jù)支持,故障診斷預(yù)警服務(wù)通過(guò)Kapacitor進(jìn)行分析診斷,分布式消息系統(tǒng)Kafka負(fù)責(zé)數(shù)據(jù)消息分發(fā)。Kapacitor為傳感器數(shù)據(jù)提供實(shí)時(shí)監(jiān)控服務(wù),使用Kapacitor處理實(shí)時(shí)數(shù)據(jù),按照橋梁監(jiān)測(cè)規(guī)范監(jiān)測(cè)傳感器數(shù)據(jù)[6]。Kapacitor是一個(gè)開源框架,用來(lái)處理、監(jiān)控和警告時(shí)間序列數(shù)據(jù),可以重復(fù)在InfluxDB中運(yùn)行查詢,然后在查詢結(jié)果上分析數(shù)據(jù),將分析結(jié)果發(fā)送給InfluxDB存儲(chǔ)。同時(shí),為了將告警消息及時(shí)傳給用戶,使用分布式消息系統(tǒng)Kafka將告警數(shù)據(jù)傳給在線用戶。
2.2? TSM存儲(chǔ)架構(gòu)
InfluxDB的數(shù)據(jù)存儲(chǔ)架構(gòu)TSM(Timestamp Segments Merged)是在LSM(Log?Structured Merge)架構(gòu)的基礎(chǔ)上針對(duì)時(shí)序數(shù)據(jù)做了針對(duì)性的存儲(chǔ)改進(jìn),LSM將數(shù)據(jù)保持在內(nèi)存中,達(dá)到指定的大小限制后,將這些數(shù)據(jù)批量寫入磁盤,讀取需要合并磁盤與內(nèi)存中的數(shù)據(jù)。所以寫入性能大大提升,讀取則需要訪問(wèn)較多的磁盤文件,LSM放棄了部分?jǐn)?shù)據(jù)讀能力,換取寫入的最大化[7]。TSM為了優(yōu)化LSM所存在的讀取性能問(wèn)題,基于時(shí)序數(shù)據(jù)的特點(diǎn),優(yōu)化讀取寫入的性能。TSM存儲(chǔ)架構(gòu)主要由Cache,Wal,TSM File,Compactor組成,其結(jié)構(gòu)如圖3所示。
TSM存儲(chǔ)結(jié)構(gòu)中每一個(gè)分片(Share)都包含Cache,Wal,TSM File,Compactor四個(gè)部分。分片是為了通過(guò)時(shí)間快速定位要查詢的數(shù)據(jù),同時(shí)也可以通過(guò)分片批量刪除數(shù)據(jù)。保留策略(Retention Policy,RP)中設(shè)置數(shù)據(jù)過(guò)期時(shí)間,數(shù)據(jù)過(guò)期時(shí)會(huì)批量刪除指定時(shí)間分片的數(shù)據(jù)。
Cache是存在于內(nèi)存中的緩存數(shù)據(jù),寫入的數(shù)據(jù)會(huì)同時(shí)存入Cache和Wal中。Wal文件結(jié)構(gòu)如圖4所示。
當(dāng)Cache大小達(dá)到一定閾值時(shí)會(huì)將當(dāng)前Cache進(jìn)行一次快照,清空當(dāng)前Cache,同時(shí)創(chuàng)建一個(gè)新的Wal文件,刪除之前的Wal文件,將快照中的數(shù)據(jù)寫入到TSM文件中。用Cache存儲(chǔ)數(shù)據(jù),一是為了加快數(shù)據(jù)寫入,二是可以快速進(jìn)行數(shù)據(jù)排序。Wal文件的作用是為了持久化數(shù)據(jù),通過(guò)Wal文件恢復(fù)還沒(méi)有寫入到TSM文件中的數(shù)據(jù)到Cache中。
Compactor組件在后臺(tái)持續(xù)運(yùn)行,每隔1 s會(huì)檢查是否需要壓縮合并數(shù)據(jù)。壓縮合并數(shù)據(jù)分為兩個(gè)操作:一是將Cache中大小達(dá)到閾值的數(shù)據(jù),進(jìn)行快照;二是合并當(dāng)前的TSM文件,將多個(gè)小的TSM文件合并成一個(gè),減少文件數(shù)量。
2.3? TSM數(shù)據(jù)文件結(jié)構(gòu)
TSM文件結(jié)構(gòu)如圖5所示。數(shù)據(jù)是以Block為最小讀取單元存儲(chǔ)在文件中,文件數(shù)據(jù)塊使用B+樹索引,而且數(shù)據(jù)塊和索引結(jié)構(gòu)存儲(chǔ)在同一個(gè)文件中[8]。TSM文件由Data Section以及Index Section兩個(gè)部分組成,前者表示存儲(chǔ)時(shí)序數(shù)據(jù)的Block,后者存儲(chǔ)文件級(jí)別B+樹索引Block,用于在文件中快速查詢時(shí)間序列數(shù)據(jù)塊。
Data Block時(shí)序數(shù)據(jù)在內(nèi)存中表示為一個(gè)哈希表,結(jié)構(gòu)為
Data Block結(jié)構(gòu)如圖6所示。
Data Block由四部分構(gòu)成:Type,Length,Timestamps以及Values。
1) Type:seriesKey對(duì)應(yīng)的時(shí)間序列的數(shù)據(jù)類型。
2) Length:Timestamps的數(shù)量,用于讀取Timestamps區(qū)域數(shù)據(jù),解析Block。
3) Timestamps:時(shí)間值存儲(chǔ)在一起形成的數(shù)據(jù)集。
4) Values:指標(biāo)值存儲(chǔ)在一起形成的數(shù)據(jù)集,同一種Key對(duì)應(yīng)的指標(biāo)值數(shù)據(jù)類型都是相同的。
為了在不占用過(guò)多內(nèi)存的前提下提高查詢效率,TSM文件引入了索引Index Block結(jié)構(gòu),TSM文件索引和HFile文件索引基本相同[9]。TSM文件索引數(shù)據(jù)由一系列索引Block組成,每個(gè)索引Block的結(jié)構(gòu)如圖7所示。
Index Block由Index Block Meta以及一系列Index Entry構(gòu)成:
1) Index Block Meta核心的字段是Key,表示索引Block內(nèi)所有Index Entry索引的時(shí)序數(shù)據(jù)都是該Key對(duì)應(yīng)的時(shí)序數(shù)據(jù)。
2) Index Entry表示一個(gè)索引字段,指向?qū)?yīng)的數(shù)據(jù)塊,指向的數(shù)據(jù)塊由Offset唯一確定,Offset表示該數(shù)據(jù)塊在文件中的偏移量,Size表示數(shù)據(jù)塊大小。Min Time和Max Time表示數(shù)據(jù)塊中時(shí)序數(shù)據(jù)集合的最小時(shí)間以及最大時(shí)間,在以時(shí)間范圍查找時(shí)可以根據(jù)這兩個(gè)字段進(jìn)行快速過(guò)濾[10]。
2.4? InfluxDB性能對(duì)比結(jié)果與分析
選取關(guān)系型數(shù)據(jù)庫(kù)MySQL和時(shí)序數(shù)據(jù)庫(kù)TimeScaleDB與InfluxDB對(duì)比時(shí)序數(shù)據(jù)的寫入和讀取速度,在相同數(shù)據(jù)量下對(duì)比存儲(chǔ)空間占用。測(cè)試時(shí)寫入每次插入數(shù)據(jù)量統(tǒng)一為5 000,使用Timestamp?Value表結(jié)構(gòu)。測(cè)試環(huán)境:Ubuntu18.04 , Intel[?] CoreTM i5?4590 CPU @ 3.30 GHz,內(nèi)存8 GB,硬盤50 GB SSD。實(shí)驗(yàn)結(jié)果如表1所示。
實(shí)驗(yàn)結(jié)果表明,針對(duì)時(shí)序數(shù)據(jù)來(lái)說(shuō),時(shí)序數(shù)據(jù)庫(kù)在磁盤占用和數(shù)據(jù)讀取方面很占優(yōu)勢(shì),而且隨著數(shù)據(jù)規(guī)模的擴(kuò)大,查詢速度沒(méi)有明顯的下降,擁有明顯的優(yōu)勢(shì)。同時(shí),InfluxDB使用的TSM數(shù)據(jù)存儲(chǔ)引擎在使用相同的表結(jié)構(gòu)且不做任何表結(jié)構(gòu)層面的優(yōu)化的情況下,InfluxDB的寫入性能約為TimeScaleDB的2倍,InfluxDB的磁盤空間占用約為TimeScaleDB的50%。因此使用InfluxDB作為系統(tǒng)的數(shù)據(jù)存儲(chǔ)工具,能夠滿足橋梁監(jiān)測(cè)中對(duì)海量數(shù)據(jù)存儲(chǔ)的需求,保證系統(tǒng)的實(shí)時(shí)穩(wěn)定運(yùn)行。
3? 贛江特大橋監(jiān)測(cè)系統(tǒng)軟件
3.1? 軟件功能模塊
針對(duì)贛江特大橋監(jiān)測(cè)的需求,利用傳感器、無(wú)線通信和計(jì)算機(jī)等技術(shù)手段,開發(fā)設(shè)計(jì)出一套較為完善的實(shí)時(shí)監(jiān)測(cè)平臺(tái)。該監(jiān)測(cè)平臺(tái)能夠有效地將測(cè)量點(diǎn)的實(shí)時(shí)數(shù)據(jù)傳送給監(jiān)測(cè)中心,通過(guò)智能傳感器網(wǎng)絡(luò)對(duì)環(huán)境內(nèi)的突發(fā)事件進(jìn)行準(zhǔn)確的分析和判斷。監(jiān)測(cè)人員可以通過(guò)監(jiān)控計(jì)算機(jī)主動(dòng)查詢監(jiān)測(cè)點(diǎn)的實(shí)時(shí)狀況,做出人為決策并發(fā)送控制指令。其軟件功能結(jié)構(gòu)圖如圖8所示。
3.2? 虛擬現(xiàn)實(shí)模塊
為了更好地展示各測(cè)量點(diǎn)的三維空間分布和監(jiān)測(cè)數(shù)據(jù)之間的關(guān)系,利用虛擬現(xiàn)實(shí)技術(shù),將數(shù)據(jù)變化與分析結(jié)果通過(guò)三維模型直觀表達(dá)。本文采用Three.js框架實(shí)現(xiàn)橋梁虛擬現(xiàn)實(shí)開發(fā)。虛擬現(xiàn)實(shí)系統(tǒng)包括橋梁模型與場(chǎng)景、傳感器布置位置、傳感器信息、傳感器實(shí)時(shí)數(shù)據(jù)、橋梁構(gòu)件病害等信息。橋梁虛擬現(xiàn)實(shí)系統(tǒng)場(chǎng)景如圖9所示。用戶可通過(guò)模型直觀地觀察到布置在橋梁各個(gè)位置的傳感器,包括風(fēng)速、變形、應(yīng)力、振動(dòng)、索力等傳感器,利用InfluxDB數(shù)據(jù)引擎可以直觀地在三維空間顯示傳感器的實(shí)時(shí)數(shù)據(jù)。
通過(guò)三維界面,可以將橋梁結(jié)構(gòu)構(gòu)件(包括橋面、橋墩、索塔、斜拉索等)與巡檢病害信息相關(guān)聯(lián),用戶可以通過(guò)點(diǎn)擊橋梁結(jié)構(gòu)查看橋梁對(duì)應(yīng)結(jié)構(gòu)的病害信息,如圖10所示。
3.3? 數(shù)據(jù)監(jiān)測(cè)與預(yù)警
數(shù)據(jù)監(jiān)測(cè)使用WebSocket技術(shù)實(shí)現(xiàn)實(shí)時(shí)顯示。WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議,允許服務(wù)端主動(dòng)向客戶端推送數(shù)據(jù)。在高頻率實(shí)時(shí)數(shù)據(jù)讀取中使用Ajax輪詢會(huì)造成大量的HTTP請(qǐng)求,浪費(fèi)帶寬資源。WebSocket能夠更實(shí)時(shí)地進(jìn)行通信,保證實(shí)時(shí)數(shù)據(jù)正常顯示。實(shí)時(shí)加速度傳感器數(shù)據(jù)顯示如圖11所示。
數(shù)據(jù)預(yù)警使用Kapacitor與Kafka。Kapacitor是一個(gè)開源數(shù)據(jù)處理框架,可以創(chuàng)建警報(bào)和檢測(cè)異常。使用Kapacitor監(jiān)測(cè)InfluxDB,從InfluxDB數(shù)據(jù)流傳輸?shù)終apacitor后,聚合并對(duì)每個(gè)數(shù)據(jù)中心運(yùn)行的每個(gè)傳感器的使用情況進(jìn)行分組,然后根據(jù)閾值觸發(fā)警報(bào)。將警報(bào)數(shù)據(jù)寫入預(yù)警表的同時(shí),使用Kapacitor提供的Kafka接口,在檢測(cè)到異常警報(bào)數(shù)據(jù)后,Kapacitor將數(shù)據(jù)發(fā)送給Kafka,服務(wù)端接收到Kafka的數(shù)據(jù)后再通過(guò)WebSocket將數(shù)據(jù)分發(fā)給在線用戶,實(shí)現(xiàn)在線用戶的實(shí)時(shí)預(yù)警。
4? 結(jié)? 語(yǔ)
本文根據(jù)橋梁監(jiān)測(cè)中的海量數(shù)據(jù)需求,分析了時(shí)序數(shù)據(jù)庫(kù)在橋梁監(jiān)測(cè)系統(tǒng)中作為數(shù)據(jù)存儲(chǔ)平臺(tái)的可行性,并以時(shí)序數(shù)據(jù)庫(kù)InfluxDB為數(shù)據(jù)存儲(chǔ)基礎(chǔ),構(gòu)建了一套橋梁監(jiān)測(cè)系統(tǒng),實(shí)現(xiàn)了橋梁結(jié)構(gòu)數(shù)據(jù)的存儲(chǔ)、實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)、異常預(yù)警等基本功能。該在線監(jiān)測(cè)系統(tǒng)已經(jīng)投入實(shí)際運(yùn)用,運(yùn)行效果良好,為橋梁結(jié)構(gòu)的長(zhǎng)期穩(wěn)定運(yùn)行提供了有效的支撐。
參考文獻(xiàn)
[1] 馬宏偉,聶振華.橋梁安全監(jiān)測(cè)最新研究進(jìn)展與思考[J].力學(xué)與實(shí)踐,2015(2):161?170.
[2] 王衛(wèi)彪.監(jiān)測(cè)與監(jiān)控技術(shù)在橋梁施工中的作用分析[J].交通世界,2016(1):82?83.
[3] 俞姝穎,吳小兵,陳貴海,等.無(wú)線傳感器網(wǎng)絡(luò)在橋梁健康監(jiān)測(cè)中的應(yīng)用[J].軟件學(xué)報(bào),2015(6):1486?1498.
[4] 陳純.流式大數(shù)據(jù)實(shí)時(shí)處理技術(shù)、平臺(tái)及應(yīng)用[J].大數(shù)據(jù),2017(4):1?8.
[5] 劉金.大規(guī)模集群狀態(tài)時(shí)序數(shù)據(jù)采集、存儲(chǔ)與分析[D].北京:北京郵電大學(xué),2018.
[6] MAHMOUDREZA Tahmassebpour. A new method for time?series big data effective storage [J]. IEEE access, 2017, 5: 10694?10699.
[7] ZHANG Weitao, XU Yinlong, LI Yongkun, et al. Improving write performance of LSMT?based key?value store [J]. IEEE computer society, 2016(1): 553?560.
[8] 施恩,顧大權(quán),馮徑,等.B+樹索引機(jī)制的研究及優(yōu)化[J].計(jì)算機(jī)應(yīng)用研究,2017(6):1766?1769.
[9] ZHOU Wei, LU Jin, LUAN Zhongzhi, et al. SNB?index: a SkipNet and B+ tree based auxiliary cloud index [J]. Cluster computing, 2014, 17(2): 453?462.
[10] 石磊,黃高攀,喬雄.基于內(nèi)存數(shù)據(jù)庫(kù)的索引算法研究[J].信息技術(shù),2016(11):139?142.
[11] 于承新,張國(guó)建,趙永謙,等.基于數(shù)字測(cè)量技術(shù)的橋梁監(jiān)測(cè)及預(yù)警系統(tǒng)[J].山東大學(xué)學(xué)報(bào)(工學(xué)版),2020(1):115?122.