新四季網

數據分布式存儲的實現方法和系統的製作方法

2023-04-30 21:29:11 2

數據分布式存儲的實現方法和系統的製作方法
【專利摘要】本發明提供了一種數據分布式存儲的實現方法和系統。所述方法包括:獲取業務觸發的數據插入操作;根據所述業務的數據插入操作由存儲資源佔用信息得到所述業務所在存儲伺服器的網絡地址,所述存儲伺服器與業務將是一對多的對應關係;由所述網絡地址所在存儲伺服器得到存入所述待插入數據的數據內存塊標識,並按照所述數據內存塊標識將待插入數據存入相應的數據內存塊。採用本發明能提高訪問性能和存儲資源的使用效率。
【專利說明】數據分布式存儲的實現方法和系統

【技術領域】
[0001]本發明涉及存儲技術,特別是涉及一種數據分布式存儲的實現方法和系統。

【背景技術】
[0002]隨著分布式存儲的發展,同一業務的數據大都分布存儲於多臺存儲伺服器中,例如CMEM (Cloud Memcache)存儲系統,若需要在CMEM存儲系統進行數據訪問則需要訪問多臺的存儲伺服器,例如,對業務的數據進行批量操作,而訪問多臺伺服器時的網絡時延將大大限制了 CMEM存儲系統中的數據訪問。
[0003]因此,為了避免此情況的發生,將採用組件方式的bitmap存儲系統,一個業務的數據將獨佔一個存儲伺服器進行存儲,以提高訪問速度,但是,由於大多數業務所存儲的數據均是標誌位、時間戳等數據長度較小的數據,應用組件方式的bitmap存儲系統所實現的業務數據存儲將造成了系統資源的浪費。


【發明內容】

[0004]基於此,有必要提供一種能提高訪問性能和存儲資源的使用效率的數據分布式存儲的實現方法。
[0005]此外,還有必要提供一種能提高訪問性能和存儲資源的使用效率的數據分布式存儲的實現系統。
[0006]一種數據分布式存儲的實現方法,包括如下步驟:
[0007]獲取業務觸發的數據插入操作;
[0008]根據所述業務的數據插入操作由存儲資源佔用信息得到所述業務所在存儲伺服器的網絡地址,所述存儲伺服器與業務將是一對多的對應關係;
[0009]由所述網絡地址所在存儲伺服器得到存入所述待插入數據的數據內存塊標識,並按照所述數據內存塊標識將待插入數據存入相應的數據內存塊。
[0010]一種數據分布式存儲的實現系統,其特徵在於,包括:
[0011]數據插入操作獲取模塊,用於獲取業務觸發的數據插入操作;
[0012]地址獲取模塊,用於根據所述業務的數據插入操作由存儲資源佔用信息得到所述業務所在存儲伺服器的網絡地址,所述存儲伺服器與業務將是一對多的對應關係;
[0013]存儲模塊,用於由所述網絡地址所在存儲伺服器得存入所述待插入數據的數據內存塊標識,並按照所述數據內存塊標識將待插入數據存入相應數據內存塊。
[0014]上述數據分布式存儲的實現方法和系統,獲取業務觸發的數據插入操作,根據業務的數據插入操作由存儲資源佔用信息得到業務所在存儲伺服器的網絡地址,該存儲伺服器與業務將是一對多的對應關係,由該存儲伺服器得到存入待插入數據的數據內存塊標識,並按照數據內存塊標識將待插入數據存入相應的數據內存塊,以使得業務的數據存儲於同一存儲伺服器的若干個數據內存塊中,提高了數據存儲的訪問性能,存儲伺服器中空閒的數據內存塊可用於其它業務的數據存儲,有效提高了存儲資源的使用效率。

【專利附圖】

【附圖說明】
[0015]圖1為一個實施例中數據分布式存儲的實現方法的流程圖;
[0016]圖2為一個實施例中數據分布式存儲的實現方法的運行環境示意圖;
[0017]圖3為圖1中由網絡地址所在存儲伺服器得到存入待插入數據的數據內存塊標識的方法流程圖;
[0018]圖4為一個實施例中按照數據內存塊標識將待插入數據存入相應的數據內存塊的方法流程圖;
[0019]圖5為一個實施例中數據內存塊的示意圖;
[0020]圖6為圖5中空閒鍊表的不意圖;
[0021]圖7為圖5中數據內存塊的結構示意圖;
[0022]圖8為圖3中按照存儲模式從控制內存塊中的路由信息查詢得到存入待插入數據的數據內存塊標識的方法流程圖;
[0023]圖9為一個實施例中全量存儲模式中數據內存塊的示意圖;
[0024]圖10為另一個實施例中按照數據內存塊標識將待插入數據存入相應的數據內存塊的方法流程圖;
[0025]圖11為另一個實施例中數據分布式存儲的實現方法的流程圖;
[0026]圖12為另一個實施例中數據分布式存儲的實現方法的流程圖;
[0027]圖13為一個實施例中數據分布式存儲的實現系統的結構示意圖;
[0028]圖14為一個實施例中存儲模塊的結構示意圖;
[0029]圖15為另一個實施例中存儲模塊的結構示意圖;
[0030]圖16為圖14中尋址單元的結構示意圖;
[0031]圖17為另一個實施例中存儲模塊的結構示意圖;
[0032]圖18為另一個實施例中數據分布式存儲的實現系統的結構示意圖;
[0033]圖19為另一個實施例中數據分布式存儲的實現系統的結構示意圖。

【具體實施方式】
[0034]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
[0035]如圖1所示,在一個實施例中,一種數據分布式存儲的實現方法,包括如下步驟:
[0036]步驟S110,獲取業務觸發的數據插入操作。
[0037]本實施例中,請結合參閱圖2,在某一業務的數據插入過程中,將用於進行數據存儲的後臺劃分為應用層、控制層和存儲層,其中,應用層將用於為後臺的運行維護人員提供操作界面,即運行維護人員對業務的管理入口,控制層用於管理存儲資源,並控制應用層中觸發的操作的響應,存儲層用於實現數據的存儲和訪問,將以若干個存儲伺服器為硬體載體實現。通過對後臺的三層劃分,為運行維護人員提供應用層,以使得運行維護人員只需要關注業務邏輯,而不需要關注如何實現數據的存儲和訪問,實現了自動化運營,提高了各種業務實現的便捷性,進而有效降低運行和維護的成本。
[0038]通過應用層、控制層和存儲層所實現的數據分布式存儲將用於實現若干個業務的運行,因此,若需要實現數據的插入,則應當在應用層所提供的操作界面中針對相應的業務觸發數據插入操作,此時,根據該業務的數據插入操作可獲知該業務所對應的業務標識、待插入數據以及待插入數據所對應的關鍵值,並將該業務所對應的業務標識、待插入數據以及待插入數據所對應的關鍵值由應用層傳入控制層。
[0039]步驟S130,根據業務的數據插入操作由存儲資源佔用信息得到業務所在存儲伺服器的網絡地址。
[0040]本實施例中,所述存儲伺服器與業務將是一對多的對應關係,即任一業務的數據均存儲於同一存儲伺服器,並且該存儲伺服器將用於存儲多個業務的數據。通過控制層根據業務標識查詢存儲資源佔用信息為待插入數據分配存儲層中的存儲伺服器,進而將待插入數據存儲於分配的存儲伺服器中。
[0041]進一步的,由控制層依據存儲資源佔用信息所做的分配,使得同一業務的數據分布於同一存儲伺服器中,以使得後續的數據訪問不需要對不同的存儲伺服器進行訪問,進而不會受到網絡延時的影響,特別是對於數據的批量操作而言,將避免了訪問不同存儲伺服器來獲取數據而造成的批量操作性能瓶頸。
[0042]控制層的存儲資源佔用信息用於將通過資料庫的形式實現,將記錄了業務以及存儲伺服器之間的對應關係,進而提供存儲伺服器的佔用情況。
[0043]在一個實施例中,上述步驟S130包括:獲取業務對應的業務標識,根據業務標識查詢存儲資源佔用信息以得到業務所在存儲伺服器的網絡地址。
[0044]本實施例中,存儲資源佔用信息被存儲於控制層中,將被控制層用於控制存儲資源的分配,因此,存儲資源佔用信息將記錄了業務所在的存儲伺服器,即業務所在存儲伺服器的網絡地址、存儲層中存儲伺服器的內存分配情況以及存業務數量等信息,因此,根據觸發數據插入操作的業務所對應的業務標識,可在存儲資源佔用信息中查詢得到該業務標識所對應的存儲伺服器的網絡地址。
[0045]步驟S150,由網絡地址所在存儲伺服器得到存入待插入數據的數據內存塊標識,並按照數據內存塊標識將待插入數據存入相應的數據內存塊。
[0046]本實施例中,存儲伺服器將採用共享內存的形式來實現數據的存儲和訪問,存儲伺服器的共享內存將包括控制內存塊(控制cache)和數據內存塊(數據cache),其中,控制內存塊用於存儲所在存儲伺服器的控制信息和統計信息,例如,存儲模式、業務的路由信息、所在存儲伺服器中的業務數目、數據內存塊的狀態等,數據內存塊用於實現業務數據的存儲。存儲伺服器中通過控制內存塊控制數據內存塊中的數據存儲和數據訪問。
[0047]在優選的實施例中,每一存儲伺服器將部署了一個控制內存塊和多個數據內存塊。數據內存塊的大小可為512k,控制內存塊的大小可為512M。
[0048]存儲伺服器中業務所對應的數據將被存儲於若干個數據內存塊中,因此,根據業務標識在存儲伺服器中的控制內存塊查詢得到觸發了數據插入操作的業務所在的數據內存塊標識,進而根據該數據內存塊標識實現待插入數據的存儲。
[0049]由於存儲伺服器的數據內存塊中每一數據節點中除了用於存儲業務數據之外的其它控制欄位的空間佔用較少,進而在保證控制性能的前提下提高了存儲資源的使用效率。
[0050]進一步的,存儲伺服器所應用的存儲模式可以是索引存儲模式或全量存儲模式,在優選的實施例中,該存儲模式將為索引存儲模式,以保證存儲資源的高使用效率。
[0051]例如,若存儲伺服器中的數據量還未達到一定規模,則優先選用索引存儲模式,由於在索引存儲模式之下,其控制欄位只有12位元組,數據內存塊中數據條數可能有幾億,控制字節的精簡會節省很多的存儲空間,進而大為提高了存儲資源的使用效率。
[0052]相應的,由於控制內存塊中存儲了業務的路由信息,進而使得對存儲伺服器所進行的數據訪問可直接通過控制內存塊中的路由信息實現,從而實現了海量用戶對數據的快速訪問。如圖3所示,在一個實施例中,上述由網絡地址所在存儲伺服器得到存入待插入數據的數據內存塊標識的步驟包括:
[0053]步驟S151,於網絡地址對應的存儲伺服器查詢控制內存塊以得到業務的存儲模式。
[0054]本實施例中,存儲伺服器中的控制內存塊將記錄了存儲伺服器屬性、存儲模式、用於存儲數據的內存大小,例如,該內存大小可為物理內存*4/3、存儲伺服器中的數據內存塊數目、分配到存儲伺服器的業務數目、數據內存塊的狀態業務的路由信息和存儲伺服器的訪問成功率、時延率統計信息等,在此不一一進行列舉。控制內存塊中的存儲模式可為索引存儲模式或全量存儲模式,通過查詢控制內存塊中記錄的信息即可得到。
[0055]步驟S152,按照存儲模式從控制內存塊中的路由信息查詢得到存入待插入數據的數據內存塊標識。
[0056]本實施例中,存儲模式的不同將使得數據內存塊中的內存結構也各不相同,因此,需要根據當前的存儲模式由控制內存塊中的路由信息查詢得到存入待插入數據的數據內存塊標識。
[0057]在一個實施例中,該存儲模式為索引存儲模式,上述步驟S152包括:
[0058]從待插入數據中提取關鍵值,將關鍵值對存儲伺服器中的虛擬節點數目取模得到餘數,根據餘數在控制內存塊中的路由信息查詢得到存儲待插入數據的數據內存塊標識。
[0059]本實施例中,索引存儲模式之下數據內存塊中的每條數據均是通過建立索引來實現數據尋址的。待插入數據將是〈bid, key, value)的形式,其中,bid為業務標識,key為關鍵值,例如,該關鍵值可為使用該業務的用戶標識,value為待插入數據。
[0060]從待插入數據中提取得到關鍵值key,將關鍵值key對存儲伺服器中的虛擬節點數目VN0DE_NUM取模,即key%VN0DE_NUM,進而根據所得到的餘數在控制內存塊的路由信息中查詢得到數據內存塊標識,該數據內存塊標識所對應的數據內存塊將用於對關鍵值所對應的數據進行存儲。
[0061]如圖4所示,上述按照數據內存塊標識將待插入數據存入相應的數據內存塊的步驟包括:
[0062]步驟S153a,獲取數據內存塊標識對應的數據內存塊中的索引節點數量,將關鍵值對索引節點數量取模得到業務在數據內存塊的索引節點位置。
[0063]本實施例中,在定位得到關鍵值所對應的數據內存塊之後,將獲取該數據內存塊中的索引節點數量NodeNum,進而將關鍵值key對索引節點數量NodeNum取模,即key%N0deNUm,即可得到該業務在數據內存塊的索引節點位置。
[0064]在一個實施例中,索引存儲模式下數據內存塊的內存實現結構是以hash衝突鏈的方式實現的,如圖5所示,數據內存塊被劃分成N個索引節點和N個數據節點,其中,N即為數據內存塊中存儲的業務數據條數。
[0065]索引節點用於存儲數據節點的位置值,以將該索引節點作為數據節點的索引;數據節點用於存儲業務的單條數據、對應的關鍵值以及下一個數據節點的位置值,即該數據節點指向下一數據節點的指針。
[0066]此外,如圖6所示,數據內存塊中還將設置了空閒鍊表,該空閒鍊表包括了若干個處於空閒狀態的數據節點,以便於在數據內存塊中存入新的數據。
[0067]相應的,在一個具體的實施例中,根據實現數據內存塊的內存數據結構將得到數據內存塊的結構,如圖7所示。
[0068]其中,Node_Head即索引節點頭信息,包括 Bid、NodeNum、DataSize 和 Reserved等欄位,Bid為使用了該數據內存塊的業務標識,NodeNum為該數據內存塊中的索引節點數量,DataSize為一條數據的長度,Reserved為保留欄位,用於後續的功能擴展;Obj_Head 為數據節點頭信息,包括 TotalObjNun、UsedObjNum、FreeHead 和 Reserved 等欄位,TotalObjNun為數據內存塊中數據節點數量,UsedObjNum為已經使用的數據節點數目,FreeHead為空閒鍊表的鍊表頭,Reserved為保留欄位,用於後續的功能擴展;Node_Array即索引節點所對應的元素,共計N個元素,每一元素佔用4個字節,用於保存數據節點的位置值;0bj_Data即數據節點所對應的元素,共N個元素,為鍊表形式,其中,NextObj為下一個數據節點的位置值,將佔用4個字節;Uin為關鍵值,佔用4個字節;0bjData為存儲的數據。
[0069]由上可知,每條數據需要額外的三個欄位,即NodeData、Uin和NextObj,共計12位元組,因此,若數據內存塊大小為512M,N將通過512/ (12+單條數據的長度)計算得到。
[0070]步驟S154a,判斷索引節點位置對應的索引節點中的位置值是否有效,若否,則進入步驟S155a,若是,則進入步驟S156a。
[0071]本實施例中,根據索引節點位置定位索引節點,讀取索引節點中存儲的位置值,判斷該位置值是否有效,即判斷該位置值是否為有效值,若否,則說明該數據內存塊中未存儲與該業務相關的數據,因此,直接插入數據即可,若是,則需要進一步查看數據內存塊中存儲的與該業務相關的數據中是否存在當前插入的數據。
[0072]步驟S155a,獲取空閒的數據節點,將空閒的數據節點連結至索引節點,並存入待插入數據。
[0073]本實施例中,在判斷到索引節點中的位置值是無效值時,說明該索引節點為空,並未與任一用於進行業務數據存儲的數據節點進行連結,此時,將由空間連結中獲取一空閒的數據節點,將空閒的數據節點連結至索引節點,索引節點中的位置值將是與連結的數據節點所對應的,以使得索引節點指向該數據節點,並存入待插入數據。
[0074]步驟S156a,根據位置值得到索引節點關聯的衝突鍊表。
[0075]本實施例中,判斷到索引節點中的位置值是有效值時,說明該索引節點為某一衝突鍊表的關索引,將根據該位置值得到連結的衝突鍊表。
[0076]步驟S157a,查詢衝突鍊表中是否存在關鍵值對應的數據節點,若否,則進入步驟S155a,若是,則結束。
[0077]本實施例中,在衝突鍊表中遍歷查詢關鍵值,判斷衝突鍊表中是否存在關鍵值所對應的節點,若是,則說明待插入數據已經存在於衝突鍊表中,不需要進行存儲,若否,則將索引節點指向某一空閒的數據節點,以便於將待插入數據存入空閒的數據節點中。
[0078]進一步的,在索引存儲模式之下,在對存儲的數據進行訪問的過程中,可以根據如上過程實現數據的查找,即,若查詢衝突鍊表中存在著關鍵值所對應的數據節點,將從該關鍵值所對應的數據節點得到存儲的數據,該數據即為查找的數據。
[0079]相應的,在進行數據內存塊的分配之前,需要對數據內存塊初始化,即對Node_Head部分、0bj_Head部分、Node_Array和0bj_Data進行初始化,其中,UsedObjNum初始化為0,Node_Array中的內容初始化為無效值,例如,將其初始化為全F,Ob j_Data初始化為一個大鍊表,其中的Uin和ObjData初始化為O。
[0080]如圖8所示,在一個實施例中,該存儲模式為全量存儲模式,上述步驟S152包括:
[0081]步驟S1521,從待插入數據中提取關鍵值,並從網絡地址對應的存儲伺服器提取控制內存塊中的數據條數和業務的起始數據內存塊標識。
[0082]本實施例中,控制內存塊中還將記錄了存儲伺服器中存儲的數據條數以及觸發數據插入操作的業務所對應的起始數據內存塊標識。因此,將從控制內存塊中提取得到數據條數和業務的起始數據內存塊標識。
[0083]全量存儲模式中,數據內存塊是以一個數組的形式存在的,其格式如圖9所示,其中,Bid為使用了該數據內存塊的業務標識,TotalObjNum為數據內存塊中數據節點數量,Startkey為數據內存塊中存儲的第一條數據Data [O]的關鍵值,DataSize為一條數據的長度,Reserved為保留欄位,用於後續的功能擴展,UsedOb jNum為已經使用的數據節點數目。存儲於該數據內存塊的數據所對應的關鍵值將是連續的。在分配該數據內存塊之前,將對其進行初始化,其中,UsedObjNum初始化為0,Data也將初始化為O。
[0084]步驟S1523,根據關鍵值、數據條數和起始數據內存塊標識計算得到存儲插入數據的數據內存標識。
[0085]本實施例中,將根據關鍵值、數據條數和起始數據內存塊標識實現全量存儲模式之下的尋址。對關鍵值key、數據條數RecordNum和起始數據內存塊標識StartCacheID進行計算,即key/RecordNum+StartCachelD,進而根據計算得到的數值在控制內存塊中的路由信息進行查詢,以得到用於存儲待插入數據的數據內存塊標識。
[0086]如圖10所示,在一個實施例中,上述按照數據內存塊標識將待插入數據存入相應的數據內存塊的步驟包括:
[0087]步驟S153b,從數據內存標識對應的數據內存塊中獲取存儲的起始關鍵值,根據所述存儲的起始關鍵值和關鍵值計算得到待插入數據對應的偏移量。
[0088]本實施例中,由於數據內存塊中每一關鍵值所對應的數據是連續存儲的,且關鍵值之間也是連續的,因此,獲取數據內存塊中的起始關鍵值,待插入數據所對應的關鍵值和起始關鍵值之間的差值即為待插入數據所對應的偏移量。
[0089]步驟S154b,按照偏移量將待插入數據存入數據內存塊。
[0090]進一步的,在全量存儲模式之下,在對存儲的數據進行訪問的過程中,可以根據如上過程實現數據的查找,即,通過控制內存塊得到相應的偏移量,進而通過得到的偏移量即可查找得到所需要的數據,實現數據的快速訪問。
[0091]如圖11所示,在一個實施例中,上述步驟SllO之前,該方法還包括:
[0092]步驟S210,獲取觸發的業務上線操作得到相應的業務上線信息。
[0093]本實施例中,通過一定的操作界面輸入存儲伺服器標識、存儲模式、業務名稱、業務數據量估值等業務上線信息之後,將觸發業務上線操作,此時,應用層將得到的業務上線信息傳送至控制層。
[0094]步驟S230,根據業務上線信息查詢存儲資源佔用信息為業務分配存儲伺服器,生成業務在存儲伺服器中的路由信息,並下發至存儲伺服器。
[0095]本實施例中,根據輸入的業務上線信息分配存儲伺服器,將查詢存儲資源佔用信息以得到存儲伺服器標識所對應的存儲伺服器的數據內存塊佔用情況,以根據業務上線信息中的業務數據量估值、存儲模式進行內數據內存塊的分配,以生成該業務的路由信息,並下發。
[0096]步驟S250,按照路由信息在分配的存儲伺服器中分配數據內存塊,並路由信息更新至存儲伺服器中的控制內存塊。
[0097]本實施例中,存儲層將接收到控制層所下發的路由信息,進而按照路由信息進行數據內存塊的分配,以在分配的數據內存塊中存儲業務數據,根據該業務數據的格式化數據內存塊,並將路由信息和數據內存塊的態度更新至控制內存塊。
[0098]步驟S270,根據存儲伺服器和存儲伺服器中數據內存塊的佔用更新控制層中的存儲資源佔用信息。
[0099]本實施例中,存儲層完成數據內存塊的分配之後,將向控制層返迴響應消息,此時,接收到響應消息的控制層將更新資源佔用信息。
[0100]上述數據分布式存儲的實現方法,使得業務上線的運營和維護成本大大降低,運行維護人員可通過一鍵操作即可完成業務上線,提高了業務上線的便捷性。
[0101]如圖12所示,在另一個實施例中,上述步驟S270之後,該方法還包括:
[0102]步驟S310,獲取業務觸發的下線操作。
[0103]本實施例中,通過一定的操作界面輸入待下線的業務標識即可觸發業務的下線操作。
[0104]步驟S330,查詢存儲資源佔用信息得到業務所在的存儲伺服器,並向存儲伺服器傳送業務刪除命令。
[0105]本實施例中,控制層根據下線操作得到待下線的業務標識,根據業務標識在存儲資源佔用信息中進行查詢即可得到待下線的業務所在的存儲伺服器,進而向該存儲伺服器傳送業務刪除命令。
[0106]步驟S350,根據業務刪除命令刪除存儲伺服器中業務在控制內存塊的信息,並相應刪除業務在數據內存塊中存入的數據。
[0107]本實施例中,根據業務刪除命令刷新控制內存塊中數據內存塊的狀態和路由信息,以將存儲了下線業務數據的數據內存塊的狀態由已使用刷新為空閒,並清除該業務的路由信息。
[0108]步驟S370,根據存儲伺服器中控制內存塊和數據內存塊的刪除更新控制層中的存儲資源佔用信息。
[0109]本實施例中,由於存儲層中的存儲伺服器和存儲伺服器中的數據內存塊發生了業務數據的刪除,因此,也將相應更新控制層中的存儲資源佔用信息,以保證控制層的存儲資源佔用信息的準確性。
[0110]通過內存共享以及運行維護人員的快捷操作,使得各種業務能夠快速上線,為新上線的業務分配存儲資源,也能夠對即將下線的業務快速回收為其分配的存儲資源,運行維護人員只需要關注業務邏輯,而不需要關注數據的存儲,提高了業務實現和穩定運行的可能性,進而保證了業務運行的可靠性。
[0111]如圖13所示,在一個實施例中,一種數據分布式存儲的實現系統,包括數據插入操作獲取模塊110、地址獲取模塊130和存儲模塊150。
[0112]數據插入操作獲取模塊110,用於獲取業務觸發的數據插入操作。
[0113]實施例中,在某一業務的數據插入過程中,將用於進行數據存儲的後臺劃分為應用層、控制層和存儲層,其中,應用層將用於為後臺的運行維護人員提供操作界面,即運行維護人員對業務的管理入口,控制層用於管理存儲資源,並控制應用層中觸發的操作的響應,存儲層用於實現數據的存儲和訪問,將以若干個存儲伺服器為硬體載體實現。通過對後臺的三層劃分,為運行維護人員提供應用層,以使得運行維護人員只需要關注業務邏輯,而不需要關注如何實現數據的存儲和訪問,實現了自動化運營,提高了各種業務實現的便捷性,進而有效降低運行和維護的成本。
[0114]通過應用層、控制層和存儲層所實現的數據分布式存儲將用於實現若干個業務的運行,因此,若需要實現數據的插入,則應當在應用層所提供的操作界面中針對相應的業務觸發數據插入操作,此時,數據插入操作獲取模塊110根據該業務的數據插入操作可獲知該業務所對應的業務標識、待插入數據以及待插入數據所對應的關鍵值,並將該業務所對應的業務標識、待插入數據以及待插入數據所對應的關鍵值由應用層傳入控制層。
[0115]地址獲取模塊130,用於根據業務的數據插入操作由存儲資源佔用信息得到業務所在存儲伺服器的網絡地址。
[0116]本實施例中,所述存儲伺服器與業務將是一對多的對應關係,即任一業務的數據均存儲於同一存儲伺服器,並且該存儲伺服器將用於存儲多個業務的數據。地址獲取模塊130通過控制層根據業務標識查詢存儲資源佔用信息為待插入數據分配存儲層中的存儲伺服器,進而將待插入數據存儲於分配的存儲伺服器中。
[0117]進一步的,地址獲取模塊130由控制層依據存儲資源佔用信息所做的分配,使得同一業務的數據分布於同一存儲伺服器中,以使得後續的數據訪問不需要對不同的存儲伺服器進行訪問,進而不會受到網絡延時的影響,特別是對於數據的批量操作而言,將避免了訪問不同存儲伺服器來獲取數據而造成的批量操作性能瓶頸。
[0118]控制層的存儲資源佔用信息用於將通過資料庫的形式實現,將記錄了業務以及存儲伺服器之間的對應關係,進而提供存儲伺服器的佔用情況。
[0119]在一個實施例中,上述地址獲取模塊130還用於獲取業務對應的業務標識,根據業務標識查詢控制層的存儲資源佔用信息以得到業務所在存儲伺服器的網絡地址。
[0120]本實施例中,存儲資源佔用信息被存儲於控制層中,將被控制層用於控制存儲資源的分配,因此,存儲資源佔用信息將記錄了業務所在的存儲伺服器,即業務所在存儲伺服器的網絡地址、存儲層中存儲伺服器的內存分配情況以及存業務數量等信息,因此,地址獲取模塊130根據觸發數據插入操作的業務所對應的業務標識,可在存儲資源佔用信息中查詢得到該業務標識所對應的存儲伺服器的網絡地址。[0121 ] 存儲模塊150,用於由網絡地址所在存儲伺服器得存入待插入數據的數據內存塊標識,並按照數據內存塊標識將待插入數據存入相應數據內存塊。
[0122]本實施例中,存儲伺服器將採用共享內存的形式來實現數據的存儲和訪問,存儲伺服器的共享內存將包括控制內存塊(控制cache)和數據內存塊(數據cache),其中,控制內存塊用於存儲所在存儲伺服器的控制信息和統計信息,例如,存儲模式、業務的路由信息、所在存儲伺服器中的業務數目、數據內存塊的狀態等,數據內存塊用於實現業務數據的存儲。存儲伺服器中通過控制內存塊控制數據內存塊中的數據存儲和數據訪問。
[0123]在優選的實施例中,每一存儲伺服器將部署了一個控制內存塊和多個數據內存塊。數據內存塊的大小可為512k,控制內存塊的大小可為512M。
[0124]存儲伺服器中業務所對應的數據將被存儲於若干個數據內存塊中,因此,存儲模塊150根據業務標識在存儲伺服器中的控制內存塊查詢得到觸發了數據插入操作的業務所在的數據內存塊標識,進而根據該數據內存塊標識實現待插入數據的存儲。
[0125]由於存儲伺服器的數據內存塊中每一數據節點中除了用於存儲業務數據之外的其它控制欄位的空間佔用較少,進而在保證控制性能的前提下提高了存儲資源的使用效率。
[0126]進一步的,存儲伺服器所應用的存儲模式可以是索引存儲模式或全量存儲模式,在優選的實施例中,該存儲模式將為索引存儲模式,以保證存儲資源的高使用效率。
[0127]例如,若存儲伺服器中的數據量還未達到一定規模,則優先選用索引存儲模式,由於在索引存儲模式之下,其控制欄位只有12位元組,數據內存塊中數據條數可能有幾億,控制字節的精簡會節省很多的存儲空間,進而大為提高了存儲資源的使用效率。相應的,由於控制內存塊中存儲了業務的路由信息,進而使得對存儲伺服器所進行的數據訪問可直接通過控制內存塊中的路由信息實現,從而實現了海量用戶對數據的快速訪問。
[0128]如圖14所示,在一個實施例中,存儲模塊150包括模式查詢單元151和尋址單元152。
[0129]模式查詢單元151,用于于網絡地址對應的存儲伺服器查詢控制內存塊以得到業務的存儲模式。
[0130]本實施例中,存儲伺服器中的控制內存塊將記錄了存儲伺服器屬性、存儲模式、用於存儲數據的內存大小,例如,該內存大小可為物理內存*4/3、存儲伺服器中的數據內存塊數目、分配到存儲伺服器的業務數目、數據內存塊的狀態業務的路由信息和存儲伺服器的訪問成功率、時延率統計信息等,在此不一一進行列舉。控制內存塊中的存儲模式可為索引存儲模式或全量存儲模式,模式查詢單元151通過查詢控制內存塊中記錄的信息即可得到。
[0131]尋址單元152,用於按照存儲模式從控制內存塊中的路由信息查詢得到存入待插入數據的數據內存塊標識。
[0132]本實施例中,存儲模式的不同將使得數據內存塊中的內存結構也各不相同,因此,尋址單元152需要根據當前的存儲模式由控制內存塊中的路由信息查詢得到存入待插入數據的數據內存塊標識。
[0133]在一個實施例中,上述存儲模式為索引存儲模式,該尋址單元152還用於從待插入數據中提取關鍵值,將關鍵值對存儲伺服器中的虛擬節點數目取模得到餘數,根據餘數在控制內存塊中的路由信息查詢得到存儲和待插入數據的數據內存塊標識。
[0134]本實施例中,索引存儲模式之下數據內存塊中的每條數據均是通過建立索引來實現數據尋址的。待插入數據將是〈bid, key, value)的形式,其中,bid為業務標識,key為關鍵值,例如,該關鍵值可為使用該業務的用戶標識,value為待插入數據。
[0135]尋址單元152從待插入數據中提取得到關鍵值key,將關鍵值key對存儲伺服器中的虛擬節點數目VN0DE_NUM取模,即key%VN0DE_NUM,進而根據所得到的餘數在控制內存塊的路由信息中查詢得到數據內存塊標識,該數據內存塊標識所對應的數據內存塊將用於對關鍵值所對應的數據進行存儲。
[0136]如圖15所示,上述存儲模塊150還包括索引節點位置獲取單元153a、有效性判斷單元154a、第一數據存入單元155a、鍊表獲取單元156a和鍊表查詢單元157a。
[0137]索引節點位置獲取單元153a,用於獲取數據內存塊標識對應的數據內存塊中的索引節點數量,將關鍵值對索引節點數量取模得到業務在數據內存塊的索引節點位置。
[0138]本實施例中,在定位得到關鍵值所對應的數據內存塊之後,將獲取該數據內存塊中的索引節點數量NodeNum,進而將關鍵值key對索引節點數量NodeNum取模,即key%N0deNUm,即可得到該業務在數據內存塊的索引節點位置。
[0139]在一個實施例中,索引存儲模式下數據內存塊的內存實現結構是以hash衝突鏈的方式實現的,數據內存塊被劃分成N個索引節點和N個數據節點,其中,N即為數據內存塊中存儲的業務數據條數。
[0140]索引節點用於存儲數據節點的位置值,以將該索引節點作為數據節點的索引;數據節點用於存儲業務的單條數據、對應的關鍵值以及下一個數據節點的位置值,即該數據節點指向下一數據節點的指針。
[0141]此外,數據內存塊中還將設置了空閒鍊表,該空閒鍊表包括了若干個處於空閒狀態的數據節點,以便於在數據內存塊中存入新的數據。
[0142]有效性判斷單元154a,用於判斷索引節點位置對應的索引節點中的位置值是否為有效值,若否,則通知第一數據存入單元155a,若是,則通知鍊表獲取單元156a。
[0143]本實施例中,有效性判斷單元154a根據索引節點位置定位索引節點,讀取索引節點中存儲的位置值,判斷該位置值是否有效,即判斷該位置值是否為有效值,若否,則說明該數據內存塊中未存儲與該業務相關的數據,因此,通知第一數據存入單元155a直接插入數據即可,若是,則需要通知鍊表獲取單元156a進一步查看數據內存塊中存儲的與該業務相關的數據中是否存在當前插入的數據。
[0144]第一數據存入單元155a,用於獲取空閒的數據節點,將空閒的數據節點至索引節點,並存入待插入數據。
[0145]本實施例中,在判斷到索引節點中的位置值是無效值時,說明該索引節點為空,並未與任一用於進行業務數據存儲的數據節點進行連結,此時,第一數據存入單元155a將由空間連結中獲取一空閒的數據節點,將空閒的數據節點連結至索引節點,索引節點中的位置值將是與連結的數據節點所對應的,以使得索引節點指向該數據節點,並存入待插入數據。
[0146]鍊表獲取單元156a,用於根據位置值得到索引節點關聯的衝突鍊表。
[0147]本實施例中,判斷到索引節點中的位置值是有效值時,說明該索引節點為某一衝突鍊表的關索引,鍊表獲取單元156a將根據該位置值得到連結的衝突鍊表。
[0148]鍊表查詢單元157a,用於查詢衝突鍊表中是否存在所述關鍵值對應的數據節點,若否,則查詢所述衝突鍊表中是否存在所述關鍵值對應的數據節點,若否,則通知第一數據存入單元155a。
[0149]本實施例中,在衝突鍊表中遍歷查詢關鍵值,判鍊表查詢單元157a斷衝突鍊表中是否存在關鍵值所對應的節點,若是,則說明待插入數據已經存在於衝突鍊表中,不需要進行存儲,若否,則通知第一數據存入單元155a將索引節點指向某一空閒的數據節點,以便於將待插入數據存入空閒的數據節點中。
[0150]進一步的,在索引存儲模式之下,在對存儲的數據進行訪問的過程中,可以根據如上過程實現數據的查找,即,若查詢衝突鍊表中存在著關鍵值所對應的數據節點,將從該關鍵值所對應的數據節點得到存儲的數據,該數據即為查找的數據。
[0151]相應的,在進行數據內存塊的分配之前,需要對數據內存塊初始化,即對Node_Head部分、0bj_Head部分、Node_Array和0bj_Data進行初始化,其中,UsedObjNum初始化為0,Node_Array中的內容初始化為無效值,例如,將其初始化為全F,Ob j_Data初始化為一個大鍊表,其中的Uin和ObjData初始化為O。
[0152]如圖16所示,在一個實施例中,該存儲模式為全量存儲模式,上述尋址單元152包括提取單元1521和運算單元1523。
[0153]提取單元1521,用於從待插入數據中提取關鍵值,並從網絡地址對應的存儲伺服器提取控制內存塊中的數據條數和業務的起始數據內存塊標識。
[0154]本實施例中,控制內存塊中還將記錄了存儲伺服器中存儲的數據條數以及觸發數據插入操作的業務所對應的起始數據內存塊標識。因此,提取單元1521將從控制內存塊中提取得到數據條數和業務的起始數據內存塊標識。全量存儲模式中,數據內存塊是以一個數組的形式存在的。
[0155]運算單元1523,用於根據關鍵值、數據條數和起始數據內存塊標識計算得到存儲插入數據的數據內存標識。
[0156]本實施例中,運算單元1523將根據關鍵值、數據條數和起始數據內存塊標識實現全量存儲模式之下的尋址。運算單元1523對關鍵值key、數據條數RecordNum和起始數據內存塊標識StartCacheID進行計算,即key/RecordNum+StartCachelD,進而根據計算得到的數值在控制內存塊中的路由信息進行查詢,以得到用於存儲待插入數據的數據內存塊標識。
[0157]如圖17所示,在一個實施例中,上述存儲模塊150還包括偏移量計算單元153b和第二數據存入單元154b。
[0158]偏移量計算單元153b,用於從數據內存標識對應的數據內存塊中獲取存儲的起始關鍵值,根據存儲的起始關鍵值和關鍵值計算得到所述待插入數據對應的偏移量。
[0159]本實施例中,由於數據內存塊中每一關鍵值所對應的數據是連續存儲的,且關鍵值之間也是連續的,因此,偏移量計算單元153b獲取數據內存塊中的起始關鍵值,待插入數據所對應的關鍵值和起始關鍵值之間的差值即為待插入數據所對應的偏移量。
[0160]第二數據存入單元154b,用於按照偏移量將待插入數據存入數據內存塊。
[0161]進一步的,在全量存儲模式之下,在對存儲的數據進行訪問的過程中,可以根據如上過程實現數據的查找,即,通過控制內存塊得到相應的偏移量,進而通過得到的偏移量即可查找得到所需要的數據,實現數據的快速訪問。
[0162]如圖18所示,在一個實施例中,上述系統還包括業務上線操作獲取模塊210、存儲伺服器分配模塊230、內存塊分配模塊250和佔用信息更新模塊270。
[0163]業務上線操作獲取模塊210,用於獲取觸發的業務上線操作得到相應的業務上線信息。
[0164]本實施例中,通過一定的操作界面輸入存儲伺服器標識、存儲模式、業務名稱、業務數據量估值等業務上線信息之後,將觸發業務上線操作,此時,業務上線操作獲取模塊210通過應用層將得到的業務上線信息傳送至控制層。
[0165]存儲伺服器分配模塊230,用於根據業務上線信息查詢存儲資源佔用信息為業務分配存儲伺服器,生成業務在存儲伺服器中的路由信息,並下發至存儲伺服器。
[0166]本實施例中,存儲伺服器分配模塊230根據輸入的業務上線信息分配存儲伺服器,將查詢存儲資源佔用信息以得到存儲伺服器標識所對應的存儲伺服器的數據內存塊佔用情況,以根據業務上線信息中的業務數據量估值、存儲模式進行內數據內存塊的分配,以生成該業務的路由信息,並下發。
[0167]內存塊分配模塊250,用於按照路由信息在分配的存儲伺服器中分配數據內存塊,並將路由信息更新至存儲伺服器中的控制內存塊。
[0168]本實施例中,內存塊分配模塊250通過存儲層將接收到控制層所下發的路由信息,進而按照路由信息進行數據內存塊的分配,以在分配的數據內存塊中存儲業務數據,根據該業務數據的格式化數據內存塊,並將路由信息和數據內存塊的態度更新至控制內存塊。
[0169]佔用信息更新模塊270,用於根據存儲伺服器和存儲伺服器中數據內存塊的佔用更新控制層中的存儲資源佔用信息。
[0170]本實施例中,存儲層完成數據內存塊的分配之後,將向控制層返迴響應消息,此時,佔用信息更新模塊270接收到響應消息的控制層將更新資源佔用信息。
[0171]上述數據分布式存儲的實現系統,使得業務上線的運營和維護成本大大降低,運行維護人員可通過一鍵操作即可完成業務上線,提高了業務上線的便捷性。
[0172]如圖19所示,在一個實施例中,上述系統還包括下線操作獲取模塊310、伺服器查詢模塊330、內存塊刪除模塊350和刪除更新模塊370。
[0173]下線操作獲取模塊310,用於獲取業務觸發的下線操作。
[0174]本實施例中,通過一定的操作界面輸入待下線的業務標識即可觸發業務的下線操作。
[0175]伺服器查詢模塊330,用於查詢存儲資源佔用信息得到業務所在的存儲伺服器,並向存儲伺服器傳送業務刪除命令。
[0176]本實施例中,伺服器查詢模塊330通過控制層根據下線操作得到待下線的業務標識,根據業務標識在存儲資源佔用信息中進行查詢即可得到待下線的業務所在的存儲伺服器,進而向該存儲伺服器傳送業務刪除命令。
[0177]內存塊刪除模塊350,用於根據業務刪除命令刪除存儲伺服器中業務在控制內存塊的信息,並相應刪除業務在數據內存塊中存入的數據。
[0178]本實施例中,內存塊刪除模塊350根據業務刪除命令刷新控制內存塊中數據內存塊的狀態和路由信息,以將存儲了下線業務數據的數據內存塊的狀態由已使用刷新為空閒,並清除該業務的路由信息。
[0179]刪除更新模塊370,用於根據存儲伺服器中控制內存塊和數據內存塊的刪除更新控制層中的存儲資源佔用信息。
[0180]本實施例中,由於存儲層中的存儲伺服器和存儲伺服器中的數據內存塊發生了業務數據的刪除,因此,刪除更新模塊370也將相應更新控制層中的存儲資源佔用信息,以保證控制層的存儲資源佔用信息的準確性。
[0181]通過內存共享以及運行維護人員的快捷操作,使得各種業務能夠快速上線,為新上線的業務分配存儲資源,也能夠對即將下線的業務快速回收為其分配的存儲資源,運行維護人員只需要關注業務邏輯,而不需要關注數據的存儲,提高了業務實現和穩定運行的可能性,進而保證了業務運行的可靠性。
[0182]上述數據分布式存儲的實現方法和系統,獲取應用層中業務觸發的數據插入操作,根據業務的數據插入操作由存儲資源佔用信息得到業務所在存儲伺服器的網絡地址,該存儲伺服器與業務將是一對多的對應關係,由該存儲伺服器得到存入待插入數據的數據內存塊標識,並按照數據內存塊標識將待插入數據存入相應的數據內存塊,以使得業務的數據存儲於同一存儲伺服器的若干個數據內存塊中,提高了數據存儲的訪問性能,存儲伺服器中空閒的數據內存塊可用於其它業務的數據存儲,有效提高了存儲資源的使用效率。
[0183]本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過電腦程式來指令相關的硬體來完成,所述的程序可存儲於一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光碟、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random AccessMemory, RAM)等。
[0184]以上所述實施例僅表達了本發明的幾種實施方式,其描述較為具體和詳細,但並不能因此而理解為對本發明專利範圍的限制。應當指出的是,對於本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變形和改進,這些都屬於本發明的保護範圍。因此,本發明專利的保護範圍應以所附權利要求為準。
【權利要求】
1.一種數據分布式存儲的實現方法,包括如下步驟: 獲取業務觸發的數據插入操作; 根據所述業務的數據插入操作由存儲資源佔用信息得到所述業務所在存儲伺服器的網絡地址,所述存儲伺服器與業務將是一對多的對應關係; 由所述網絡地址所在存儲伺服器得到存入所述待插入數據的數據內存塊標識,並按照所述數據內存塊標識將待插入數據存入相應的數據內存塊。
2.根據權利要求1所述的方法,其特徵在於,所述獲取業務觸發的數據插入操作的步驟之前,所述方法還包括: 獲取觸發的業務上線操作得到相應的業務上線信息; 根據所述業務上線信息查詢所述存儲資源佔用信息為所述業務分配存儲伺服器,生成所述業務在所述存儲伺服器中的路由信息,並下發至存儲伺服器; 按照所述路由信息在所述分配的存儲伺服器中分配數據內存塊,並將所述路由信息更新至所述存儲伺服器中的控制內存塊; 根據所述存儲伺服器和所述存儲伺服器中數據內存塊的佔用更新所述控制層中的存儲資源佔用信息。
3.根據權利要求2所述的方法,其特徵在於,所述根據所述存儲伺服器和所述存儲伺服器中數據內存塊的佔用更新所述控制層中的存儲資源佔用信息之後,所述方法還包括: 獲取業務觸發的下線操作; 查詢所述存儲資源佔用信息得到所述業務所在的存儲伺服器,並向所述存儲伺服器傳送業務刪除命令; 根據所述業務刪除命令刪除存儲伺服器中所述業務在控制內存塊的信息,並相應刪除所述業務在數據內存塊中存入的數據; 根據所述存儲伺服器中控制內存塊和數據內存塊的刪除更新所述存儲資源佔用信息。
4.根據權利要求1所述的方法,其特徵在於,所述根據所述業務的插入操作由所述存儲資源佔用信息得到所述業務所在存儲伺服器的網絡地址的步驟包括: 獲取所述業務對應的業務標識,根據所述業務標識查詢所述存儲資源佔用信息以得到所述業務所在存儲伺服器的網絡地址。
5.根據權利要求4所述的方法,其特徵在於,所述由所述網絡地址所在存儲伺服器得到存入所述待插入數據的數據內存塊標識的步驟包括: 於所述網絡地址對應的存儲伺服器查詢控制內存塊以得到所述業務的存儲模式; 按照所述存儲模式從所述控制內存塊中的路由信息查詢得到存入所述待插入數據的數據內存塊標識。
6.根據權利要求5所述的方法,其特徵在於,所述存儲模式為索引存儲模式,所述按照所述存儲模式從所述控制內存塊中的路由信息查詢得到存入所述待插入數據的數據內存塊標識的步驟包括: 從所述待插入數據中提取關鍵值,將所述關鍵值對所述存儲伺服器中的虛擬節點數目取模得到餘數,根據所述餘數在所述控制內存塊中的路由信息查詢得到存儲所述待插入數據的數據內存塊標識。
7.根據權利要求6所述的方法,其特徵在於,所述按照所述數據內存塊標識將待插入數據存入相應的數據內存塊的步驟包括: 獲取所述數據內存塊標識對應的數據內存塊中的索引節點數量,將所述關鍵值對所述索引節點數量取模得到所述業務在所述數據內存塊的索引節點位置; 判斷索引節點位置對應的索引節點中的位置值是否為有效值,若否,則獲取空閒的數據節點,將所述空閒的數據節點連結至所述索引節點,並存入所述待插入數據。
8.根據權利要求7所述的方法,其特徵在於,所述按照所述數據內存塊標識將待插入數據存入相應的數據內存塊的步驟還包括: 判斷到索引節點位置對應的索引節點中的位置值為有效值,則根據所述位置值得到所述索引節點關聯的衝突鍊表; 查詢所述衝突鍊表中是否存在所述關鍵值對應的數據節點,若否,則進入所述獲取空閒的數據節點,將所述空閒的數據節點至所述索引節點,並存入所述待插入數據的步驟。
9.根據權利要求5所述的方法,其特徵在於,所述存儲模式為全量存儲模式,所述按照所述存儲模式從所述控制內存塊中的路由信息查詢得到存入所述待插入數據的數據內存塊標識的步驟包括: 從所述待插入數據中提取關鍵值,並從所述網絡地址對應的存儲伺服器提取控制內存塊中的數據條數和所述業務的起始數據內存塊標識; 根據所述關鍵值、數據條數和起始數據內存塊標識計算得到存儲所述插入數據的數據內存標識。
10.根據權利要求9所述的方法,其特徵在於,所述按照所述數據內存塊標識將待插入數據存入相應的數據內存塊的步驟包括: 從所述數據內存標識對應的數據內存塊中獲取存儲的起始關鍵值,根據所述存儲的起始關鍵值和所述關鍵值計算得到所述待插入數據對應的偏移量; 按照所述偏移量將所述待插入數據存入所述數據內存塊。
11.一種數據分布式存儲的實現系統,其特徵在於,包括: 數據插入操作獲取模塊,用於獲取業務觸發的數據插入操作; 地址獲取模塊,用於根據所述業務的數據插入操作由存儲資源佔用信息得到所述業務所在存儲伺服器的網絡地址,所述存儲伺服器與業務將是一對多的對應關係; 存儲模塊,用於由所述網絡地址所在存儲伺服器得存入所述待插入數據的數據內存塊標識,並按照所述數據內存塊標識將待插入數據存入相應數據內存塊。
12.根據權利要求11所述的系統,其特徵在於,所述系統還包括: 業務上線操作獲取模塊,用於獲取觸發的業務上線操作得到相應的業務上線信息;存儲伺服器分配模塊,用於根據所述業務上線信息查詢所述存儲資源佔用信息為所述業務分配存儲伺服器,生成所述業務在所述存儲伺服器中的路由信息,並下發至存儲伺服器; 內存塊分配模塊,用於按照所述路由信息在所述分配的存儲伺服器中分配數據內存塊,並將所述路由信息更新至所述存儲伺服器中的控制內存塊; 佔用信息更新模塊,用於根據所述存儲伺服器和所述存儲伺服器中數據內存塊的佔用更新所述控制層中的存儲資源佔用信息。
13.根據權利要求12所述的系統,其特徵在於,所述系統還包括: 下線操作獲取模塊,用於獲取業務觸發的下線操作; 伺服器查詢模塊,用於查詢所述存儲資源佔用信息得到所述業務所在的存儲伺服器,並向所述存儲伺服器傳送業務刪除命令; 內存塊刪除模塊,用於根據所述業務刪除命令刪除存儲伺服器中所述業務在控制內存塊的信息,並相應刪除所述業務在數據內存塊中存入的數據; 刪除更新模塊,用於根據所述存儲伺服器中控制內存塊和數據內存塊的刪除更新所述存儲資源佔用信息。
14.根據權利要求11所述的系統,其特徵在於,所述地址獲取模塊還用於獲取所述業務對應的業務標識,根據所述業務標識查詢所述存儲資源佔用信息以得到所述業務所在存儲伺服器的網絡地址。
15.根據權利要求14所述的系統,其特徵在於,所述存儲模塊包括 模式查詢單元,用于于所述網絡地址對應的存儲伺服器查詢控制內存塊以得到所述業務的存儲模式; 尋址單元,用於按照所述存儲模式從所述控制內存塊中的路由信息查詢得到存入所述待插入數據的數據內存塊標識。
16.根據權利要求15所述的系統,其特徵在於,所述存儲模式為索引存儲模式,所述尋址單元還用於從所述待插入數據中提取關鍵值,將所述關鍵值對所述存儲伺服器中的虛擬節點數目取模得到餘數,根據所述餘數在所述控制內存塊中的路由信息查詢得到存儲和所述待插入數據的數據內存塊標識。
17.根據權利要求16所述的系統,其特徵在於,所述存儲模塊還包括: 索引節點位置獲取單元,用於獲取所述數據內存塊標識對應的數據內存塊中的索引節點數量,將所述關鍵值對所述索引節點數量取模得到所述業務在所述數據內存塊的索引節點位置; 有效性判斷單元,用於判斷索引節點位置對應的索引節點中的位置值是否為有效值,若否,則通知第一數據存入單元; 所述第一數據存入單元用於獲取空閒的數據節點,將所述空閒的數據節點連結至所述索引節點,並存入所述待插入數據。
18.根據權利要求17所述的系統,其特徵在於,所述存儲模塊還包括: 鍊表獲取單元,用於判斷到索引節點位置對應的索引節點中的位置值為有效值,則根據所述位置值得到所述索引節點關聯的衝突鍊表; 鍊表查詢單元,用於查詢所述衝突鍊表中是否存在所述關鍵值對應的數據節點,若否,則查詢所述衝突鍊表中是否存在所述關鍵值對應的數據節點,若否,則通知所述第一數據存入單元。
19.根據權利要求15所述的系統,其特徵在於,所述存儲模式為全量存儲模式,所述尋址單元包括: 提取單元,用於從所述待插入數據中提取關鍵值,並從所述網絡地址對應的存儲伺服器提取控制內存塊中的數據條數和所述業務的起始數據內存塊標識; 運算單元,用於根據所述關鍵值、數據條數和起始數據內存塊標識計算得到存儲所述插入數據的數據內存標識。
20.根據權利要求19所述的系統,其特徵在於,所述存儲模塊還包括: 偏移量計算單元,用於從所述數據內存標識對應的數據內存塊中獲取存儲的起始關鍵值,根據所述存儲的起始關鍵值和所述關鍵值計算得到所述待插入數據對應的偏移量;第二數據存入單元,用於按照所述偏移量將所述待插入數據存入所述數據內存塊。
【文檔編號】H04L29/08GK104468665SQ201310430886
【公開日】2015年3月25日 申請日期:2013年9月18日 優先權日:2013年9月18日
【發明者】馬海賓 申請人:騰訊科技(深圳)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀