《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于云技術的分布式實時數據庫系統的設計與實現
基于云技術的分布式實時數據庫系統的設計與實現
2017年電子技術應用第11期
焦冬冬1,張 晨2,房志奇1,康 衛1
1.華北計算機系統工程研究所,北京100083;2.北京科技大學,北京100083
摘要: 通過分析工業大數據的特點,提出并實現了一種基于云技術的分布式實時數據庫系統。該系統將云技術與實時數據庫技術相結合,既滿足工控對于數據實時性的要求,又具有高擴展性、高容錯性、高可靠性,滿足工業大數據的處理要求。實驗結果表明,該系統達到了設計要求。
中圖分類號: TP392
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.166788
中文引用格式: 焦冬冬,張晨,房志奇,等. 基于云技術的分布式實時數據庫系統的設計與實現[J].電子技術應用,2017,43(11):112-115,123.
英文引用格式: Jiao Dongdong,Zhang Chen,Fang Zhiqi,et al. Design and implementation of the distributed real-time database system based on the cloud technology[J].Application of Electronic Technique,2017,43(11):112-115,123.
Design and implementation of the distributed real-time database system based on the cloud technology
Jiao Dongdong1,Zhang Chen2,Fang Zhiqi1,Kang Wei1
1.National Computer System Engineering Research Institute of China,Beijing 100083,China; 2.University of Science and Technology Beijing,Beijing 100083,China
Abstract: By analyzing the characteristics of the industrial big data, this paper designs and implements a distributed real-time database system based on cloud technology. The system integrates the cloud technology with the real-time database technology. This system enables a host of real-time, benefits-load balancing, high extensibility, fault tolerance and high reliability, meets the processing requirements of industrial big data.
Key words : distributed real-time database; cloud technology; big data

0 引言

    目前實時數據庫系統廣泛應用于軍事、電信、電力、航空、工業控制、證券交易、物聯網等領域,隨著企業信息化快速建設,工業實時數據增長速度遠遠超出企業的預期。以電力行業發電側為例,電力生產自動化控制程度的提高,對諸如壓力、流量和溫度等指標的監測精度、頻度和準確度更高,帶來數據量的激增。就用電側而言,一次采集頻度的提升就會帶來數據體量的“指數級”變化[1]。另外,基于工業大數據[2]分析有助于企業優化績效,明確趨勢和模式,支持實時決策。

    分布式實時數據庫系統是分布式數據庫系統和實時數據庫系統相結合的產物,是事務和數據都可以具有定時特性或顯示定時限制的分布式數據庫系統。目前國內主要的分布式數據庫產品多采用多層的分布式技術,配置多套實時數據系統分別處理各自固定的采集器采集的數據,沒有實現數據存儲的透明性,不具備動態可擴展性。文獻[3]中提出了一種去中心化的分布式實時數據庫系統,使得系統具有更高的可用性,實現的是數據最終一致性,無法保證強一致性[4]。文獻[5]提出了一種基于通信平臺的分步式實時數據庫系統,系統具有較高的擴展性,但是通信平臺的負載較大,通信路徑較長。

    為此本文提出了一種基于云技術[6-8]的分布式實時數據庫管理系統的設計方案,將云技術與實時數據庫技術相結合,從而滿足工業大數據的處理要求,可以應用于石化、電力、鋼鐵、物聯網、氣象預報、物流跟蹤、生態監測等專業應用領域。

1 分布式實時數據庫系統總體設計

    基于云技術的分布式實時數據庫系統主要分為四大子系統:主節點(Masternode)、實時數據節點(RTDatanode)、客戶端和數據采集器。系統通過兼容HDFS[9]實現對工業非結構化數據的處理。系統的總體架構如圖1所示。

jsj1-t1.gif

1.1 主節點Masternode

    主節點是整個分布式實時數據庫系統的核心,主要用于維護整個系統的元數據信息,同時監管整個集群。主節點主要包括四個子系統:通信處理子系統、元數據鏡像和編輯日志管理子系統、數據節點管理子系統,以及元數據內存快照管理子系統,系統架構如圖2所示。

jsj1-t2.gif

    通信處理子系統主要有兩種實現方式:遠程過程調用接口和基于TCP或HTTP流式接口。主要用于客戶端和主節點、主節點和實時數據節點、主節點和備份主節點之間的通信。

    元數據鏡像和編輯日志管理子系統主要有兩個模塊:其一是處理非結構化數據的元數據鏡像和編輯日志管理模塊,通過移植HDFS的相應模塊實現;其二是工業實時數據的元數據鏡像和內存數據節點元數據日志管理子系統,用于將接收到的實時數據從內存中同步持久化到本地磁盤,在集群啟動時將元數據等加載到元數據內存快照管理子系統。

    數據節點管理子系統主要包括數據節點啟動模塊、心跳處理模塊、機架感知模塊、負載均衡模塊和非結構化數據的數據塊管理模塊。

    (1)數據節點啟動模塊主要用于數據節點的握手、注冊,對于非結構化數據需要上報數據塊信息。

    (2)心跳處理模塊主要用于心跳信息的處理和心跳檢查,心跳信息包括數據節點的身份信息、數據節點的負載信息,用于負載均衡模塊等;心跳檢查指的是根據設定的時間間隔檢查心跳信息,用于判斷數據節點的運行狀態。

    (3)負載均衡模塊根據心跳處理模塊得到負載信息,為每個數據節點賦予優先級。

    (4)機架感知模塊用于感知數據節點的機架信息。

    (5)非結構化數據的數據塊管理模塊通過兼容HDFS的相應模塊實現。

    元數據內存快照管理子系統主要用于在內存中維護主節點需要維護的元數據信息,實現實時數據的分布式存儲和檢索、用戶權限管理等。

1.2 實時數據節點RTDatanode

    實時數據節點負責處理工業過程數據和系統的元數據信息。實時數據節點主要分為三個部分:內存數據節點子系統、實時數據節點子系統、非結構化數據節點子系統。其中非結構化數據節點子系統通過兼容HDFS的Datanode實現。實時數據節點總體架構如圖3所示。

jsj1-t3.gif

    內存數據節點子系統用于分擔主節點元數據信息處理負載,維護部分系統元數據。

    實時數據節點子系統主要用于工業實時數據和歷史數據的處理,主要包括查詢子系統、內存快照子系統、日志子系統、歸檔子系統、通信子系統和實時文件系統rtfs[10]

    (1)查詢子系統主要包括實時數據的發布和歷史數據的查詢,采用線程池技術響應客戶端的請求。

    (2)內存快照子系統采用鏈表來實現,過程數據緩存在內存的數據緩存鏈表中,數更新線程將新數據更新進該鏈表。內存快照子系統采用POT樹索引結構[11]來管理內存中的數據。

    (3)日志子系統主要包括實時數據日志模塊和數據包日志模塊,數據包日志模塊用于防止數據包在發送隊列和接收隊列時系統故障引起的數據丟失。

    (4)歸檔子系統主要由壓縮和打包歸檔兩部分組成。壓縮采用旋轉門壓縮算法,壓縮之后,將數據打包寫入實時文件系統,如果失敗將數據寫入日志。

    (5)通信子系統主要有數據包發送緩沖模塊、元數據布隆過濾模塊、主節點通信模塊、實時數據節點通信模塊和客戶端通信模塊等。數據包發送緩沖模塊采用鏈表結構實現,支持并發讀寫,用于緩存備份數據包。元數據布隆過濾模塊用于獲取元數據信息。主節點通信模塊和實時數據節點通信模塊分別用于與主節點、實時數據節點通信。客戶端通信模塊用于響應客戶端的請求。

1.3 關鍵技術

    (1)負載均衡技術

    負載均衡技術是保證系統運行效率和可用性的關鍵技術。基本原理如下:

    IF(心跳間隔到期)

        THEN 獲取心跳信息中的CPU、內存、存儲、進程等信息更新到Node_Load列表;

            根據Node_Load信息更新Node_PRI->pri(數據節點的優先級);

            更新Node_PRI最大堆;

    ENDIF

    IF(接收到分配節點申請)

        THEN從Node_PRI最大堆中獲取最高優先級節點返回;

            更新Node_Load列表;

            更新Node_PRI->pri;

            更新Node_PRI最大堆;

    ENDIF

    (2)動態擴展技術

    動態擴展技術是保證系統性能和連續性的關鍵技術,主要包括節點的動態添加和刪除。動態添加節點的基本原理如下:

    數據節點執行添加指令;

    遠程過程調用主節點NodeRegister(Node);

    NodeRegister(Node)

        IF(Node 在Node_List列表中)

            THEN Node->alive=TRUE;

              IF(Node 不在Node_Load列表中)

                THEN 用Node初始化Node_Load并添加到列表中;

              ENDIF

              IF(Node 不在Heartbeat列表中)

                THEN將Node添加到Heartbeat列表中;

              ENDIF

        ELSE Node->alieve=TRUE; 

              Node添加到Node_List中;

              Node初始化Node_Load并添加到列表中;

              Node添加到Heartbeat列表中;

        ENDIF

    動態刪除節點的基本原理如下:

    數據節點執行添加指令或故障;

    主節點執行:

    IF(心跳間隔到期)

       THEN獲取Node心跳信息,記錄獲取時間TIME;

        IF(心跳信息含有關閉命令)

          THEN 更新Node_List中Node->alive=FALSE;

                更新其他所有包含Node結構,刪除Node;

                Node添加到Dead_Node列表中;

        ELSE IF(Node在Heartbeat列表中)

          THEN更新Heartbeat列表中Node->time=TIME;

          FOR node in Heartbeat:

            DO IF(TIME-node->time >設置最長失連時間)

          THEN  更新Node_List中Node->alive=FALSE;

                更新其他所有包含Node的數據結構,刪除Node;

                Node添加到Dead_Node列表中;

        ENDIF

      ELSE IF(Node不在Heartbeat列表中)

        THEN NodeRegister(Node);

          將Node從Dead_Node列表中刪除;

      ENDIF

      IF(時間間隔到期)

        THEN FOR node in Dead_Node:

          DO IF(TIME-node->deadTime>最長dead時間)

              THEN將node歷史數據同步到其他節點;

          ENDIF

      ENDIF

    ENDIF

1.4 客戶端和數據采集器

    客戶端主要用于工業數據的查詢和實時數據的訂閱,客戶端通過與主節點通信獲得所需元數據信息,即數據塊索引和實時數據節點列表為元素的有序列表,對于實時數據只有一個元數據信息,客戶端依次與相應數據節點通信獲取數據,從而實現數據的透明訪問。

    數據采集器主要用于采集工業現場的實時數據,加時間戳發送到實時數據節點。數據采集器會將數據發送到最短網絡路徑的實時數據節點(人工配置或主節點分配),當此實時數據節點故障時,數據采集器與主節點通信,申請一個有效的實時數據節點,然后將實時數據發送到此節點,從而保證了實時數據處理的高容錯性。

2 測試

    為了測試系統的性能和擴展性以及負載均衡,采用的測試環境包括兩臺浪潮NP3060,配置為:Intel Xeon CPU E5606,24 GB內存,千兆網絡。兩臺機器安裝VMware ESXi5.5.0,在其上構建虛擬機,虛擬機配置為:1核處理器,4 GB內存,共享千兆網絡,操作系統為Ubuntu 11.10。

2.1 性能測試

    使用一臺虛擬機作為主節點,4臺虛擬機為數據節點,4臺虛擬機為數據采集器。每個數據采集器模擬生成1 000點、5萬點的溫度實時數據,采集周期是1 s,數據副本數量設置為2,進行7×24小時測試。測試表明系統高可用,7×24小時無故障運行。測試結果如表1所示。

jsj1-b1.gif

2.2 擴展性和負載均衡測試

    使用一臺虛擬機作為主節點,3臺虛擬機為實時數據節點,編號為1、2、3。4臺虛擬機為數據采集器。每個數據采集器模擬生成1 000點的溫度實時數據,采集周期是1 s,測試時間為4萬秒。當測試進行到2個小時時,動態添加一個實時數據節點4到集群中。進行到5個小時,動態刪除數據節點3。測試結果如表2所示,表中每列是數據節點在查詢時刻所存儲數據包的數量。

jsj1-b2.gif

    測試結果表明,集群能夠實現動態添加和刪除實時數據節點,具有高擴展性。經過一段時間的運行后,數據存儲均衡,說明系統能夠實現負載均衡。

2.3 查詢測試

    使用一臺虛擬機作為主節點,4臺虛擬機為實時數據節點,編號為1~4。4臺虛擬機為數據采集器,客戶端若干。每個數據采集器模擬生成1 000點溫度實時數據,采集周期是1 s,數據副本數量設置為3,24小時的歷史數據。客戶端分別在集群健康、斷開一、二臺實時數據節點(包括所有可能的組合)的情況下查詢歷史數據和訂閱實時數據。查詢歷史數據的測試結果如表3所示,由于設置副本數量為3,因此查詢時集群允許最大數據節點故障數量為2。

jsj1-b3.gif

    在集群健康時訂閱實時數據的測試結果如圖4所示。數據節點故障時訂閱實時數據的測試結果如圖5所示,在時刻T1,關閉實時數據節點2、3、4;在時刻T2,重新啟動實時數據節點2,關閉實時數據節點1;在T3時刻,重新啟動實時數據節點3,關閉實時數據節點2。對比圖4和圖5可以看出,在數據規模不大時,集群只有一臺實時數據節點存活,不會影響數據的存儲和訂閱。

jsj1-t4.gif

jsj1-t5.gif

    測試結果表明,系統的歷史數據查詢和實時數據訂閱功能滿足設計要求。在歷史數據查詢時,系統允許的最大數據節點故障數量為數據點的副本數量減1,在實時數據存儲和訂閱時,只要系統存活的實時數據節點總的負載容量大于系統處理的數據規模,就能保證實時數據的處理。這說明系統具有很高的容錯性和可靠性。

2.4 集群數據同步通道性能測試

    將發送數據節點定義為Client,將接收數據節點定義為Server,分別測試1~3個Client與1個Server連接情況下的通道性能。測試結果如表4所示。

jsj1-b4.gif

    實驗結果表明,在測試環境下,當數據副本設置為2時,集群的數據同步通道支持的最大單節點數據規模是285萬點(102個數據組成大小為1 216 B的數據包);當數據副本設置為3時,支持的最大單節點數據規模是180萬點。

3 結束語

    本文通過分析工業大數據的特點,提出并實現了一種面向工業大數據同時兼容傳統的分布式實時數據庫系統功能的基于云技術的分布式實時數據庫系統。該系統通過將云技術與實時數據庫技術相結合,既滿足工控對于數據實時性的要求,又具有高擴展性、高容錯性、高可靠性,支持工業大數據的處理要求。分布式實時數據庫系統可用于電力、石化、物聯網等多種行業,具有廣闊的應用場景。

參考文獻

[1] 中國電機工程學會信息化專委會.北京中國電力大數據發展白皮書[M].北京:中國電力出版社,2013:9-12.

[2] 孫柏林.大數據技術及其在電力行業中的應用[J].電氣時代,2013(8):18-23.

[3] 錢益舟.基于云技術的分布式實時數據庫高性能數據存儲檢索機制的研究[D].杭州:浙江大學,2012.

[4] Werner Vogels.Eventually consistent[J].ACM Queue,2008,6(6):14-19.

[5] 黃震.工業分布式實時數據庫網絡通信平臺的研究與設計[D].杭州:浙江大學,2012.

[6] VAGUERO L M,RODERO-MWEINO L,CACERES J.A break in the clouds:Towards a cloud definition[J].SIGCOMM Comput.Commun.Rev.,2009,39(1):50-55.

[7] Hadoop[EB/OL].(2016-07-01)[2016-12-18].http://hadoop.apache.org/.

[8] GREENBERG A,HAMILTON J,MALTZD A.The cost of a cloud:research problems in data center networks[C].SIGCOMM Comput.Commun.Rev.,2008,39:68-73.

[9] HDFS architecture guide[EB/OL].(2013-02-13)[2016-12-18].http://hadoop.apache.org/docs/r1.0.4/-hdfs_design.html.

[10] 郭瑞.力數實時數據庫實時文件系統的研究[D].北京:華北計算機系統工程研究所,2013.

[11] 李亞鳳.若干實時數據庫過程數據處理關鍵技術的研究與實現[D].北京:華北計算機系統工程研究所,2013.



作者信息:

焦冬冬1,張  晨2,房志奇1,康  衛1

(1.華北計算機系統工程研究所,北京100083;2.北京科技大學,北京100083)

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 鲁啊鲁阿鲁在线视频播放| 亚洲第一精品福利| 日本dhxxxxxdh14日本| 在线观看北条麻妃| 一本色道久久88亚洲精品综合| 欧美激情免费观看一区| 免费无遮挡无码永久在线观看视频| 草莓视频在线观看18| 国产成人无码一区二区三区| 2021国产果冻剧传媒不卡| 拔擦拔擦8x华人免费久久 | 日本xxxxx高清视频| 国产精品麻豆免费版| JAPANESE在线播放国产| 妞干网手机免费视频| 中文字幕亚洲专区| 日本久久久久久久| 久久国产精品99久久小说| 晚上看b站直播软件| 亚洲国产中文在线视频| 欧美色欧美亚洲高清在线观看| 国产做无码视频在线观看| 99国产在线观看| 好深好爽办公室做视频| 中文国产日韩欧美视频| 无敌影视手机在线观看高清| 亚洲成色在线综合网站| 网站正能量www正能量视频| 国产乱码一区二区三区爽爽爽| 3d动漫精品啪啪一区二区中| 在线日本中文字幕| 99精品无人区乱码在线观看| 天天爽夜夜爽人人爽| аⅴ天堂中文在线网| 山东女人一级毛片| 三级黄色毛片视频| 最近手机中文字幕1页| 亚洲制服丝袜精品久久| 欧美人妖视频网站| 亚洲国产午夜电影在线入口| 欧美性大战久久久久久|