999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于內存數據庫的海量數據實時處理策略

2013-10-13 08:01:18劉寶華
艦船電子對抗 2013年1期
關鍵詞:數據庫信息

劉寶華

(連云港杰瑞深軟科技有限公司,連云港222006)

0 引 言

隨著信息化建設的發展,傳統的磁盤數據庫(DRDB)在對數據進行維護和管理上扮演了十分重要的角色。然而,在目前的大型作戰指揮信息系統中,隨著數據和信息量的劇增,不僅要求數據庫系統具有強大而完備的功能和復雜的事物處理能力,更需要在指定的時間內對海量數據進行采集、處理,并能實時、高效、快速地做出反應。對于傳統的磁盤數據庫而言,需要頻繁地訪問磁盤來進行數據的操作,當處理海量數據時,大量的I/O操作成為海量數據實時處理性能的瓶頸,很難提供高性能的實時處理能力,而內存數據庫(MMDB,也叫主存數據庫)將應用程序需要的實時數據存儲在內存中,由于數據庫的操作都在內存中進行,從而有效地解決了磁盤I/O操作的瓶頸問題。當然,內存數據庫也有自身特性的限制,很難將大量的數據完全存儲到內存數據庫中,因此研究一種新的基于內存數據庫的海量數據實時處理框架十分必要。

目前,解決海量數據實時處理的問題,一般采用對Oracle數據庫的優化策略,并結合共享緩存區來緩解海量數據的壓力,然而指揮作戰系統對實時處理的要求非常高,簡單地將Oracle數據庫優化與設立共享緩存區結合很難滿足高效、快速的反應能力。為此,本文介紹通過改進內存數據庫事務處理、采用訂閱分發機制和多模式容災的高可用性(HA)模式等技術,建立一種新的基于內存數據庫的海量數據實時處理框架,并很好地應用在指揮作戰系統中,通過試驗證明新框架的優勢所在。

1 內存數據庫的引用

1.1 傳統基于Oracle海量數據處理

現有的指揮作戰信息系統中,數據維護和處理基于單一Oracle數據庫系統,在處理海量實時數據時,通過分區存儲、批量存取和分頁查詢等數據存儲訪問策略來改善實時性能[1]。在試驗過程中,將情報處理后的數據存儲到Oracle數據庫中,同時各個臺位也從Oracle數據庫中獲取相應的信息;另外,在重演重放過程中,實時報文重演模塊從Oracle數據庫中提取報文數據。外部情報批量不是很密時,該應用框架能夠很好地滿足試驗數據處理的需要。

隨著作戰指揮系統中裝備種類和數量越來越多,外部情報更加復雜,信息量也越來越大,在密集報文情況下,很容易發生網絡阻塞甚至嚴重的報文丟失[2]。另外,隨著試驗的頻繁進行,數據存儲量越來越大,當數據量不斷突破GB、TB甚至PB、EB級時,Oracle數據庫檢索操作越來越慢,相對高時效的要求,基于磁盤存儲的Oracle數據庫很難在可控的響應時間內完成相應的操作。

1.2 內存數據庫技術

磁盤數據庫對海量數據實時處理存在大量的I/O操作,而內存數據庫將應用程序需要的實時數據存儲到內存中。由于數據庫的操作都在內存中進行,所以能夠對密集報文和海量數據做出及時響應,提高時效性。

1.2.1 內存數據庫的概念

對于內存數據庫而言,很多人認為將所有的數據庫都存儲在內存數據庫中,而且在對數據庫的操作過程中,任何時刻整個數據庫都存儲在內存中,這樣就可以避免I/O操作;然而,這樣的設計具有很大的局限性,這種情況只能解決特定要求的實時數據,而對海量數據的處理則無能為力,因為內存數據庫根本無法滿足在任何時刻都能容納整個試驗過程中的所有數據。

針對海量數據實時處理來說,簡單的內存數據庫無法解決內存存儲量的問題,而內存數據庫的本質特征是其主拷貝或“工作版本”常駐內存,故被廣泛認可的內存數據庫定義為[3]:

設有數據庫系統(DBS),DB為DBS中的數據庫,DDBM(t)為在t時刻DB在內存的數據集,DDBM(t)是DB的子集。Ts為DBS中所有可能的事務的集合,A(t)為在時刻t處于活動狀態的事務集,A(t)是Ts的子集。Dt(T)為事務T在時刻t所操作的數據集,Dt(T)是DB的子集。若在任何一時刻t,均有:對任意T∈A(t),Dt(T)是DDBM(t)的子集成立,則稱DBS為一個內存數據庫系統(MMDBS),DB為一個內存數據庫(MMDB)。

也就是說,內存數據庫并不是存儲整個試驗的所有數據,但在任何時刻至少能存儲一個事務所要求的數據集。

1.2.2 內存數據庫和Oracle數據庫的結合

要達到MMDBS的要求,只把數據存儲到內存數據庫中是無法實現的,一定要有外部存儲。在作戰指揮信息系統中,隨著試驗的頻繁啟動,系統中的數據是在不斷地變化和積累的,尤其在試驗階段結束時需要將數據存儲到磁盤數據庫Oracle中,而下次試驗開始后又需要從Oracle數據庫中提取實時性要求高的數據到內存數據庫中,這就涉及內存數據庫和Oracle數據庫的結合。因為在試驗過程中,有些后臺程序的事務操作是直接針對Oracle數據庫的,這樣就出現Oracle和內存數據庫中數據的同步問題。保證Oracle數據到內存數據庫的同步可以采用增量表的方式,當Oralce中新增或更新需要實時處理的數據時,在增量表中添加1條記錄,同步處理模塊發現增量表為非空時就將這些數據更新到內存數據庫對應的表中。

2 新型基于內存數據庫的海量數據處理方案

2.1 內存數據庫系統的改進

根據MMDBS的定義可以看出,由于內存數據庫很難保證在任何時刻都存儲整個數據庫,畢竟內存數據庫開辟的內存容量是有限的,所以MMDBS提出,內存數據庫存儲的是“工作版本”,也就是在任何時刻都能存儲1個或多個事務所需要的數據集,并不要求存儲整個數據庫,這樣也就解決了內存容量的問題。當然,要保證任何時刻都能使事務操作有效,就要事先做好優化策略。

在作戰指揮信息系統中,根據數據的使用特性可以分為實時數據和動態數據2種。實時數據主要是由實時報文信息組成,這類數據在同一時間會非常密集,甚至每秒可能會達到成千上萬批次,對其響應的速度將直接影響系統的可用性;動態數據是那些變更頻繁的數據,而且其數據量可能會很大,甚至包括一些歷史數據,所以這些數據一般存儲在磁盤數據庫Oracle中,但其頻繁的變更也會要求較高的實時性。實時數據除了應用層實時處理外,有時也會要求存儲到Oracle數據庫中作為歷史數據,而磁盤歷史數據也會在重演、重放模式下由Oracle數據庫導入到內存數據庫中成為實時數據。在大型作戰指揮信息系統中,由于海量數據的存儲,MMDBS要求在內存數據庫和Oracle數據庫之間尋求最佳的平衡點,來達到對海量數據實時處理的要求。

要達到內存數據庫和Oracle數據庫的平衡,最主要的目的是保證任何時刻內存數據庫中都能找到至少1個事務所要求的數據集。

2.1.1 實時數據處理

對實時數據而言,由于報文的處理效率略低于報文載入的效率,而其在試驗過程中,報文基本是密集型的,這樣在內存數據庫中會保證處理事務操作的有效性。在作戰指揮信息系統中,這樣的實時報文數據為非持久性數據,也就是說在對這些數據處理結束后將其在內存數據庫中清除,或者根據需求轉存到Oracle數據中成為歷史數據,從而保證內存的可用。當然,這種實時報文處理的方式有可能會出現2種情況:一是內存數據庫中的數據為空,這說明信息處理端將所有的數據處理完畢,而內存數據庫中沒有新的報文信息載入,這時信息處理需要進入等待狀態;另一種是內存數據庫被寫滿,出現這種情況的主要原因是信息處理程序未啟動,這時就需要一種淘汰算法,如用先進先出(FIFO)算法淘汰內存駐留時間最長的數據、用最近最少使用(LRU)算法淘汰最近最少使用的數據,或者根據具體需求自定義淘汰算法。

2.1.2 動態數據處理

對于動態數據而言,數據量非常大,所以一定要依據特定的數據交換策略,將數據在內存數據庫和Oracle數據之間裝入和換出,并確保信息處理事務執行時無I/O操作,為達到這個目標,要做到以下幾點[4]:

(1)建立事務表,并根據事務等級建立優先級;

(2)根據事務表,采集事務數據,并以事務數據集作為基本裝入單位,進行內存數據庫載入;

(3)接納新事物時,事務優先級重新排序,并調整事務集數據的換入;

(4)啟動定時數據載入;

(5)建立增量表,記錄數據新增或更新的數據,一致性處理模塊通過讀取增量表保證Oracle數據庫和內存數據庫中數據的一致性。

2.2 分布式內存數據庫

根據對內存數據的改進,可以很好地解決內存數據庫和磁盤數據庫Oracle的平衡,保證實時處理程序在內存數據中完成各種事務處理。然而在大型作戰指揮信息系統中,情報處理目標越來越多,導致磁盤數據庫中的數據量逐漸增大,在處理海量數據時,內存數據庫和Oracle數據庫的簡單結合已經無法滿足實時性的要求,必須尋找一種新型的基于內存數據庫的海量數據實時處理方案。

在大型作戰指揮信息系統中,根據試驗要求把系統分為很多功能臺位,每個臺位處理相應的任務,這樣根據各個臺位的功能建立分布式內存數據庫系統。分布式數據庫是指物理上分散在計算機網絡的各個結點上、而邏輯上屬于同一個系統的數據集合[5]。在這個系統中,要滿足:

(1)各結點內存數據庫有其自治性;

(2)分發給各結點內存數據庫的數據具有排他性,這樣可以減少相同數據的多次載入;

(3)各結點內存數據庫間相互協調,最好的辦法是每個內存數據庫都可以作為其他結點的服務端;

(4)保持數據分布的透明性。

這樣分布式內存數據庫系統就能很好地滿足數據的分布性和數據庫間的協調性兩大特點[6],再結合內存數據庫和Oracle之間平衡的改進,就能很好地解決海量數據實時處理的要求了。

3 作戰指揮信息系統中實時數據的處理

在作戰指揮信息系統中,根據臺位功能的不同,將來自外部情報的報文和Oracle數據庫中的實時信息采集到傳輸總線,同步處理模塊再根據各臺位訂閱的信息主題,將總線中的實時信息按照主題分類,并載入到對應的內存數據庫中,這個過程通過訂閱/分發來實現。

3.1 應用框架設計

內存數據應用于作戰指揮信息系統中的模型框架(如圖1所示),各臺位中的軟件模塊訂閱本模塊需要的信息主題,將這些訂閱信息存儲到訂閱表中統一維護[7]。當外部有情報發送或者Oracle數據庫中有需要提升為實時處理的數據時,將這些信息傳送給數據總線,然后訂閱分發模塊根據訂閱表中的信息,將這些信息按照主題存儲到相應的內存數據庫中,并通知各臺位中的應用端軟件模塊到內存數據庫中提取相應信息。

圖1 內存數據庫應用于作戰指揮系統的應用框架

3.2 訂閱分發

訂閱分發(又稱為發布/訂閱)是一種匿名服務機制,依據語義特性將事件流從發送者傳播到接收者。發布消息的客戶端只需要簡單地將消息以主題的形式發送出去,而訂閱客戶端只需要訂閱需要的信息主題,發送者和訂閱者之間并不需要建立直接的專用信息通道。他們之間的通信通過消息代理來完成,消息代理可以參照Java消息服務(JMS)規范,一個特定的JMS實現可以提供基于傳輸控制協議/互聯網協議(TCP/IP)、超文本傳輸協議(HTTP)、安全套接層(SSL)等其它通訊協議[4]。在訂閱分發模式下,用戶被分為2類:發布者和訂閱者。發布者不關心信息流向何方,只需要發出信息就可以了;而訂閱者只關心自己需要的信息,并訂閱這些信息,也就是提出信息申請,當有發布者發布該信息的時候,信息就可以送達訂閱者。當然1個用戶也可以作為發布者和訂閱者,訂閱分發模型框架如圖2所示。

圖2 訂閱分發模型框架

在作戰指揮信息系統中,除了實時報文外,還需要解決大量來自Oracle數據庫中的實時數據,所以形成一種特殊的訂閱分發形式,一方面處理實時報文,另一方面提取Oracle中的數并轉換為基于主題的形式,從而實現統一的訂閱分發。另外,為了支持異步方式,將實時發送的報文和來自Oracle的數據以主題的形式存儲到內存數據庫中圖1所示的整體框架,直到所有的訂閱者收到信息。如果訂閱者離線,則在下次啟動時由消息代理通知訂閱者去讀取信息。

3.3 內存數據庫的安全處理

內存數據庫系統的安全隱患主要來自于數據的永久性存儲和斷電等異常處理。在嵌入式系統中,系統資源緊湊,常規數據庫無法使用,導致可以選擇的數據管理方案少。而且要保證數據的持久性,通過內存數據庫的引擎技術,將對數據庫的操作信息存儲到日志緩沖區中,然后由后臺進程同步到磁盤上的日志文件中。同時每隔一段時間將內存中變化的數據增量寫到磁盤上的數據文件中,最后清除已經同步的日志文件,這樣,當數據庫重啟后可以通過這些文件進行自動恢復。另外為了防止異常掉電數據丟失引起的整個作戰指揮信息系統的崩潰,采用多模式容災的HA模式,將內存數據庫進行一對多或者多對多的備份,當主站異常掉電后,會有其它副站自動升級為主站,維持系統的正常運作。主站和副站之間通過初始同步定時器、心跳檢測定時器、發送定時器和接收定時器來保證主站和復雜的同步。

4 結束語

在大型的作戰指揮信息系統中,根據對龐大的雷達情報、指揮控制、模擬仿真等信息以及來自磁盤數據庫中的數據實時處理的要求,本文提出基于內存數據庫的海量實時處理新方案,對內存數據庫系統進行改進,并結合內存數據庫的集群處理,將海量數據分擔到多個內存數據庫中并發控制;另外,根據訂閱分發將實時數據按照主題的形式存儲到相應的內存數據庫中,保證了海量數據的實時處理,同時也解決了系統的通訊問題。目前,基于內存數據庫的海量數據實時處理模型成功地應用于作戰指揮系統中,證明了其高效性和可靠性。

[1]唐志軍.基于Oracle的海量實時報文存儲訪問策略[J].指揮信息系統與技術,2011(3):41-48.

[2]張未平.指揮信息系統體系作戰結構研究[M].北京:國防大學出版社,2011.

[3]Hector Garcia Molina,Kenneth Salem.Main memory database system:an overview[J].IEEE Transactions on Knowledge and Data Engineering,1992,4(6):509-516.

[4]廖國瓊.嵌入式移動實時數據庫事務處理技術[M].北京:中國鐵道出版社,2010.

[5]歐陽京武.分布式數據庫系統概論[M].北京:航天工業出版社,1989.

[6]肖迎元.分布式實時數據庫技術[M].北京:科學出版社,2009.

[7]夏火松.數據倉庫與數據挖掘技術[M].北京:科學出版社,2011.

猜你喜歡
數據庫信息
數據庫
財經(2017年15期)2017-07-03 22:40:49
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
數據庫
財經(2010年20期)2010-10-19 01:48:32
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 亚洲人成影院在线观看| 国产精品30p| 国产主播在线观看| 国产 日韩 欧美 第二页| 国产a网站| 婷婷伊人久久| 无码中文字幕乱码免费2| 在线亚洲精品福利网址导航| 色综合狠狠操| 亚洲人成人无码www| 2021精品国产自在现线看| 亚洲欧美日韩成人在线| 91久久精品日日躁夜夜躁欧美| 丝袜久久剧情精品国产| 亚洲天天更新| 国产精品毛片一区| 色呦呦手机在线精品| 香蕉伊思人视频| 国产成人精品视频一区视频二区| 欧美成人综合在线| 国产精品毛片一区视频播| 伊人丁香五月天久久综合| 国产精品自在自线免费观看| 免费高清a毛片| 亚洲水蜜桃久久综合网站 | 又爽又大又黄a级毛片在线视频| 国产 在线视频无码| 国产激情无码一区二区三区免费| 五月婷婷激情四射| 2018日日摸夜夜添狠狠躁| 日韩亚洲高清一区二区| 亚洲精品福利网站| 久久久噜噜噜| 在线综合亚洲欧美网站| 免费国产高清视频| 国产小视频免费| 欧美精品高清| 国产国产人成免费视频77777| 国产在线视频福利资源站| 天天干天天色综合网| 亚洲男人的天堂久久香蕉网| 国产色婷婷| 国产精品亚洲天堂| 人妻丰满熟妇av五码区| 欧美日韩第二页| 欧美一区中文字幕| 日本精品一在线观看视频| 日韩精品欧美国产在线| 亚洲中文字幕无码爆乳| 最新国产网站| 中文字幕在线看| 欧美五月婷婷| 国产伦精品一区二区三区视频优播| 精品国产www| av一区二区三区在线观看| 国产麻豆精品在线观看| 在线欧美国产| 免费jjzz在在线播放国产| 欧美激情综合一区二区| 成人在线第一页| 丰满人妻中出白浆| 欧美一区二区精品久久久| 欧美成人aⅴ| 免费又黄又爽又猛大片午夜| 免费国产在线精品一区| 99久久精品国产自免费| 国产精品久久久久鬼色| 欧美国产综合色视频| 激情国产精品一区| 99re经典视频在线| 亚洲av无码牛牛影视在线二区| 免费在线不卡视频| av天堂最新版在线| 亚洲无限乱码| 亚洲天堂网在线视频| 97综合久久| 国产91小视频在线观看| 九九精品在线观看| 欧美日韩高清在线| 国产福利免费视频| 一级片一区| 亚洲无码免费黄色网址|