《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種實(shí)時(shí)數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的研究
一種實(shí)時(shí)數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的研究
2016年微型機(jī)與應(yīng)用第14期
張玉生,劉煒東,黨引弟,胡愛蘭
(華北計(jì)算機(jī)系統(tǒng)工程研究所,北京 100083)
摘要: 為了適應(yīng)國(guó)產(chǎn)化指揮顯示控制系統(tǒng)中對(duì)大批量過(guò)程數(shù)據(jù)的實(shí)時(shí)快速存儲(chǔ)管理的需求,結(jié)合實(shí)時(shí)系統(tǒng)技術(shù)和數(shù)據(jù)庫(kù)技術(shù),在自主研究設(shè)計(jì)的力數(shù)實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)上,研究設(shè)計(jì)了適合當(dāng)前背景的內(nèi)存數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)、磁盤歷史數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)及數(shù)據(jù)模型,它能夠更好地滿足當(dāng)前指揮顯示系統(tǒng)的實(shí)際需求。
Abstract:
Key words :

  張玉生,劉煒東,黨引弟,胡愛蘭

  (華北計(jì)算機(jī)系統(tǒng)工程研究所,北京 100083)

  摘要:為了適應(yīng)國(guó)產(chǎn)化指揮顯示控制系統(tǒng)中對(duì)大批量過(guò)程數(shù)據(jù)的實(shí)時(shí)快速存儲(chǔ)管理的需求,結(jié)合實(shí)時(shí)系統(tǒng)技術(shù)和數(shù)據(jù)庫(kù)技術(shù),在自主研究設(shè)計(jì)的力數(shù)實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)上,研究設(shè)計(jì)了適合當(dāng)前背景的內(nèi)存數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)、磁盤歷史數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)及數(shù)據(jù)模型,它能夠更好地滿足當(dāng)前指揮顯示系統(tǒng)的實(shí)際需求。

  關(guān)鍵詞:實(shí)時(shí)數(shù)據(jù)庫(kù);存儲(chǔ)模型;數(shù)據(jù)結(jié)構(gòu);指揮顯示

0引言

  數(shù)據(jù)存儲(chǔ)與管理作為指揮顯示控制系統(tǒng)中的核心部分,承擔(dān)著整個(gè)系統(tǒng)中各個(gè)環(huán)節(jié)產(chǎn)生的大批量數(shù)據(jù)的實(shí)時(shí)存儲(chǔ)任務(wù),為指揮顯示系統(tǒng)提供了穩(wěn)定的數(shù)據(jù)支撐。一方面,現(xiàn)有的關(guān)系型數(shù)據(jù)庫(kù)難以滿足日益增長(zhǎng)的大規(guī)模數(shù)據(jù)的實(shí)時(shí)存儲(chǔ)需求;另一方面,由于工程的特定相關(guān)性,商用的實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)很難滿足特定工程數(shù)據(jù)和業(yè)務(wù)邏輯的特殊性要求。

  現(xiàn)有實(shí)時(shí)數(shù)據(jù)庫(kù)只支持單點(diǎn)較少類型的測(cè)試數(shù)據(jù)存儲(chǔ),完全不能滿足現(xiàn)在各種類型數(shù)據(jù)存儲(chǔ)的需求,所以研究一種能夠支持多種數(shù)據(jù)類型、支持大批量數(shù)據(jù)存儲(chǔ)的實(shí)時(shí)數(shù)據(jù)庫(kù)十分必要。

  因此本文在力數(shù)實(shí)時(shí)數(shù)據(jù)庫(kù)的基礎(chǔ)上,結(jié)合實(shí)際需要和實(shí)時(shí)數(shù)據(jù)庫(kù)的特點(diǎn),對(duì)內(nèi)存數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu)與模型、磁盤數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)進(jìn)行了重新設(shè)計(jì),使其既支持關(guān)系型數(shù)據(jù)庫(kù)的多種組合類型的測(cè)點(diǎn)數(shù)據(jù),同時(shí)也有實(shí)時(shí)數(shù)據(jù)庫(kù)的海量實(shí)時(shí)存儲(chǔ)性能。

1研究現(xiàn)狀

  實(shí)時(shí)數(shù)據(jù)庫(kù)的研究設(shè)計(jì)始于20世紀(jì)80年代中期。實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)一般是商業(yè)企業(yè)信息化建設(shè)和工業(yè)控制智能化的基礎(chǔ),在商業(yè)化的實(shí)時(shí)數(shù)據(jù)庫(kù)產(chǎn)品開發(fā)上,國(guó)外有不少著名公司在原有自營(yíng)業(yè)務(wù)的基礎(chǔ)上推出了相應(yīng)的實(shí)時(shí)數(shù)據(jù)庫(kù)產(chǎn)品[1]。

  國(guó)內(nèi)的實(shí)時(shí)數(shù)據(jù)庫(kù)研究開始得晚一些。隨著國(guó)內(nèi)工業(yè)界對(duì)分布式控制系統(tǒng)(Distributed Control System,DCS)的廣泛引進(jìn)和應(yīng)用,教育科技界率先進(jìn)行研究實(shí)時(shí)數(shù)據(jù)庫(kù)理論的研究。目前對(duì)實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)(RealTime Database System,RTDBS)的研究主要來(lái)解決實(shí)時(shí)系統(tǒng)中的數(shù)據(jù)管理問(wèn)題或?yàn)镽TDBS提供時(shí)間驅(qū)動(dòng)調(diào)度和資源分配算法,而且目前的實(shí)時(shí)數(shù)據(jù)庫(kù)基本上只適用于特定的應(yīng)用領(lǐng)域和開發(fā)環(huán)境。

2實(shí)時(shí)數(shù)據(jù)庫(kù)特點(diǎn)

  實(shí)時(shí)數(shù)據(jù)庫(kù)是數(shù)據(jù)庫(kù)技術(shù)和實(shí)時(shí)數(shù)據(jù)處理技術(shù)相結(jié)合的產(chǎn)物,需要同時(shí)滿足數(shù)據(jù)一致性和實(shí)時(shí)性這兩個(gè)要求。實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)主要目標(biāo)是保證在規(guī)定的時(shí)間內(nèi)盡可能多地完成任務(wù),而不像傳統(tǒng)數(shù)據(jù)庫(kù)那樣盡量公平地為所有任務(wù)分配系統(tǒng)資源。內(nèi)存數(shù)據(jù)庫(kù)是實(shí)時(shí)數(shù)據(jù)庫(kù)的重要部分,它一般用來(lái)處理實(shí)時(shí)數(shù)據(jù),進(jìn)行事務(wù)調(diào)度和報(bào)警,并與安全控制部分和上層應(yīng)用及用戶進(jìn)行交互[2]。

  磁盤歷史數(shù)據(jù)庫(kù)一般用來(lái)保存實(shí)時(shí)過(guò)程數(shù)據(jù)的歷史記錄,即過(guò)時(shí)的過(guò)程數(shù)據(jù)。其中文件的索引和數(shù)據(jù)組織結(jié)構(gòu)、內(nèi)存緩存策略及磁盤I/O模型等是制約歷史數(shù)據(jù)庫(kù)發(fā)展的瓶頸,這些對(duì)整個(gè)實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)的效率和性能都有著至關(guān)重要的影響[3]。

  概括起來(lái),實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)有以下幾個(gè)特點(diǎn)[4]。

  (1)時(shí)間約束:實(shí)時(shí)數(shù)據(jù)庫(kù)無(wú)論對(duì)數(shù)據(jù)有效性還是事務(wù)都有明確的時(shí)間限制。實(shí)時(shí)系統(tǒng)中,大量的過(guò)程數(shù)據(jù)體現(xiàn)著當(dāng)前外部環(huán)境的實(shí)時(shí)狀態(tài)。因此實(shí)時(shí)數(shù)據(jù)庫(kù)中的數(shù)據(jù)大多是短暫的,當(dāng)數(shù)據(jù)不再能反映外部的狀態(tài)時(shí),就成了無(wú)效數(shù)據(jù)。

 ?。?)事務(wù)調(diào)度:實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)的正確性需要同時(shí)依賴于事務(wù)的邏輯結(jié)果和產(chǎn)生該邏輯結(jié)果所需要的時(shí)間。需要綜合考慮事務(wù)的執(zhí)行所需時(shí)間、截止時(shí)間以及緊急程度等有關(guān)影響因素。

 ?。?)數(shù)據(jù)存儲(chǔ):實(shí)時(shí)數(shù)據(jù)的存儲(chǔ)和管理,為系統(tǒng)內(nèi)外的相關(guān)功能提供準(zhǔn)確高效的實(shí)時(shí)數(shù)據(jù)服務(wù)。實(shí)時(shí)數(shù)據(jù)庫(kù)的過(guò)程數(shù)據(jù)處理模塊需要以服務(wù)進(jìn)程常駐內(nèi)存,以保證讀取的實(shí)時(shí)性。對(duì)于隨著時(shí)間推移轉(zhuǎn)變成無(wú)效的過(guò)程數(shù)據(jù),可存放在磁盤等永久性存儲(chǔ)介質(zhì)中,以便于后續(xù)的查看或者數(shù)據(jù)的統(tǒng)計(jì)分析等應(yīng)用。因此在研究設(shè)計(jì)實(shí)時(shí)數(shù)據(jù)庫(kù)時(shí)時(shí)候,需要平衡存儲(chǔ)空間和所需時(shí)間之間的矛盾,以確保系統(tǒng)的實(shí)時(shí)性要求。

 ?。?)數(shù)據(jù)壓縮:在真實(shí)應(yīng)用的數(shù)據(jù)存儲(chǔ)系統(tǒng)中,還要考慮如何高效處理海量數(shù)據(jù)。如果對(duì)原始數(shù)據(jù)進(jìn)行原樣存儲(chǔ),將會(huì)有大量?jī)?nèi)存、磁盤空間和CPU時(shí)間的耗費(fèi),因此需要對(duì)數(shù)據(jù)進(jìn)行高效壓縮,以提高實(shí)時(shí)數(shù)據(jù)庫(kù)的存儲(chǔ)性能。

 ?。?)具有開放性:一個(gè)完整的實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)是數(shù)據(jù)統(tǒng)一管理的平臺(tái),可以在不同產(chǎn)品間傳送信息。例如,實(shí)時(shí)數(shù)據(jù)庫(kù)對(duì)不同廠商的不同產(chǎn)品有豐富的數(shù)據(jù)采集以及專用的實(shí)時(shí)服務(wù)的接口。

3內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

  實(shí)時(shí)內(nèi)存數(shù)據(jù)庫(kù)的物理組織包括存儲(chǔ)結(jié)構(gòu)、索引結(jié)構(gòu)等[5]。內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)主要包括ID索引結(jié)構(gòu)(用來(lái)把關(guān)系型的聯(lián)合主鍵映射成實(shí)時(shí)數(shù)據(jù)庫(kù)的唯一ID)、塊內(nèi)數(shù)據(jù)參考結(jié)構(gòu)(數(shù)據(jù)塊內(nèi)把一組測(cè)點(diǎn)的數(shù)據(jù)按固定順序可擴(kuò)展的靈活格式組織成一條類關(guān)系型的數(shù)據(jù)記錄)以及單個(gè)測(cè)點(diǎn)數(shù)據(jù)塊內(nèi)數(shù)據(jù)組織結(jié)構(gòu)。

  3.1ID索引結(jié)構(gòu)

  該背景項(xiàng)目中一般由任務(wù)號(hào)、設(shè)備號(hào)、目標(biāo)號(hào)及時(shí)間戳共同標(biāo)識(shí)一組測(cè)點(diǎn)數(shù)據(jù)值,并由數(shù)據(jù)類型type字段來(lái)標(biāo)識(shí)屬于何種數(shù)據(jù),所以由此4個(gè)字段可以映射索引成數(shù)據(jù)庫(kù)的唯一ID主鍵。其中ID占4 B,其他各字段各占1 B,如表1所示。

003.jpg

  按表1 ID映射結(jié)構(gòu),采集來(lái)的各測(cè)點(diǎn)數(shù)據(jù)均可由以上幾個(gè)聯(lián)合字段映射生成唯一ID主鍵,用于后面各階段的處理和存儲(chǔ)。

  3.2各類型數(shù)據(jù)塊內(nèi)數(shù)據(jù)參考結(jié)構(gòu)

  各過(guò)程測(cè)點(diǎn)數(shù)據(jù)塊內(nèi)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)由不同種類型的數(shù)據(jù)組成,各種類型數(shù)據(jù)對(duì)應(yīng)的個(gè)數(shù)按照固定順序排列,分別為double型、int型、char型、float型、short型,在數(shù)據(jù)塊內(nèi)按此順序及個(gè)數(shù)進(jìn)行數(shù)據(jù)打包和解析。各種類型數(shù)據(jù)的個(gè)數(shù)均使用1 B的unsigned char型數(shù)據(jù)表示(1 B最多可以表示255個(gè),足以適用絕大多數(shù)的數(shù)據(jù)格式),各種類型所占用的長(zhǎng)度及表示個(gè)數(shù)的字段長(zhǎng)度如表2所示?!?/p>

004.jpg

  例如,表2各字段值分別為1203,1453429819116,2,3,0,1,2即表示類型ID為1203的測(cè)點(diǎn)數(shù)據(jù),依次由2個(gè)double型字段、3個(gè)int型字段、0個(gè)char型字段、1個(gè)float型字段和2個(gè)short型字段組成。

  3.3內(nèi)存數(shù)據(jù)庫(kù)塊內(nèi)數(shù)據(jù)組織結(jié)構(gòu)

  單個(gè)測(cè)點(diǎn)數(shù)據(jù)的數(shù)據(jù)組織結(jié)構(gòu)由數(shù)據(jù)頭基本信息、測(cè)點(diǎn)數(shù)據(jù)值組成。其中數(shù)據(jù)頭包括ID(占用4 B,上文已說(shuō)明)、時(shí)間戳(占用8 B,表示為long型,取值為自1970年1月1日0時(shí)起到該時(shí)間的毫秒數(shù),精確到毫秒)、測(cè)點(diǎn)值個(gè)數(shù)nums(占用1 B,即表2中的一共由多少個(gè)上述類型的數(shù)據(jù)值組成),測(cè)點(diǎn)數(shù)據(jù)值組由具體的共nums個(gè)對(duì)應(yīng)上述類型的數(shù)據(jù)值組成,結(jié)構(gòu)圖如圖1所示。

 

001.jpg

  各測(cè)點(diǎn)塊內(nèi)數(shù)據(jù)按照?qǐng)D1結(jié)構(gòu)組織數(shù)據(jù),按ID檢索塊內(nèi)數(shù)據(jù)參考結(jié)構(gòu),按其對(duì)應(yīng)格式及順序進(jìn)行組織、打包、存儲(chǔ)和解析。

4磁盤歷史數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)

  實(shí)時(shí)數(shù)據(jù)庫(kù)內(nèi)核服務(wù)系統(tǒng)對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行打包緩存并同時(shí)寫入磁盤文件系統(tǒng),單個(gè)數(shù)據(jù)包大小為1 024×4=4 09圖2數(shù)據(jù)包內(nèi)部數(shù)據(jù)組織結(jié)構(gòu)6 B,一個(gè)包映射到文件系統(tǒng)和磁盤中的一個(gè)block數(shù)據(jù)塊,數(shù)據(jù)塊結(jié)構(gòu)如圖2所示。

002.jpg

  其中包ID占用4 B,開始時(shí)間占用8 B(同上),截止時(shí)間為最后一測(cè)點(diǎn)數(shù)據(jù)的時(shí)間減去開始時(shí)間所得的差值,表示為4 B整型。此時(shí)打包數(shù)據(jù)包內(nèi)的各數(shù)據(jù)塊數(shù)據(jù)格式則和內(nèi)存數(shù)據(jù)庫(kù)中的單個(gè)測(cè)點(diǎn)數(shù)據(jù)塊格式略有不同,在其基礎(chǔ)上省略了ID,時(shí)間戳也同樣表示為與開始時(shí)間的時(shí)間差值,占用4 B。這樣相當(dāng)于對(duì)塊內(nèi)ID和時(shí)間戳進(jìn)行了壓縮,以減少空間。

5結(jié)論

  本文在力數(shù)實(shí)時(shí)數(shù)據(jù)庫(kù)的基礎(chǔ)上,對(duì)現(xiàn)有內(nèi)存測(cè)點(diǎn)數(shù)據(jù)結(jié)構(gòu)和歷史數(shù)據(jù)歸檔打包結(jié)構(gòu)進(jìn)行了重新研究設(shè)計(jì),能夠靈活擴(kuò)展存儲(chǔ)各種數(shù)據(jù)類型的測(cè)點(diǎn)數(shù)據(jù),滿足當(dāng)前系統(tǒng)需求。在研究過(guò)程中,本文也還存在一些不足,比如內(nèi)存數(shù)據(jù)索引結(jié)構(gòu)的優(yōu)化、歷史數(shù)據(jù)塊的進(jìn)一步壓縮等,這些都是本課題后續(xù)將要繼續(xù)深入研究的問(wèn)題。

參考文獻(xiàn)

  [1] 徐國(guó)風(fēng). 實(shí)時(shí)數(shù)據(jù)庫(kù)關(guān)鍵技術(shù)研究[D]. 西安:西安建筑科技大學(xué), 2006.

 ?。?] 王焱, 徐新國(guó), 朱廷劭. 一種工控領(lǐng)域內(nèi)存數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 微電子學(xué)與計(jì)算機(jī), 2012, 29(8):98101.

  [3] 曾強(qiáng). 實(shí)時(shí)歷史數(shù)據(jù)庫(kù)的設(shè)計(jì)與分析[D]. 成都:電子科技大學(xué), 2006.

 ?。?] 錢笑宇, 張彥武. 工業(yè)實(shí)時(shí)數(shù)據(jù)庫(kù)的研究和設(shè)計(jì)[J]. 計(jì)算機(jī)工程,2005, 31(1):9899.

 ?。?] 梁巧玉. 實(shí)時(shí)內(nèi)存數(shù)據(jù)庫(kù)數(shù)據(jù)組織結(jié)構(gòu)優(yōu)化策略研究[D]. 太原:太原科技大學(xué),2010.(收稿日期:20160320)


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。