国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      可伸縮的分布式的資源描述框架數(shù)據(jù)存儲方法及裝置與流程

      文檔序號:11830497閱讀:292來源:國知局
      可伸縮的分布式的資源描述框架數(shù)據(jù)存儲方法及裝置與流程

      本發(fā)明涉及計算機領域,尤其涉及一種可伸縮的分布式的資源描述框架數(shù)據(jù)存儲方法及裝置。



      背景技術:

      語義網是通過萬維網上的文檔添加能夠被機器理解的語義(Meta Data),從而使整個互聯(lián)網成為一個通用的信息交換媒介。資源描述框架(Resource Description Framework,簡稱:RDF)是用于描述網絡資源的萬維網聯(lián)盟(World Wide Web Consortium,簡稱:W3C)標準,用于表達關于互聯(lián)網網頁資源的元數(shù)據(jù),例如網頁的標題、作者、修改日期、內容以及版權信息等?;赗DF數(shù)據(jù)對語義網進行研究,一直是科學界的研究熱點。而如何高性能、易擴展地存儲和查詢海量RDF數(shù)據(jù)成為亟需解決的問題。

      現(xiàn)有技術中,針對海量的RDF數(shù)據(jù),學術界已經開發(fā)了一些成熟的RDF數(shù)據(jù)存儲方法,這些存儲方法大都采用傳統(tǒng)的集中式關系型數(shù)據(jù)庫來存儲RDF數(shù)據(jù)。但是,隨著RDF數(shù)據(jù)的急速增長,傳統(tǒng)的集中式關系型數(shù)據(jù)存儲方式已經無法滿足存儲及查詢計算的需求,因此,分布式RDF數(shù)據(jù)存儲與查詢系統(tǒng)得到了越來越多的應用。例如,一種RDF數(shù)據(jù)存儲方案中,采用鍵值(key-value)存儲系統(tǒng)Redis作為RDF數(shù)據(jù)的存儲系統(tǒng),通過將RDF數(shù)據(jù)通過多個存儲節(jié)點進行存儲,并行處理查詢任務,從而提高了查詢效率。

      但是,現(xiàn)有技術中提供的這種分布式RDF數(shù)據(jù)存儲方法,當某一個數(shù)據(jù)存儲節(jié)點失效時,數(shù)據(jù)就會丟失,導致服務中斷。



      技術實現(xiàn)要素:

      本發(fā)明實施例提供一種可伸縮的分布式的資源描述框架數(shù)據(jù)存儲方法及裝置,用于解決現(xiàn)有技術中的資源描述框架數(shù)據(jù)存儲方法中存儲節(jié)點失效導致服務中斷的問題。

      本發(fā)明實施例提供一種智能終端的外設管控檢測方法,包括:

      將所有資源描述框架RDF數(shù)據(jù)分配到至少兩個存儲節(jié)點的內存中進行存儲;

      將每個第一存儲節(jié)點的內存中的數(shù)據(jù)備份到第二存儲節(jié)點的持久化存儲器中,所述第一存儲節(jié)點及所述第二存儲節(jié)點為所述至少兩個存儲節(jié)點中的任意一個存儲節(jié)點,所述第二存儲節(jié)點與所述第一存儲節(jié)點相鄰。

      在上述實施例的基礎上,所述方法還包括:

      監(jiān)控所述至少兩個存儲節(jié)點的存儲狀態(tài);

      若所述第一存儲節(jié)點的存儲狀態(tài)為失效,則,將所述第二存儲節(jié)點的持久化存儲器中備份的所述第一存儲節(jié)點的內存中的數(shù)據(jù),恢復到所述第二存儲節(jié)點的內存中。

      在上述實施例的基礎上,所述將所有資源描述框架RDF數(shù)據(jù)分配到至少兩個存儲節(jié)點的內存中進行存儲之前,還包括:

      獲取所述RDF數(shù)據(jù)的主語、謂語及賓語;

      根據(jù)所述主語、謂語及賓語對所述RDF數(shù)據(jù)建立索引;

      所述將所有RDF數(shù)據(jù)分配到至少兩個存儲節(jié)點的內存中進行存儲,包括:

      根據(jù)一致性哈希算法將建立了索引的所述RDF數(shù)據(jù)分配到所述至少兩個存儲節(jié)點的內存中進行存儲。

      在上述實施例的基礎上,所述根據(jù)所述主語、謂語及賓語對所述RDF數(shù)據(jù)建立索引,包括以下任意一種或多種方式的組合:

      以主語和謂語為鍵,賓語為值對所述RDF數(shù)據(jù)建立索引;

      以主語和賓語為鍵,謂語為值對所述RDF數(shù)據(jù)建立索引;

      以謂語和賓語為鍵,主語為值對所述RDF數(shù)據(jù)建立索引;

      以主語為鍵,謂語和賓語為值對所述RDF數(shù)據(jù)建立索引;

      以謂語為鍵,主語和謂語為值對所述RDF數(shù)據(jù)建立索引;

      以賓語為鍵,主語和謂語為值對所述RDF數(shù)據(jù)建立索引。

      本發(fā)明實施例還提供一種可伸縮的分布式的資源描述框架數(shù)據(jù)存儲裝置,包括:

      分配模塊,用于將所有資源描述框架RDF數(shù)據(jù)分配到至少兩個存儲節(jié)點的內存中進行存儲;所述至少兩個存儲節(jié)點包括第一存儲節(jié)點及第二存儲節(jié)點;

      備份模塊,用于將所述第一存儲節(jié)點的內存中的數(shù)據(jù)備份到所述第二存儲節(jié)點的持久化存儲器中,所述第二存儲節(jié)點與所述第一存儲節(jié)點相鄰。

      在上述實施例的基礎上,所述裝置還包括:

      監(jiān)控模塊,用于監(jiān)控所述至少兩個存儲節(jié)點的存儲狀態(tài);

      數(shù)據(jù)恢復模塊,用于當所述監(jiān)控模塊監(jiān)控到所述第一存儲節(jié)點的存儲狀態(tài)為失效時,將所述第二存儲節(jié)點的持久化存儲器中備份的所述第一存儲節(jié)點的內存中的數(shù)據(jù),恢復到所述第二存儲節(jié)點的內存中。

      在上述實施例的基礎上,所述裝置還包括:

      獲取模塊,用于在所述分配模塊將所有資源描述框架RDF數(shù)據(jù)分配到至少兩個存儲節(jié)點的內存中進行存儲之前,獲取所述RDF數(shù)據(jù)的主語、謂語及賓語;

      內存存儲管理模塊,用于根據(jù)所述主語、謂語及賓語對所述RDF數(shù)據(jù)建立索引;

      所述分配模塊,用于根據(jù)一致性哈希算法將建立了索引的所述RDF數(shù)據(jù)分配到所述至少兩個存儲節(jié)點的內存中進行存儲。

      在上述實施例的基礎上,所述內存存儲管理模塊,具體用于:

      以主語和謂語為鍵,賓語為值對所述RDF數(shù)據(jù)建立索引;

      以主語和賓語為鍵,謂語為值對所述RDF數(shù)據(jù)建立索引;

      以謂語和賓語為鍵,主語為值對所述RDF數(shù)據(jù)建立索引;

      以主語為鍵,謂語和賓語為值對所述RDF數(shù)據(jù)建立索引;

      以謂語為鍵,主語和謂語為值對所述RDF數(shù)據(jù)建立索引;

      以賓語為鍵,主語和謂語為值對所述RDF數(shù)據(jù)建立索引。

      本發(fā)明實施例提供的可伸縮的分布式的資源描述框架數(shù)據(jù)存儲方法及裝置,通過將所有RDF數(shù)據(jù)分配到各個存儲節(jié)點,提高了數(shù)據(jù)存儲及訪問的效率。同時,支持存儲節(jié)點的動態(tài)加入和退出,并將各個存儲節(jié)點中的數(shù)據(jù)備份到一致性哈希環(huán)中的相鄰存儲節(jié)點中,保證某個存儲節(jié)點失效時,能夠快速地從該存儲節(jié)點的相鄰存儲節(jié)點本地恢復數(shù)據(jù),保證系統(tǒng)不崩潰,持續(xù)提供數(shù)據(jù)存儲及查詢服務。當新增存儲節(jié)點時,數(shù)據(jù)根據(jù)一致性哈希協(xié)議自動遷移,新增節(jié)點能夠迅速投入使用。同時,采用Redis集群作為底層的內存存儲系統(tǒng),并采用SP_O,SO_P,OP_S,S_OP,P_SO,O_SP 6個索引,并在此基礎上構建了分布式的RDF查詢引擎,實現(xiàn)了一個快速查詢的分布式RDF系統(tǒng),并能夠支持任何類型的數(shù)據(jù)查詢。

      附圖說明

      為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖做一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

      圖1為本發(fā)明實施例可伸縮的分布式的資源描述框架數(shù)據(jù)存儲及查詢系統(tǒng)的結構示意圖;

      圖2為本發(fā)明實施例中查詢計劃生成模塊生成的查詢計劃樹的結構示意圖;

      圖3是本發(fā)明實施例可伸縮的分布式的資源描述框架數(shù)據(jù)存儲方法的流程示意圖;

      圖4為本發(fā)明實施例可伸縮的分布式的資源描述框架數(shù)據(jù)存儲方法進行數(shù)據(jù)分配及備份的流程示意圖;

      圖5為本發(fā)明實施例可伸縮的分布式的資源描述框架數(shù)據(jù)存儲方法向存儲節(jié)點中分配數(shù)據(jù)的過程示意圖;

      圖6為本發(fā)明實施例可伸縮的分布式的資源描述框架數(shù)據(jù)存儲裝置的結構示意圖。

      具體實施方式

      為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

      本發(fā)明實施例智能終端的可伸縮的分布式的資源描述框架數(shù)據(jù)存儲方法及裝置,用于實現(xiàn)資源描述框架(Resource Description Framework,簡稱RDF)數(shù)據(jù)基于鍵值的分布式存儲和查詢,提高數(shù)據(jù)讀取效率,同時通過將數(shù)據(jù)備份到相鄰存儲節(jié)點中,使得某個存儲節(jié)點失效時,可以從相鄰存儲節(jié)點中恢復數(shù)據(jù),防止系統(tǒng)崩潰,服務中斷,影響數(shù)據(jù)存儲與查詢性能。

      圖1為本發(fā)明實施例可伸縮的分布式的資源描述框架數(shù)據(jù)存儲及查詢系統(tǒng)的結構示意圖。

      請參閱圖1,本發(fā)明實施例提供的可伸縮的分布式的資源描述框架數(shù)據(jù)存儲及查詢系統(tǒng)包括主控節(jié)點10,至少兩個從節(jié)點20,及用于實現(xiàn)所述主控節(jié)點10與所述從節(jié)點20之間通信的通信模塊30。所述主控節(jié)點10及從節(jié)點20可以為具有數(shù)據(jù)處理能力及存儲能力的設備,如計算機。所述主控節(jié)點10包括:RDF數(shù)據(jù)解析器11、字典12、RDF數(shù)據(jù)統(tǒng)計模塊13、RDF數(shù)據(jù)切分器14、查詢語句解析器15、查詢計劃生成模塊16及優(yōu)化查詢模塊17。所述從節(jié)點20包括本地查詢處理器21、內存存儲管理模塊22、備份及恢復模塊23、磁盤存儲管理模塊24及監(jiān)控模塊25。

      具體地,所述RDF數(shù)據(jù)解析器11負責從不同格式的RDF數(shù)據(jù)文件中提取出主語、謂語及賓語(subject,predicate,object)三元組。RDF數(shù)據(jù)源目前一般來自NT,N3,TTL等格式的數(shù)據(jù)文件。他們以不同的方式來描述RDF數(shù)據(jù)圖,但他們的基本元素都是三元組。所述RDF數(shù)據(jù)解析器11能夠識別這些格式的數(shù)據(jù)文件,并從每條語句中提取出三元組。一個數(shù)據(jù)文件大則10G,所述RDF數(shù)據(jù)解析器11能夠快速地處理這些文件。

      所述字典12用于將字符串格式的三元組映射成ID,以便于對三元組進行編碼及排序,并且節(jié)省存儲空間。首先,從所述RDF數(shù)據(jù)解析器11中接收字符串格式的三元組,然后根據(jù)每個元組到字典中去查找對應的標識(Ientification,簡稱ID)。如果存在則直接返回該ID,如果不存在則生成一個唯一的ID,并將所述ID和所述字符串對應存入字典中,返回所述ID。

      所述RDF數(shù)據(jù)類型統(tǒng)計模塊13用于統(tǒng)計不同組合的三元組的數(shù)量,并將統(tǒng)計數(shù)據(jù)保存到所述主控節(jié)點10的內存中。所述統(tǒng)計數(shù)據(jù)為將來查詢計劃的優(yōu)化提供幫助,以最優(yōu)化連接順序,減少中間數(shù)據(jù)的產生。鑒于主語(簡稱S),謂語(簡稱P),賓語(簡稱O),主語和謂語(簡稱SP),謂語和賓語(簡稱PO)類型的三元組在查詢中較為常用,所述數(shù)據(jù)類型統(tǒng)計模塊13存儲相同S、相同P、相同O、相同SP或者相同PO的數(shù)量,在查詢過程中需要決定連接順序時,根據(jù)這些統(tǒng)計數(shù)據(jù)來判斷。數(shù)量少的先連接,數(shù)量多的后連接,從而提高查詢效率。

      所述RDF數(shù)據(jù)切分器14用于按照一致性哈希規(guī)則將數(shù)據(jù)分配到各個從節(jié)點20中。由于一致性哈希算法支持節(jié)點的動態(tài)加入和退出,因此通過一致性哈希算法可以實現(xiàn)系統(tǒng)的容錯功能。首先構建一個環(huán)形哈??臻g,然后將RDF數(shù)據(jù)哈希到環(huán)中,接著將存儲節(jié)點哈希到環(huán)中,按照順時針方向,將數(shù)據(jù)存到相鄰的存儲節(jié)點中。當刪除一個存儲節(jié)點時,按照順時針方向,將被刪節(jié)點的數(shù)據(jù)路由到下一個存儲節(jié)點中。當新增一個存儲節(jié)點時,將新增節(jié)點及其逆時針方向相鄰的存儲節(jié)點之間的數(shù)據(jù)都路由到新增存儲節(jié)點中。

      所述查詢語句解析器15用于將查詢語言和數(shù)據(jù)獲取協(xié)議(Simple Protocol and RDF Query Language,簡稱:SPARQL)查詢語句解析成一個查詢圖,并識別出其中的變量、常量以及查詢模式。

      所述查詢計劃生成模塊16用于根據(jù)查詢語句生成一個查詢計劃,查詢計劃是一個操作樹,樹上每個節(jié)點都是一個算子,算子包括掃描操作,連接操作。

      圖2為本發(fā)明實施例中查詢計劃生成模塊生成的查詢計劃樹的結構示意圖。如圖2所示,DIS表示掃描操作,從存儲中找到符合的查詢模式,DMJ表示對兩個查詢模式進行連接操作,最后DHJ對所有的結果進行連接,生成最終的查詢計劃。

      所述優(yōu)化查詢模塊17用于根據(jù)生成的所述查詢計劃以及所述統(tǒng)計數(shù)據(jù),優(yōu)化掃描和連接順序,使查詢計劃樹上的操作能夠并行執(zhí)行,并盡量減少中間結果的產生。

      所述從節(jié)點20的所述本地查詢處理器21用于根據(jù)從所述主控節(jié)點10中接收到的所述查詢計劃執(zhí)行相關的掃描操作和連接操作,并負責各個從節(jié)點20間相互傳輸中間結果。其中掃描操作表示根據(jù)所述查詢模式從存儲中找到符合條件的三元組,連接操作表示將兩個查詢模式計算笛卡爾積得到中間結果或者最終結果。

      所述內存存儲管理模塊22用于將接收到的RDF三元組數(shù)據(jù)以鍵值(key-value)的方式存入內存中,并根據(jù)查詢要求快速地查找數(shù)據(jù)。目前針對查詢的可能情況,一共建立6類索引。分別是:SP為鍵,O為值;SO為鍵,P為值;OP為鍵,S為值;S為鍵,OP為值;P為鍵,SO為值;O為鍵,SP為值。索引后的數(shù)據(jù)以(String,Set<String>)字符串結構存儲在Redis數(shù)據(jù)庫中。

      所述備份及恢復模塊23用于根據(jù)一致性哈希算法將所述從節(jié)點20的內存中存儲的數(shù)據(jù)備份到相鄰從節(jié)點的持久化存儲器,例如磁盤中。磁盤中的數(shù)據(jù)以鍵值結構由磁盤管理模塊24負責組織和管理。直到所有數(shù)據(jù)加載完成,備份也相應完成。當所述從節(jié)點20失效時能夠快速地從相鄰從節(jié)點的磁盤中恢復數(shù)據(jù),保證查詢服務不中斷。

      所述監(jiān)控模塊25用于監(jiān)控各個從節(jié)點20,一旦任意一個從節(jié)點20失效,快速通知所述主控節(jié)點10恢復所述失效從節(jié)點中的數(shù)據(jù)。所述主控節(jié)點10收到請求后,通知其他存活的從節(jié)點并行地恢復數(shù)據(jù),實現(xiàn)容錯。具體地,所述監(jiān)控模塊24進行失效檢測利用了Zookeeper的配置管理和組成員管理服務。

      圖3是本發(fā)明實施例可伸縮的分布式的資源描述框架數(shù)據(jù)存儲方法的流程示意圖。

      請參閱圖3,本發(fā)明實施例提供的可伸縮的分布式的資源描述框架數(shù)據(jù)存儲方法包括:

      S101:將所有資源描述框架RDF數(shù)據(jù)分配到至少兩個存儲節(jié)點的內存中進行存儲;

      所述存儲節(jié)點為上述可伸縮的分布式的資源描述框架數(shù)據(jù)存儲及查詢系統(tǒng)中的從節(jié)點。具體地,所述存儲節(jié)點可以為具有存儲功能的電子設備,如計算機、移動終端等。

      在執(zhí)行所述步驟S101之前,當主控節(jié)點接收到RDF數(shù)據(jù)后,先獲取所述RDF數(shù)據(jù)的主語、謂語及賓語;然后根據(jù)所述主語、謂語及賓語對所述RDF數(shù)據(jù)建立索引。

      所述將所有RDF數(shù)據(jù)分配到至少兩個存儲節(jié)點的內存中進行存儲,包括:

      根據(jù)一致性哈希算法將建立了索引的所述RDF數(shù)據(jù)分配到所述至少兩個存儲節(jié)點的內存中進行存儲。

      具體地,所述根據(jù)所述主語、謂語及賓語對所述RDF數(shù)據(jù)建立索引,包括以下任意一種或多種方式的組合:

      以主語和謂語為鍵,賓語為值對所述RDF數(shù)據(jù)建立索引;

      以主語和賓語為鍵,謂語為值對所述RDF數(shù)據(jù)建立索引;

      以謂語和賓語為鍵,主語為值對所述RDF數(shù)據(jù)建立索引;

      以主語為鍵,謂語和賓語為值對所述RDF數(shù)據(jù)建立索引;

      以謂語為鍵,主語和謂語為值對所述RDF數(shù)據(jù)建立索引;

      以賓語為鍵,主語和謂語為值對所述RDF數(shù)據(jù)建立索引。

      采用上述六種方式建立索引,涵蓋了RDF數(shù)據(jù)主語、謂語、賓語三元組按照鍵值結構的任意組合方式,使得本發(fā)明實施例提供的分布式的資源描述框架數(shù)據(jù)存儲方法可以支持任何類型的數(shù)據(jù)查詢。

      S102:將每個第一存儲節(jié)點的內存中的數(shù)據(jù)備份到第二存儲節(jié)點的持久化存儲器中,所述第一存儲節(jié)點及所述第二存儲節(jié)點為所述至少兩個存儲節(jié)點中的任意一個存儲節(jié)點,所述第二存儲節(jié)點與所述第一存儲節(jié)點相鄰。

      進一步地,所述方法還包括:

      監(jiān)控所述至少兩個存儲節(jié)點的存儲狀態(tài);

      若所述第一存儲節(jié)點的存儲狀態(tài)為失效,則,將所述第二存儲節(jié)點的持久化存儲器中備份的所述第一存儲節(jié)點的內存中的數(shù)據(jù),恢復到所述第二存儲節(jié)點的內存中。

      圖4為本發(fā)明實施例可伸縮的分布式的資源描述框架數(shù)據(jù)存儲方法進行數(shù)據(jù)分配及備份的流程示意圖。

      請參閱圖3,進行數(shù)據(jù)分配時,主控節(jié)點從RDF數(shù)據(jù)文件中解析出主語、謂語及賓語三元組,對每條三元組建立上述6種鍵值類型的索引,并且根據(jù)一致性哈希協(xié)議將RDF數(shù)據(jù)分發(fā)到多個相應的存儲節(jié)點中保存。多個存儲節(jié)點接收到數(shù)據(jù)后存儲一份至內存,并根據(jù)一致性哈希協(xié)議找到該存儲節(jié)點在一致性哈希環(huán)上的相鄰存儲節(jié)點,將數(shù)據(jù)備份到該相鄰存儲節(jié)點的持久化存儲器,例如磁盤中。

      圖5為本發(fā)明實施例可伸縮的分布式的資源描述框架數(shù)據(jù)存儲方法向存儲節(jié)點中分配數(shù)據(jù)的過程示意圖。

      下面以圖5為例對數(shù)據(jù)的分配、備份及恢復過程進行說明。

      請參閱圖5,對數(shù)據(jù)進行分配時,首先,構建一個環(huán)形哈??臻g,然后將所有RDF數(shù)據(jù)哈希到環(huán)中,接著將各個存儲節(jié)點哈希到環(huán)中,按照順時針方向,將數(shù)據(jù)存到相鄰的存儲節(jié)點中。如圖3,示例地,數(shù)據(jù)1-3存儲于存儲節(jié)點A的內存中,數(shù)據(jù)4-6存儲于存儲節(jié)點B的內存中,數(shù)據(jù)7-9存儲于存儲節(jié)點C的內存中,數(shù)據(jù)10-12存儲于存儲節(jié)點D的內存中,依次類推。同時,數(shù)據(jù)1-3備份于存儲節(jié)點A的相鄰存儲節(jié)點B的磁盤中,數(shù)據(jù)4-6備份于存儲節(jié)點B的相鄰存儲節(jié)點C的磁盤中,數(shù)據(jù)7-9備份于存儲節(jié)點D的磁盤中,數(shù)據(jù)10-12備份于存儲節(jié)點A的磁盤中,依次類推。

      當存儲節(jié)點D失效,需要刪除存儲節(jié)點D時,系統(tǒng)通過以下方式對存儲節(jié)點D中的數(shù)據(jù)進行恢復:

      1)從存儲節(jié)點A的磁盤中恢復數(shù)據(jù)10-12至內存中;

      2)將存儲節(jié)點A磁盤中的所有數(shù)據(jù)10-12及1-3轉移到存儲節(jié)點B的磁盤中;

      3)清空存儲節(jié)點A的磁盤中的所有數(shù)據(jù);

      4)將存儲節(jié)點C內存中的所有數(shù)據(jù)備份到存儲節(jié)點A的磁盤中。

      示例地,請繼續(xù)參閱圖4,當分布式系統(tǒng)集群計算能力和存儲能力不足,需要新增存儲節(jié)點D時,各個存儲節(jié)點中的數(shù)據(jù)遷移過程如下:

      1)計算新增存儲節(jié)點D的哈希值,根據(jù)存儲節(jié)點D的哈希值確定存儲節(jié)點在哈希環(huán)中的位置;

      2)從存儲節(jié)點B的磁盤中將存儲節(jié)點D的存儲范圍內的數(shù)據(jù)恢復到存儲節(jié)點D的內存中;

      3)將存儲節(jié)點A的磁盤的數(shù)據(jù)中將存儲節(jié)點C的存儲范圍內的數(shù)據(jù)轉移到存儲節(jié)點D的磁盤中;

      4)情況存儲節(jié)點A的磁盤中的數(shù)據(jù);

      5)從存儲節(jié)點B的磁盤中將存儲節(jié)點D的存儲范圍內的數(shù)據(jù)轉移到存儲節(jié)點A的磁盤中;

      6)從存儲節(jié)點A的內存中刪除存儲節(jié)點D的存儲范圍內的數(shù)據(jù);

      7)從存儲節(jié)點B的磁盤中刪除存儲節(jié)點D的存儲范圍內的數(shù)據(jù)。

      本發(fā)明實施例提供的可伸縮的分布式的資源描述框架數(shù)據(jù)存儲方法,通過一致性哈希算法將所有RDF數(shù)據(jù)分配到各個存儲節(jié)點,提高了數(shù)據(jù)存儲訪問的效率。同時,支持存儲節(jié)點的動態(tài)加入和退出,并將各個存儲節(jié)點中的數(shù)據(jù)備份到一致性哈希環(huán)中的相鄰存儲節(jié)點中,保證某個存儲節(jié)點失效時,能夠快速地從該存儲節(jié)點的相鄰存儲節(jié)點本地恢復數(shù)據(jù),保證系統(tǒng)不崩潰,持續(xù)提供數(shù)據(jù)存儲及查詢服務。當新增存儲節(jié)點時,數(shù)據(jù)根據(jù)一致性哈希協(xié)議自動遷移,新增節(jié)點能夠迅速投入使用。同時,采用Redis集群作為底層的內存存儲系統(tǒng),并采用SP_O,SO_P,OP_S,S_OP,P_SO,O_SP 6個索引,并在此基礎上構建了分布式的RDF查詢引擎,實現(xiàn)了一個快速查詢的分布式RDF系統(tǒng),并能夠支持任何類型的數(shù)據(jù)查詢。

      圖6為本發(fā)明實施例可伸縮的分布式的資源描述框架數(shù)據(jù)存儲裝置的結構示意圖。

      請參閱圖6,本發(fā)明實施例提供的可伸縮的分布式的資源描述框架數(shù)據(jù)存儲裝置,至少包括分配模塊610及備份模塊620。

      所述分配模塊610,用于將所有資源描述框架RDF數(shù)據(jù)分配到至少兩個存儲節(jié)點的內存中進行存儲;所述至少兩個存儲節(jié)點包括第一存儲節(jié)點及第二存儲節(jié)點;

      所述備份模塊620,用于將所述第一存儲節(jié)點的內存中的數(shù)據(jù)備份到所述第二存儲節(jié)點的持久化存儲器中,所述第二存儲節(jié)點與所述第一存儲節(jié)點相鄰。

      在上述實施例的基礎上,進一步地,所述裝置還包括:

      監(jiān)控模塊630,用于監(jiān)控所述至少兩個存儲節(jié)點的存儲狀態(tài);

      數(shù)據(jù)恢復模塊640,用于當所述監(jiān)控模塊監(jiān)控到所述第一存儲節(jié)點的存儲狀態(tài)為失效時,將所述第二存儲節(jié)點的持久化存儲器中備份的所述第一存儲節(jié)點的內存中的數(shù)據(jù),恢復到所述第二存儲節(jié)點的內存中。

      在上述實施例的基礎上,進一步地,所述裝置還包括:

      獲取模塊650,用于在所述分配模塊將所有資源描述框架RDF數(shù)據(jù)分配到至少兩個存儲節(jié)點的內存中進行存儲之前,獲取所述RDF數(shù)據(jù)的主語、謂語及賓語;

      內存存儲管理模塊660,用于根據(jù)所述主語、謂語及賓語對所述RDF數(shù)據(jù)建立索引;

      所述分配模塊610,用于根據(jù)一致性哈希算法將建立了索引的所述RDF數(shù)據(jù)分配到所述至少兩個存儲節(jié)點的內存中進行存儲。

      在上述實施例的基礎上,進一步地,所述內存存儲管理模塊660,具體用于:

      以主語和謂語為鍵,賓語為值對所述RDF數(shù)據(jù)建立索引;

      以主語和賓語為鍵,謂語為值對所述RDF數(shù)據(jù)建立索引;

      以謂語和賓語為鍵,主語為值對所述RDF數(shù)據(jù)建立索引;

      以主語為鍵,謂語和賓語為值對所述RDF數(shù)據(jù)建立索引;

      以謂語為鍵,主語和謂語為值對所述RDF數(shù)據(jù)建立索引;

      以賓語為鍵,主語和謂語為值對所述RDF數(shù)據(jù)建立索引。

      本發(fā)明實施例提供的可伸縮的分布式的資源描述框架數(shù)據(jù)存儲裝置用于實現(xiàn)上述方法實施例提供的可伸縮的分布式的資源描述框架數(shù)據(jù)存儲方法,其具體實現(xiàn)原理及技術效果與方法實施例類似,在此不再贅述。

      本領域普通技術人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成。前述的程序可以存儲于一計算機、手機或其他便攜裝置的可讀取存儲介質中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。

      最后應說明的是:以上各實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的范圍。

      當前第1頁1 2 3 
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1