一種海量信息存儲系統及實現方法

一種海量信息存儲系統及實現方法

《一種海量信息存儲系統及實現方法》是國網信息通信有限公司中國科學院計算技術研究所於2011年12月22日申請的發明專利,該專利的申請號為2011104363354,公布號為CN102567495A,公布日為2012年7月11日,發明人是王晶華、吳甜、劉越、虎嵩林,該專利涉及數據存儲技術領域。

《一種海量信息存儲系統及實現方法》包括存儲系統、元數據伺服器、協調器和數據分布和平衡模組,存儲系統用於提供數據存儲功能;元數據伺服器用於接受並保存來自存儲系統元數據;協調器接收客戶端需要寫入存儲系統的數據,將接收到的數據組織成關鍵值形式,傳送到數據分布和平衡模組,協調器還用於接收客戶端的查詢指令,指示伺服器節點執行查詢操作,並接收查詢結果返回給客戶端;數據分布和平衡模組用於運用一致性哈希算法將數據分配到存儲系統各伺服器節點上。

2014年11月6日,《一種海量信息存儲系統及實現方法》獲得第十六屆中國專利優秀獎。

(概述圖為《一種海量信息存儲系統及實現方法》摘要附圖)

基本介紹

  • 中文名:一種海量信息存儲系統及實現方法
  • 公布號:CN102567495A
  • 公布日:2012年7月11日
  • 申請號:2011104363354
  • 申請日:2011年12月22日
  • 申請人:國網信息通信有限公司、中國科學院計算技術研究所
  • 地址:北京市西城區白廣路二條一號
  • 發明人:王晶華、吳甜、劉越、虎嵩林
  • 分類號:G06F17/30(2006.01)I
  • 代理機構:北京集佳智慧財產權代理有限公司
  • 類別:發明專利
  • 代理人:逯長明、王寶筠
專利背景,發明內容,專利目的,技術方案,有益效果,附圖說明,權利要求,實施方式,榮譽表彰,

專利背景

隨著網際網路技術的飛速發展和廣泛套用,網際網路的用戶數量和數據量都呈現出爆發式的增長。各種類型的套用層出不窮,傳統關係型資料庫在高並發訪問、海量數據處理和大規模部署等方面表現出一定的局限性。
智慧型電網所涉及的套用場景中,定時採集的數據量非常大,不同關係型資料庫的吞吐難以達到要求。
NOSQL資料庫是伴隨著雲計算技術的蓬勃發展而產生的,具有低延遲的讀寫速度、支持海量數據、大規模集群部署和良好的擴展性等特點,為負責大規模數據處理的系統提供了新的選擇。可以達到智慧型電網中對於資料庫吞吐量的要求。
NOSQL領域流行的一致性哈希存儲結構(DHT存儲結構),是NOSQL實現大吞吐量的關鍵內容。一致性哈希存儲結構提供了一種動態進行分散式存儲和路由的方法。如圖1所示,一個哈希函式的輸出範圍被視為一個固定的環形空間,系統中每一個伺服器節點都被分配到了空間中一個隨機的值,代表伺服器節點在環上的位置,如圖1中所示的節點。這種數據分布方式為系統提供了良好的擴展性,加入或移除伺服器節點時也只能有少量的數據需要重新分配。為保證系統具有良好的可用性,系統一般會設定副本。
NOSQL中比較流行的是資料庫為HBase,HBase資料庫是利用分散式檔案存儲系統HDFS(Hadoop Distributed File System)提供分散式存儲,而且可以通過數據分析工具Hive,利用一種類SQL語言來提供數據查詢和分析能力。但是這種查詢和分析需要轉化為MapReduce程式來運行,速度比較慢,難以提供線上複雜查詢功能。
另外在該領域中,MySQL資料庫也是一種十分常用的關係型資料庫,MySQL資料庫雖然可以實現複雜查詢功能,但是缺陷在於單獨的MySQL資料庫讀寫性能有限,很難承受電網套用場景中定時湧來的海量數據,吞吐量難以達到要求,如果數據不能在一定的時間內持久化,則可能會有被下一波數據覆蓋的危險,造成數據丟失,也很難處理大量的訪問和查詢的請求。

發明內容

專利目的

《一種海量信息存儲系統及實現方法》的主要目的是提供一種海量信息存儲系統及實現方法。該發明所述海量信息存儲系統實現了支持高通量存儲和複雜查詢兩項功能。

技術方案

一種海量信息存儲系統,所述系統包括存儲系統、元數據伺服器、協調器和數據分布和平衡模組;存儲系統,連線協調器、元數據伺服器和數據分布和平衡模組,存儲系統由多個伺服器節點構成,所有的伺服器節點按照一致性哈希算法進行組織,存儲系統用於提供數據存儲功能;元數據伺服器,一端連線協調器,一端連線存儲系統,元數據伺服器用於接受並保存來自存儲系統元數據,所述元數據為存儲系統中所儲存數據的層次結構和位置信息,在查詢過程中元數據伺服器向協調器提供存儲系統中儲存數據的層次結構和位置信息;協調器,連線存儲系統、元數據伺服器和數據分布和平衡模組,用於接收客戶端需要寫入存儲系統的數據,將接收到的數據組織成關鍵值形式,傳送到數據分布和平衡模組,協調器還用於接收客戶端的查詢指令,在查詢時讀取元數據伺服器中的需查詢數據的層次機構和位置信息,利用需查詢數據的層次結構和位置信息找到需查詢數據所在的伺服器節點,協調器將查詢指令傳送到存儲系統中的伺服器節點上,指示伺服器節點執行查詢操作,並接收查詢結果返回給客戶端;數據分布和平衡模組,與存儲系統相連線,用於在寫入過程中接收協調器組織成關鍵值形式的數據,運用一致性哈希算法將數據分配到存儲系統各伺服器節點上。
所述構成存儲系統的伺服器節點具體包括:版本控制模組,記憶體存儲管理模組、數據同步模組和智慧型資料庫;版本控制模組,連線到數據分布和平衡模組,用於接收數據分布和平衡模組分配而來的組織成關鍵值形式的數據,給接收的數據加上時間戳,以區分數據的版本信息;將加上時間戳的數據傳送到記憶體存儲管理模組;記憶體存儲管理模組,連線版本控制模組,用於負責暫時存儲版本控制模組進行版本區分後的數據,並維持的數據的關鍵值結構;數據同步模組,連線記憶體存儲管理模組、智慧型資料庫,並接收協調器的同步命令,用於解析記憶體存儲管理模組中存儲的關鍵值形式的數據,組織成智慧型資料庫能夠識別的結構寫入智慧型資料庫;智慧型資料庫,連線數據同步模組,用於提供持久化存儲功能和查詢功能。
所述數據同步模組進一步連線元數據伺服器,數據同步模組在將數據寫入到智慧型資料庫的同時,獲取寫入數據的層次結構和位置信息,並將獲取的數據的層次結構和位置信息傳送給元數據伺服器。
所述元數據伺服器還用於,接收數據同步模組傳送的數據的層次結構和位置信息,並對自身以保存的信息進行同步更新。
所述數據分布和平衡模組包括接收模組和分配模組,接收模組用於接收來自協調器的組織成關鍵值形式的數據,
分配模組用於根據預先設定數據需要保存的副本數量,將待寫入的數據寫入多個伺服器節點,寫入伺服器節點的數量與副本數量相等。
優選的,所述協調器中進一步包括數據查詢接口,連線元數據伺服器和智慧型資料庫,用於接收協調器的查詢指令,並連線元數據伺服器,找到所查詢數據的層次結構和位置信息,根據所查詢數據的層次結構和位置信息找到所查詢數據所在的伺服器節點,再將查詢命令傳送到所查詢數據所在的伺服器節點,數據查詢接口調用伺服器節點上智慧型資料庫中的查詢計算函式,使伺服器節點運用查詢計算函式完成查詢操作,數據查詢接口再接收各個進行查詢操作的伺服器節點上得到的查詢結果,並將所有查詢結果返回協調器。
一種海量信息存儲系統的實現方法,所述實現方法包括寫入方法,具體步驟為,
A1、接收客戶端傳來的數據,將數據組織成關鍵值的形式;
B1、組織後的數據根據一致性哈希算法選擇多個伺服器節點進行數據寫入;
所述實現方法還包括查詢方法,具體步驟為,
A2、接收查詢指令,讀取需查詢數據的層次機構和位置信息,利用需查詢數據的層次結構和位置信息找到需查詢數據所在的伺服器節點;
B2、查詢指令轉發到需查詢數據所在的伺服器節點,並調用伺服器節點上保存的查詢計算函式,利用查詢計算函式開始進行查詢操作;
C2、查詢數據所在的伺服器節點執行查詢操作之後,返回查詢結果,並對返回的數據重組、去重再呈現給客戶端。
優選的,所述寫入方法進一步包括:
C1、數據寫入到每個伺服器節點上,首先對數據進行版本化處理,以當前時間作為時間戳加入到關鍵值結構數據的數值部分中,將加上時間戳的數據暫時儲存,並對存儲的數據進行管理和維護;
D1、接收到同步指令之後開始將暫時存儲的數據進行解析,將數據中數值部分包含的用戶數據轉化為資料庫規定的結構,批量轉存入資料庫中。
所述根據一致性哈希算法選擇多個伺服器節點進行數據寫入具體為:
預先設定數據需要保存的副本數量,並選擇與副本數量相等個數的伺服器節點寫入數據。
優選的,所述寫入方法進一步包括:
E1、將數據寫入資料庫的同時,獲取數據的層次結構和位置信息,並對自身保存的數據的層次結構和位置信息進行同步更新。
所述找到需查詢數據所在的伺服器節點具體為:找到單一伺服器節點或多個伺服器節點。

有益效果

《一種海量信息存儲系統及實現方法》所述海量信息存儲系統,在寫入時充分利用DHT的特點,將數據按層次數據結構中的關係組織成關鍵值形式,利用一致性哈希算法使數據均勻的分布在集群中,緩解了智慧型資料庫的負載壓力,提高了速度。在數據查詢時,利用了智慧型資料庫的查詢分析功能,通過查詢命令拆分和重組,使計算在數據存在的節點上進行,可以多單位查詢同時執行,提高了查詢的速度。該發明結合DHT存儲結構智慧型資料庫兩者的優勢構建,同時提供大吞吐量存儲功能與複雜查詢功能,更好的滿足了有相關需求系統的要求。

附圖說明

圖1為2011年12月前已有技術中一致性哈希環形結構示意圖;
圖2為該發明所述系統結構示意圖;
圖3為該發明所述存儲系統伺服器節點結構示意圖;
圖4為該發明所述系統寫入方法流程圖;
圖5為數據寫入伺服器節點過程中變化示意圖;
圖6.1為元數據層次結構示意圖;
圖6.2為元數據位置信息實體圖;
圖7為該發明所述系統查詢方法流程圖;
圖8.1為需拆分的元數據層次結構示意圖;
圖8.2為需拆分的元數據位置信息示意圖。

權利要求

1.一種海量信息存儲系統,其特徵在於:所述系統包括存儲系統、元數據伺服器、協調器和數據分布和平衡模組;存儲系統,連線協調器、元數據伺服器和數據分布和平衡模組,存儲系統由多個伺服器節點構成,所有的伺服器節點按照一致性哈希算法進行組織,存儲系統用於提供數據存儲功能;元數據伺服器,一端連線協調器,一端連線存儲系統,元數據伺服器用於接受並保存來自存儲系統元數據,所述元數據為存儲系統中所儲存數據的層次結構和位置信息,在查詢過程中元數據伺服器向協調器提供存儲系統中儲存數據的層次結構和位置信息;協調器,連線存儲系統、元數據伺服器和數據分布和平衡模組,用於接收客戶端需要寫入存儲系統的數據,將接收到的數據組織成關鍵值形式,傳送到數據分布和平衡模組,協調器還用於接收客戶端的查詢指令,在查詢時讀取元數據伺服器中的需查詢數據的層次機構和位置信息,利用需查詢數據的層次結構和位置信息找到需查詢數據所在的伺服器節點,協調器將查詢指令傳送到存儲系統中的伺服器節點上,指示伺服器節點執行查詢操作,並接收查詢結果返回給客戶端;數據分布和平衡模組,與存儲系統相連線,用於在寫入過程中接收協調器組織成關鍵值形式的數據,運用一致性哈希算法將數據分配到存儲系統各伺服器節點上;構成存儲系統的伺服器節點具體包括:版本控制模組,記憶體存儲管理模組、數據同步模組和智慧型資料庫;版本控制模組,連線到數據分布和平衡模組,用於接收數據分布和平衡模組分配而來的組織成關鍵值形式的數據,給接收的數據加上時間戳,以區分數據的版本信息;將加上時間戳的數據傳送到記憶體存儲管理模組;記憶體存儲管理模組,連線版本控制模組,用於負責暫時存儲版本控制模組進行版本區分後的數據,並維持的數據的關鍵值結構;數據同步模組,連線記憶體存儲管理模組、智慧型資料庫,並接收協調器的同步命令,用於解析記憶體存儲管理模組中存儲的關鍵值形式的數據,組織成智慧型資料庫能夠識別的結構寫入智慧型資料庫;智慧型資料庫,連線數據同步模組,用於提供持久化存儲功能和查詢功能。
2.根據權利要求1所述系統,其特徵在於:所述數據同步模組進一步連線元數據伺服器,數據同步模組在將數據寫入到智慧型資料庫的同時,獲取寫入數據的層次結構和位置信息,並將獲取的數據的層次結構和位置信息傳送給元數據伺服器。
3.根據權利要求2所述系統,其特徵在於:所述元數據伺服器還用於,接收數據同步模組傳送的數據的層次結構和位置信息,並對自身以保存的信息進行同步更新。
4.根據權利要求1所述系統,其特徵在於:所述數據分布和平衡模組包括接收模組和分配模組,接收模組用於接收來自協調器的組織成關鍵值形式的數據,分配模組用於根據預先設定數據需要保存的副本數量,將待寫入的數據寫入多個伺服器節點,寫入伺服器節點的數量與副本數量相等。
5.根據權利要求1所述系統,其特徵在於:所述協調器中進一步包括數據查詢接口,連線元數據伺服器和智慧型資料庫,用於接收協調器的查詢指令,並連線元數據伺服器,找到所查詢數據的層次結構和位置信息,根據所查詢數據的層次結構和位置信息找到所查詢數據所在的伺服器節點,再將查詢命令傳送到所查詢數據所在的伺服器節點,數據查詢接口調用伺服器節點上智慧型資料庫中的查詢計算函式,使伺服器節點運用查詢計算函式完成查詢操作,數據查詢接口再接收各個進行查詢操作的伺服器節點上得到的查詢結果,並將所有查詢結果返回協調器。
6.一種海量信息存儲系統的實現方法,其特徵在於:所述實現方法包括寫入方法,具體步驟為:
A1、接收客戶端傳來的數據,將數據組織成關鍵值的形式;
B1、組織後的數據根據一致性哈希算法選擇多個伺服器節點進行數據寫入;
所述實現方法還包括查詢方法,具體步驟為,
A2、接收查詢指令,讀取需查詢數據的層次機構和位置信息,利用需查詢數據的層次結構和位置信息找到需查詢數據所在的伺服器節點;
B2、查詢指令轉發到需查詢數據所在的伺服器節點,並調用伺服器節點上保存的查詢計算函式,利用查詢計算函式開始進行查詢操作;
C2、查詢數據所在的伺服器節點執行查詢操作之後,返回查詢結果,並對返回的數據重組、去重再呈現給客戶端。
所述寫入方法進一步包括:
C1、數據寫入到每個伺服器節點上,首先對數據進行版本化處理,以當前時間作為時間戳加入到關鍵值結構數據的數值部分中,將加上時間戳的數據暫時儲存,並對存儲的數據進行管理和維護;
D1、接收到同步指令之後開始將暫時存儲的數據進行解析,將數據中數值部分包含的用戶數據轉化為資料庫規定的結構,批量轉存入資料庫中。
7.根據權利要求6所述方法,其特徵在於,所述根據一致性哈希算法選擇多個伺服器節點進行數據寫入具體為:預先設定數據需要保存的副本數量,並選擇與副本數量相等個數的伺服器節點寫入數據。
8.根據權利要求6所述方法,其特徵在於,所述寫入方法進一步包括:E1、將數據寫入資料庫的同時,獲取數據的層次結構和位置信息,並對自身保存的數據的層次結構和位置信息進行同步更新。
9.根據權利要求6所述方法,其特徵在於,所述找到需查詢數據所在的伺服器節點具體為:找到單一伺服器節點或多個伺服器節點。

實施方式

該發明提供了一種海量信息存儲系統及實現方法。該發明整合了DHT存儲結構大吞吐量存儲的優勢,與智慧型資料庫提供的複雜查詢與數據分析能力,構建所述海量信息存儲系統;同時加入元數據伺服器保存數據的層次結構與數據的位置信息,實現在吞吐海量數據的同時提供更高速的查詢服務。
下面將結合智慧型電網中的場景為例,再結合附圖對該發明的技術方案進行完整描述。而所描述的實施例僅僅是該發明中部分實施例。基於該發明中的實施例,該領域普通技術人員在沒有經過創造性勞動情況下得出的其他實施方式,同樣屬於該發明保護的範圍。
以在智慧型電網中的場景為例,首先闡述該發明中數據的組織結構,在智慧型電網場景中為了便於數據的存儲和查詢,數據以層次化方式組織,層次由高到低分別為市、區/縣、小區、樓宇、用戶。
參照圖2所示,所述系統具體結構包括以下:
存儲系統,連線元數據伺服器,協調器和數據分布和平衡模組,存儲系統由多個伺服器節點構成,所有伺服器節點在存儲系統中以DHT結構組織;存儲系統提供大吞吐量存儲和複雜查詢功能;存儲系統在完成寫入操作後,向元數據伺服器傳送新寫入數據的元數據;
元數據伺服器,一端連線協調器,一端連線存儲系統,用於保存數據層次結構的信息和各個層次數據所放置位置的信息;在存儲系統完成寫入操作之後,元數據伺服器根據存儲系統傳送的元數據同步更新自身信息;在查詢操作中,元數據伺服器接收協調器的命令,向協調器提供所查詢數據的層次機構信息和位置信息;
協調器,連線存儲系統、元數據伺服器和數據分布和平衡模組,另外連線向存儲系統中輸送數據的客戶端,負責指令存儲系統寫入數據和查詢數據;當客戶端進行查詢操作時,將查詢的命令拆分後傳送給存儲系統的伺服器節點上執行查詢操作,並接收伺服器節點查詢後返回結果,將查詢結果合併,去重和解決版本衝突,將處理後的查詢結果返回客戶端;當進行寫入操作時,將數據組織成關鍵值形式,傳送到數據分布和平衡模組;協調器起到控制系統各組成部分,以及在各個部分之間起到協調的作用;
數據分布和平衡模組,與存儲系統相連線,用於在寫入過程中接收協調器組織成關鍵值形式的數據,再分配數據到存儲系統不同的伺服器節點上,使數據均勻的分布在存儲系統的DHT結構中,是DHT算法實現的模組。
數據平衡和分布模組在分配數據寫入存儲系統不同節點上時,需要根據用戶設定的保存數據副本的數量,將數據寫入多個伺服器節點,寫入伺服器節點的數量等於系統設定的副本數量。
在該實施例中所述組織成關鍵值形式數據具體為組織成Key/Value結構的數據。
其中,存儲系統由多個伺服器節點組成,所有伺服器節點在存儲系統中以DHT結構組織,每個伺服器節點的結構如圖3所示包括版本控制模組、記憶體存儲管理模組、數據同步模組和智慧型資料庫,其中版本控制模組、記憶體存儲管理模組和數據同步模組三者構成DHT存儲系統,各模組具體關係如下:
版本控制模組,連線到數據分布和平衡模組,用於接收數據分布和平衡模組分配而來的數據,給接收的數據加上時間戳,以區分數據的版本信息;將加上時間戳的數據傳送到記憶體存儲管理模組;
記憶體存儲管理模組,連線版本控制模組,用於負責暫時存儲版本控制模組進行版本區分後的數據,並對存儲的數據進行管理和維護,也就是維持的數據的Key/Value結構,避免數據發生混亂,同時將完成同步的數據標記無效,防止多次同步;
數據同步模組,連線記憶體存儲管理模組、智慧型資料庫和元數據伺服器,並接收協調器的命令,用於負責將記憶體存儲管理模組中的數據轉存到智慧型資料庫中;數據同步模組接收協調器發出的數據同步指令後,開始解析記憶體存儲管理模組中存儲的Key/Value形式的數據,組織成智慧型資料庫中定義好的結構寫入智慧型資料庫;
智慧型資料庫,連線到DHT存儲系統,並連線數據查詢接口,用於提供持久化存儲功能和複雜查詢功能;所述智慧型資料庫可以採用MySQL資料庫、Postgre SQL資料庫或BerkeleyDB資料庫。在該實施例中選用MySQL資料庫作為伺服器節點上的智慧型資料庫。
另外在具體實施例中為實現所述設備中的查詢功能,所述協調器中進一步包括一個數據查詢接口。數據查詢接口連線元數據伺服器和MySQL資料庫;用於實現MySQL資料庫的查詢功能;數據查詢接口接收協調器的查詢指令,並連線元數據伺服器,利用元數據伺服器中的元數據找到查詢指令需查詢的數據的伺服器節點位置信息,然後數據查詢接口根據元數據中的伺服器節點位置信息,將查詢命令傳送到需查詢數據所在的一個或者多個伺服器節點位置,使查詢操作及查詢相關的計算操作能夠在伺服器節點上直接進行;數據查詢接口調用伺服器節點上MySQL資料庫的查詢計算函式使伺服器節點完成查詢操作,數據查詢接口再接收各個進行查詢操作的伺服器節點上得到的查詢結果,並將所有查詢結果去重重組後返回協調器。
下面結合在具體實施例中的情況,進一步說明《一種海量信息存儲系統及實現方法》所述海量信息存儲系統實現方法。
以智慧型電網場景下為例,假設系統設定的副本數為2;參照圖4所示,在進行寫入操作時,具體步驟如下:
r1、協調器接收客戶端傳來的數據,將同一樓宇的數據組織成Key/Value的形式,將組織後的數據轉發給數據分布和平衡模組;
r2、數據分布和平衡模組根據一致性哈希算法選擇多個伺服器節點進行數據寫入,伺服器節點個數與用戶預設的副本數相等。
數據寫入到伺服器節點以後,在伺服器節點中存儲的步驟如下:
r3、數據寫入到每個伺服器節點上,首先經過版本控制模組,對數據進行版本化處理,以當前系統時間作為時間戳加入到Key/Value結構數據的Value中,以區分數據的時間版本信息,然後將加上時間戳的數據轉發給記憶體管理模組;
r4、記憶體存儲管理模組暫時儲存版本控制模組傳送的數據,並對存儲的數據進行管理和維護,也就是維持的數據的Key/Value結構,避免數據發生混亂;
r5、當數據同步模組接收到協調器傳送來的數據同步指令,即開始將記憶體存儲管理模組中暫時存儲的數據進行解析,將數據中Value部分包含的的用戶數據轉化為MySQL資料庫規定的結構化模式,批量轉存入MySQL資料庫中,同時將將解析過程中獲取的數據的層次結構和位置信息傳送到元數據伺服器,元數據伺服器對自身以保存的信息進行同步更新。
當數據根據一致性哈希算法寫入具體節點時,數據流過程和數據變化形式如圖5所示,具體為:
步驟r3版本控制模組在數據的Value部分後面加上時間戳;步驟r4記憶體存儲管理模組暫時儲存數據並進行管理和維護;步驟r5數據同步模組將Value中的信息解析轉換為MySQL資料庫中規定的結構批量轉存入MySQL資料庫,並對元數據伺服器中的元數據同步更新。
上述實施例中,假設數據分布和平衡模組以Building為單位將數據分配保存到各伺服器節點,即一個伺服器節點上保存一個Building的數據,同時一個伺服器節點又包括兩個虛擬節點。需要說明,在不同實施例中可以根據需要以不同的單位將數據分配到各伺服器節點,也可以將一個伺服器節點劃分為不同個數的虛擬節點,並不影響整體方案。
元數據伺服器中保存的數據包括數據層次結構和數據位置信息;如圖6.1所示即為:
Key:City1_District2_Community3_Building4_Collect1
Value:List(User_data1,User_data2)
這一Key/Value結構數據在元數據伺服器中的數據層次結構;
元數據伺服器中的數據位置信息如圖6.2所示,該實施例中具體含義為:Building4中含有的數據信息保存在同一個伺服器節點B。
在上述實施例中,當系統進行查詢為發出的查詢命令無需拆分到不同伺服器節點的簡單查詢時,例如對上述Building4中的數據進行查詢時,參照圖7所示,具體步驟如下:
s1、協調器中的數據查詢接口接收協調器的查詢指令,連線元數據伺服器讀取需查詢數據的元數據,找到需查詢數據的層次結構和位置信息;
s2、數據查詢接口根據需查詢數據的層次結構和位置信息,將查詢指令轉發到對應的伺服器節點,並調用伺服器節點上保存的查詢計算函式進行查詢操作;
s3、伺服器節點執行查詢操作之後,將得到的查詢結果返回數據查詢接口,數據查詢接口再將結果返回協調器;
s4、協調器對返回的數據重組並去重,操作結果返回用戶,實現查詢目的。
另外,當查詢命令所查詢的以Building為單位的數據保存在多個伺服器節點上的時候,也無需對查詢命令進行拆分,可以直接轉發到相應的伺服器節點上。
在另一實施例中,當查詢指令指示對Community3進行查詢時,所查詢數據的層次結構和位置信息如圖8.1和圖8.2所示,需查詢的數據分別位於Building4和Building5中,此時由於數據以Building為單位進行儲存,則需要進一步將對針對Community的查詢指令拆分為多個針對Building的查詢指令,傳送到對應的多個伺服器節點上,此種查詢即為複雜查詢,具體步驟如下:
t1、協調器中的數據查詢接口接收協調器的查詢指令,連線元數據伺服器讀取需查詢數據的元數據,找到需查詢數據的層次結構和位置信息;
t2、數據查詢接口根據需查詢數據的層次結構和位置信息,將查詢指令拆分後,轉發到對應的多個伺服器節點,並調用每個伺服器節點上保存的查詢計算函式進行查詢操作;
t3、各伺服器節點執行查詢操作之後,分別將得到的查詢結果返回數據查詢接口,數據查詢接口將所有查詢結果統一集中,再全部返回協調器;
t4、協調器對返回的數據重組並去重,操作結果返回用戶,實現查詢目的。
需要說明的是,上述兩個查詢實施例中,事先給出了元數據中包含的層次結構和位置信息,目的在於方便說明和區分簡單查詢與複雜查詢;實際套用中在查詢前只能獲取所查詢數據的層次結構信息,無法獲取所查詢數據的位置信息。
綜上所述,該發明提供了一種海量信息存儲系統及實現方法,通過整合DHT存儲結構和MySQL資料庫二者優勢,實現了在滿足快速吞吐海量數據的同時,進一步提供複雜查詢功能,並且所述查詢功能通過查詢命令拆分和重組,使計算在數據存在的節點上進行,並且可以多單位查詢同時執行,提高了查詢的速度。

榮譽表彰

2014年11月6日,《一種海量信息存儲系統及實現方法》獲得第十六屆中國專利優秀獎。

相關詞條

熱門詞條

聯絡我們