一種基于元數(shù)據(jù)保存存儲信息及統(tǒng)計(jì)管理數(shù)據(jù)的方法【專利摘要】本發(fā)明公開了一種基于元數(shù)據(jù)保存存儲信息及統(tǒng)計(jì)管理數(shù)據(jù)的方法,其特征在于,具體包括步驟如下:步驟一、客戶端向存儲服務(wù)器發(fā)送保存數(shù)據(jù)請求;步驟二、用戶保存數(shù)據(jù)的請求到達(dá)服務(wù)器后,服務(wù)器將數(shù)據(jù)保存在數(shù)據(jù)倉儲中,客戶端根據(jù)待發(fā)送數(shù)據(jù)量大小將數(shù)據(jù)拆分為多個(gè)數(shù)據(jù)塊,逐個(gè)發(fā)送到存儲服務(wù)器;步驟三、服務(wù)器從數(shù)據(jù)中抽取出需要的統(tǒng)計(jì)信息與其基本信息組成元數(shù)據(jù),并把元數(shù)據(jù)保存在元數(shù)據(jù)倉儲中;步驟四、服務(wù)器返回保存數(shù)據(jù)成功信息到客戶端。本專利通過對元數(shù)據(jù)中基本信息的處理,實(shí)現(xiàn)對存儲數(shù)據(jù)的統(tǒng)計(jì)管理,并達(dá)到簡化操作減少資源浪費(fèi)的目標(biāo)?!緦@f明】一種基于元數(shù)據(jù)保存存儲信息及統(tǒng)計(jì)管理數(shù)據(jù)的方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明屬于存儲【
技術(shù)領(lǐng)域:
】,具體涉及一種基于元數(shù)據(jù)保存存儲信息及統(tǒng)計(jì)管理數(shù)據(jù)的方法。[0002]【
背景技術(shù):
】[0003]隨著現(xiàn)代IT系統(tǒng)的發(fā)展及公司業(yè)務(wù)的擴(kuò)展,數(shù)據(jù)的規(guī)模越來越龐大,并且增速也越來越快,因此傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)遇到了前所未有的挑戰(zhàn),并在以后有可能成為系統(tǒng)發(fā)展及業(yè)務(wù)擴(kuò)展的瓶頸。目前,為了應(yīng)對海量數(shù)據(jù)的存儲和管理及控制、減少存儲成本,已經(jīng)有很多公司和組織開始使用數(shù)據(jù)存儲。因此,數(shù)據(jù)存儲在業(yè)界得到了越來越廣泛的使用。[0004]在使用數(shù)據(jù)存儲的時(shí)候,如果只提供單純的數(shù)據(jù)存儲和讀取功能,那么對于所存儲數(shù)據(jù)的統(tǒng)計(jì)和查詢功能(各種類型數(shù)據(jù)所占空間容量、各種類型數(shù)據(jù)增加趨勢等功能需求),就需要依次取出所有數(shù)據(jù),進(jìn)行分類計(jì)算,然后進(jìn)行數(shù)據(jù)統(tǒng)計(jì)。這樣每次都要把所有數(shù)據(jù)取出并進(jìn)行計(jì)算,如果有2個(gè)TB的數(shù)據(jù),那么每次計(jì)算都要遍歷這2個(gè)TB的數(shù)據(jù),并對這些數(shù)據(jù)進(jìn)行計(jì)算,將會導(dǎo)致算法復(fù)雜度的提升及系統(tǒng)資源浪費(fèi)。[0005]于是人們提出了元數(shù)據(jù)(描述數(shù)據(jù)及其環(huán)境的數(shù)據(jù))的概念,在保存數(shù)據(jù)的同時(shí)統(tǒng)計(jì)好該數(shù)據(jù)的相關(guān)信息,并放入元數(shù)據(jù)中,當(dāng)需要統(tǒng)計(jì)信息時(shí),只需要取出這些元數(shù)據(jù)進(jìn)行計(jì)算而不是整個(gè)數(shù)據(jù)進(jìn)行計(jì)算,這樣就簡化了算法并節(jié)約成本。這時(shí)候元數(shù)據(jù)應(yīng)該放在那里?如何放?就成了需要解決的問題。[0006]在數(shù)據(jù)存儲領(lǐng)域,專利“一種適用于云存儲系統(tǒng)的元數(shù)據(jù)分布式存儲方法”(申請?zhí)?201210236195.0)提出的方法主要為:將數(shù)據(jù)和元數(shù)據(jù)組成混合數(shù)據(jù)塊保存在數(shù)據(jù)存儲上,使得元數(shù)據(jù)及數(shù)據(jù)塊混合存儲,并具備與數(shù)據(jù)塊有相同的冗余度。[0007]該方法存在如下問題:1、當(dāng)需要對元數(shù)據(jù)進(jìn)行擴(kuò)展時(shí),由于元數(shù)據(jù)借用了數(shù)據(jù)塊的地址,附加在數(shù)據(jù)塊后面,需要修改數(shù)據(jù)和元數(shù)據(jù)的混合數(shù)據(jù)塊,如果修改錯誤,則會造成整條數(shù)據(jù)不可用;2、不支持大數(shù)據(jù)(數(shù)據(jù)量很大,需要拆分為多個(gè)數(shù)據(jù)塊),即一條記錄多個(gè)數(shù)據(jù)塊的情況。[0008]【
發(fā)明內(nèi)容】[0009]為了解決存儲領(lǐng)域中對于元數(shù)據(jù)的存儲所帶來的以上兩個(gè)問題,本專利提供了一種基于元數(shù)據(jù)保存存儲信息及統(tǒng)計(jì)管理數(shù)據(jù)的方法,通過對元數(shù)據(jù)中基本信息的處理,實(shí)現(xiàn)對存儲數(shù)據(jù)的統(tǒng)計(jì)管理,并達(dá)到簡化操作減少資源浪費(fèi)的目標(biāo)。[0010]本專利提供的具體技術(shù)方案如下:一種基于元數(shù)據(jù)保存存儲信息及統(tǒng)計(jì)管理數(shù)據(jù)的方法,包括具體步驟如下:步驟1:客戶端向存儲服務(wù)器發(fā)送保存數(shù)據(jù)請求;步驟2:用戶保存數(shù)據(jù)的請求到達(dá)服務(wù)器后,服務(wù)器將數(shù)據(jù)保存在數(shù)據(jù)倉儲中。[0011]如果待發(fā)送數(shù)據(jù)量很大,客戶端會將大數(shù)據(jù)拆分為多個(gè)數(shù)據(jù)塊,逐個(gè)發(fā)送到存儲服務(wù)器,其中,此處設(shè)置了4種數(shù)據(jù)塊大小的標(biāo)準(zhǔn):1M、2M、3M、5M,根據(jù)傳遞數(shù)據(jù)的不同,選擇相應(yīng)的數(shù)據(jù)塊大小的標(biāo)準(zhǔn)。[0012]步驟3:服務(wù)器從數(shù)據(jù)中抽取出需要的統(tǒng)計(jì)信息(如:數(shù)據(jù)大小)與其基本信息(如:用戶輸入的key、上傳圖片的應(yīng)用的database、圖片所在的表標(biāo)識等)組成元數(shù)據(jù),并把元數(shù)據(jù)保存在元數(shù)據(jù)倉儲中。元數(shù)據(jù)組成部分包括:partiton、database、table、key、blocklndex、lastblockflag、dataSize。步驟2與步驟3屬于一個(gè)原子操作;其中,在本處理過程中包含2部分?jǐn)?shù)據(jù)操作:I)為每個(gè)數(shù)據(jù)塊創(chuàng)建一個(gè)塊元數(shù)據(jù)(blockmeta)信息,保存在元數(shù)據(jù)倉儲中。[0013]2)為每條數(shù)據(jù)記錄創(chuàng)建一個(gè)記錄元數(shù)據(jù)(recordmeta),當(dāng)上傳新的該數(shù)據(jù)的數(shù)據(jù)塊時(shí),更新recordmeta信息中保存的相關(guān)信息。[0014]保存時(shí),以元數(shù)據(jù)字符串保存為B樹結(jié)構(gòu)。在查找時(shí),以前面的數(shù)據(jù)基本信息作為查找索引,可以方便快捷的找出需要的數(shù)據(jù)。其中,B樹結(jié)構(gòu)是一種適用于外查找的樹,它是一種平衡的多叉樹,稱為B樹(或B-樹、B_樹)。[0015]步驟4:服務(wù)器返回保存數(shù)據(jù)成功信息到客戶端。[0016]當(dāng)用戶需要進(jìn)行數(shù)據(jù)統(tǒng)計(jì)時(shí),不再需要遍歷保存在服務(wù)器的數(shù)據(jù)塊而是遍歷元數(shù)據(jù)倉儲就可以解決問題;具體過程如下:步驟1:遍歷元數(shù)據(jù)存儲的B樹結(jié)構(gòu),取出元數(shù)據(jù)對應(yīng)的數(shù)據(jù)統(tǒng)計(jì)信息,進(jìn)行統(tǒng)計(jì)計(jì)算,并返回計(jì)算的統(tǒng)計(jì)結(jié)果步驟2:整個(gè)集群所有服務(wù)器的統(tǒng)計(jì)結(jié)果返回后,統(tǒng)一計(jì)算,進(jìn)行分類統(tǒng)計(jì),得到最終結(jié)果。[0017]當(dāng)需要擴(kuò)展數(shù)據(jù)塊相關(guān)的基本信息或統(tǒng)計(jì)信息時(shí),可以不用修改數(shù)據(jù)塊而是修改對應(yīng)的元數(shù)據(jù),這樣就減小了修改錯誤對于原數(shù)據(jù)的影響。具體過程如下:步驟1:當(dāng)需要修改數(shù)據(jù)塊相關(guān)的基本信息,比如添加一個(gè)保存時(shí)間,以方便以后按時(shí)間統(tǒng)計(jì)數(shù)據(jù),并且可以得到某一類數(shù)據(jù)的增長趨勢等需求時(shí),修改每個(gè)數(shù)據(jù)對應(yīng)的元數(shù)據(jù)即可。修改元數(shù)據(jù)的組成,在原來組成的基礎(chǔ)上,即元數(shù)據(jù)包含信息:partiton、database、table、key、blocklndex、lastblockflag、dataSize中,添加一個(gè)保存時(shí)間time,如修改兀數(shù)據(jù)為partiton、database、table、key、time、blocklndex、lastblockflag、dataSize。[0018]步驟2:當(dāng)需要查看添加時(shí)間時(shí),只需要查找該元數(shù)據(jù)即可。由于修改不涉及到數(shù)據(jù)塊的更改,所以不會影響該數(shù)據(jù)的正確性和有效性。[0019]刪除操作在一個(gè)原子操作下刪除數(shù)據(jù)的同時(shí)刪除其元數(shù)據(jù)。具體過程如下:步驟1:當(dāng)用戶發(fā)起刪除數(shù)據(jù)操作時(shí),請求到達(dá)服務(wù)器。[0020]步驟2:服務(wù)器在一個(gè)事務(wù)中同時(shí)做刪除數(shù)據(jù)和其元數(shù)據(jù)操作。如果操作都成功則數(shù)據(jù)及元數(shù)據(jù)一起刪除,如果其中一個(gè)操作失敗,則事務(wù)回滾,刪除操作撤銷。[0021]通過對元數(shù)據(jù)的統(tǒng)計(jì),可以得知數(shù)據(jù)切分為多個(gè)數(shù)據(jù)塊以及數(shù)據(jù)是否完備。[0022]本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點(diǎn):1)通過遍歷某個(gè)數(shù)據(jù)服務(wù)器的元數(shù)據(jù)database,可以很方便的取得該服務(wù)器的存儲統(tǒng)計(jì)信息,減少了系統(tǒng)復(fù)雜度及資源浪費(fèi);2)當(dāng)需要對數(shù)據(jù)塊的基本信息修改時(shí),只需要修改對應(yīng)的元數(shù)據(jù)就可以達(dá)到目標(biāo),減少了可能出錯的概率;3)使用B樹形結(jié)構(gòu),在數(shù)據(jù)遷移時(shí),如果需要把某個(gè)分片遷移到集群中另一個(gè)存儲上時(shí),可以直接將該分片的子樹整個(gè)遷移過去,達(dá)到方便數(shù)據(jù)遷移的目的;4)不需要專門的元數(shù)據(jù)服務(wù)器,因此運(yùn)行可靠并且降低了服務(wù)器成本;5)元數(shù)據(jù)保存在數(shù)據(jù)集群中,方便以后的擴(kuò)展。[0023]【專利附圖】【附圖說明】[0024]圖1為本發(fā)明數(shù)據(jù)塊和塊元數(shù)據(jù)(blockmeta)在同一數(shù)據(jù)服務(wù)器上的存儲策略。[0025]圖2為本發(fā)明數(shù)據(jù)和記錄元數(shù)據(jù)(recordmeta)在同一數(shù)據(jù)服務(wù)器上的存儲策略。[0026]圖3為本發(fā)明元數(shù)據(jù)寫入過程流程圖。[0027]圖4為本發(fā)明元數(shù)據(jù)統(tǒng)計(jì)讀取過程圖。[0028]圖5為本發(fā)明數(shù)據(jù)塊存儲結(jié)構(gòu)圖。[0029]圖6為本發(fā)明元數(shù)據(jù)存儲結(jié)構(gòu)圖。[0030]【具體實(shí)施方式】[0031]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對本發(fā)明進(jìn)行詳細(xì)描述。[0032]術(shù)語解釋數(shù)據(jù)倉儲:依照某種數(shù)據(jù)模型,組織并存放數(shù)據(jù)的集合。[0033]元數(shù)據(jù)倉儲:依照某種數(shù)據(jù)模型,組織并存放元數(shù)據(jù)的集合。[0034]原子操作:指的是這個(gè)操作所處層的更高層不能發(fā)現(xiàn)其內(nèi)部實(shí)現(xiàn)與結(jié)構(gòu)。其不會被線程調(diào)度機(jī)制打斷的操作;這種操作一旦開始,就一直運(yùn)行到結(jié)束,中間不會有任何contextswitch(切換到另一個(gè)線程)。[0035]如圖1所示,為本發(fā)明的數(shù)據(jù)塊存儲策略。數(shù)據(jù)塊及其元數(shù)據(jù)存儲在一個(gè)數(shù)據(jù)服務(wù)器的不同倉儲上,使得元數(shù)據(jù)與數(shù)據(jù)塊有著相同的冗余度與擴(kuò)展性。[0036]如圖2所示,為本發(fā)明的數(shù)據(jù)存儲策略。為每條用戶上傳的完整數(shù)據(jù)記錄單獨(dú)創(chuàng)建保存一個(gè)元數(shù)據(jù)(recordmeta),用于記錄該數(shù)據(jù)記錄的統(tǒng)計(jì)信息。一個(gè)完整的數(shù)據(jù)記錄保存在一個(gè)存儲服務(wù)器上,當(dāng)數(shù)據(jù)量很大時(shí),可以認(rèn)為存儲集群數(shù)據(jù)是均勻分布的。[0037]如圖1與2所示,一個(gè)數(shù)據(jù)記錄對應(yīng)一個(gè)數(shù)據(jù)記錄元數(shù)據(jù)(recordmeta),—個(gè)數(shù)據(jù)記錄可能會拆分為多個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊對應(yīng)一個(gè)塊元數(shù)據(jù)(blockmeta);數(shù)據(jù)保存在數(shù)據(jù)倉儲中,元數(shù)據(jù)(包括記錄元數(shù)據(jù)和塊元數(shù)據(jù))保存在元數(shù)據(jù)倉儲中。[0038]圖3示出了本發(fā)明實(shí)例提供的數(shù)據(jù)存儲方法實(shí)現(xiàn)流程,具體如下:步驟1:假設(shè)客戶端上傳項(xiàng)目projectl所屬表tablel的數(shù)據(jù),key為keyl。客戶端向存儲服務(wù)器發(fā)送保存數(shù)據(jù)請求。[0039]如果數(shù)據(jù)較大,則拆分為多個(gè)數(shù)據(jù)塊,逐個(gè)發(fā)送;其中,此處設(shè)置了4種數(shù)據(jù)塊大小的標(biāo)準(zhǔn):1M、2M、3M、5M,根據(jù)傳遞數(shù)據(jù)的不同,選擇相應(yīng)的數(shù)據(jù)塊大小的標(biāo)準(zhǔn),例如發(fā)送圖標(biāo)數(shù)據(jù)時(shí),因?yàn)閳D標(biāo)數(shù)據(jù)普遍較小,就選擇IM的數(shù)據(jù)塊的標(biāo)準(zhǔn);如果發(fā)送flash格式的文件時(shí),因?yàn)檫@類文件一般來說比較大,那么可以適當(dāng)選擇3M的數(shù)據(jù)塊標(biāo)準(zhǔn);如果發(fā)送視頻文件時(shí),而視頻文件的大小比flash文件一般更大,就適當(dāng)選擇5M的數(shù)據(jù)塊標(biāo)準(zhǔn)。[0040]步驟2:用戶保存數(shù)據(jù)的請求到達(dá)服務(wù)器后,服務(wù)器將數(shù)據(jù)以B樹的存儲結(jié)構(gòu)保存在數(shù)據(jù)倉儲中,方便以后的數(shù)據(jù)查找;步驟3:服務(wù)器從數(shù)據(jù)塊中抽取出需要的統(tǒng)計(jì)信息與其基本信息組成元數(shù)據(jù)為partiton、database、table、key、time、blocklndex、lastblockflag、dataSize,并把兀數(shù)據(jù)也以B樹的存儲結(jié)構(gòu)保存在元數(shù)據(jù)倉儲中,步驟2與步驟3屬于一個(gè)原子操作。[0041]其中,在本處理過程中包含兩部分?jǐn)?shù)據(jù)操作:I)為每個(gè)數(shù)據(jù)塊創(chuàng)建一個(gè)塊元數(shù)據(jù)(blockmeta)信息(具體包含:1、元數(shù)據(jù)的基本信息;2、數(shù)據(jù)dataSize),保存在元數(shù)據(jù)倉儲中,具體參見圖1。[0042]2)為每條數(shù)據(jù)創(chuàng)建一個(gè)記錄元數(shù)據(jù)(recordmeta)(具體包含:1、元數(shù)據(jù)基本信息;2元數(shù)據(jù)對應(yīng)數(shù)據(jù)的統(tǒng)計(jì)信息),當(dāng)上傳新的該數(shù)據(jù)的數(shù)據(jù)塊時(shí),更新recordmeta信息中保存的相關(guān)信息,具體參見圖2。[0043]步驟4:服務(wù)器返回保存的結(jié)果到客戶端。[0044]圖4示出了本發(fā)明統(tǒng)計(jì)一個(gè)數(shù)據(jù)服務(wù)器的存儲信息流程圖。其流程包括以下步驟:步驟1:假設(shè)用戶需要統(tǒng)計(jì)每個(gè)項(xiàng)目的存儲數(shù)據(jù)量,向存儲服務(wù)器發(fā)送統(tǒng)計(jì)請求。[0045]步驟2:服務(wù)器接受到請求后,如果元數(shù)據(jù)不在內(nèi)存,則將元數(shù)據(jù)放入內(nèi)存,對內(nèi)存中的元數(shù)據(jù)遍歷其B樹結(jié)構(gòu)。[0046]步驟3:按項(xiàng)目進(jìn)行分類,從而方便對每個(gè)項(xiàng)目的中包含的元數(shù)據(jù)進(jìn)行統(tǒng)計(jì)處理,把元數(shù)據(jù)中保存的存儲量數(shù)據(jù)進(jìn)行歸類計(jì)算。[0047]步驟4:計(jì)算完統(tǒng)計(jì)信息后,返回結(jié)果給客戶端。[0048]如圖5所示,為本發(fā)明的數(shù)據(jù)塊存儲結(jié)構(gòu)。數(shù)據(jù)塊按照B樹存儲結(jié)構(gòu)保存在數(shù)據(jù)倉儲中,在數(shù)據(jù)查找時(shí),可以根據(jù)保存數(shù)據(jù)的信息按順序?qū)樹進(jìn)行遍歷,比如通過key計(jì)算出數(shù)據(jù)屬于哪個(gè)分片,找到對應(yīng)分片的partiton節(jié)點(diǎn),然后繼續(xù)通過數(shù)據(jù)屬于哪個(gè)project、table、key找到對應(yīng)葉子節(jié)點(diǎn)的數(shù)據(jù)Block,從而很容易的到需要的數(shù)據(jù)。[0049]按圖5所示的樹形結(jié)構(gòu),在數(shù)據(jù)遷移時(shí),如果需要把某個(gè)分片遷移到集群中另一個(gè)存儲上時(shí),可以直接將該partition子樹整個(gè)遷移過去,達(dá)到方便數(shù)據(jù)遷移的目的。[0050]如圖6所示,為本發(fā)明的元數(shù)據(jù)存儲結(jié)構(gòu)。元數(shù)據(jù)按照B樹存儲結(jié)構(gòu)保存在元數(shù)據(jù)倉儲中。在數(shù)據(jù)查找時(shí),可以通過B樹很容易的找到需要的元數(shù)據(jù)。查找同圖5所述,當(dāng)找到對應(yīng)的元數(shù)據(jù)信息后,可以通過計(jì)算所找到的元數(shù)據(jù)相關(guān)信息,例如統(tǒng)計(jì)數(shù)據(jù)量大小、存儲時(shí)間等,得到需要的統(tǒng)計(jì)信息,比如計(jì)算keyl數(shù)據(jù)的總數(shù)據(jù)量,可以將keyl下所有葉子節(jié)點(diǎn)的元數(shù)據(jù)中的數(shù)據(jù)量信息進(jìn)行累加,從而得到該keyl總數(shù)據(jù)量。[0051]如果不使用元數(shù)據(jù),那么每次都需要取出該數(shù)據(jù)的所有的數(shù)據(jù)進(jìn)行計(jì)算,這樣將浪費(fèi)大量的系統(tǒng)資源。[0052]以上所述僅為本發(fā)明專利的一種實(shí)施例而已,并不用以限制本發(fā)明專利,凡在本發(fā)明專利的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均以包含在本發(fā)明專利的保護(hù)范圍之內(nèi)?!緳?quán)利要求】1.一種基于元數(shù)據(jù)保存存儲信息及統(tǒng)計(jì)管理數(shù)據(jù)的方法,其特征在于,具體包括步驟如下:步驟一、客戶端向存儲服務(wù)器發(fā)送保存數(shù)據(jù)請求;步驟二、用戶保存數(shù)據(jù)的請求到達(dá)服務(wù)器后,服務(wù)器將數(shù)據(jù)保存在數(shù)據(jù)倉儲中,客戶端根據(jù)待發(fā)送數(shù)據(jù)量大小將數(shù)據(jù)拆分為多個(gè)數(shù)據(jù)塊,逐個(gè)發(fā)送到存儲服務(wù)器;步驟三、服務(wù)器從數(shù)據(jù)中抽取出需要的統(tǒng)計(jì)信息與其基本信息組成元數(shù)據(jù),并把元數(shù)據(jù)保存在元數(shù)據(jù)倉儲中;步驟四、服務(wù)器返回保存數(shù)據(jù)成功信息到客戶端。2.根據(jù)權(quán)利要求1所述的基于元數(shù)據(jù)保存存儲信息及統(tǒng)計(jì)管理數(shù)據(jù)的方法,其特征在于:步驟三中,元數(shù)據(jù)組成部分包括:partiton、database、table、key、blocklndex、lastblockflag、dataSize。3.根據(jù)權(quán)利要求1所述的基于元數(shù)據(jù)保存存儲信息及統(tǒng)計(jì)管理數(shù)據(jù)的方法,其特征在于:步驟二與步驟三屬于一個(gè)原子操作。4.根據(jù)權(quán)利要求1所述的基于元數(shù)據(jù)保存存儲信息及統(tǒng)計(jì)管理數(shù)據(jù)的方法,其特征在于,步驟三的處理過程中包含兩部分?jǐn)?shù)據(jù)操作:1)為每個(gè)數(shù)據(jù)塊創(chuàng)建一個(gè)塊元數(shù)據(jù)(blockmeta)信息,保存在元數(shù)據(jù)倉儲中;2)為每條數(shù)據(jù)記錄創(chuàng)建一個(gè)記錄元數(shù)據(jù)(recordmeta),當(dāng)上傳新的該數(shù)據(jù)的數(shù)據(jù)塊時(shí),更新記錄元數(shù)據(jù)(recordmeta)信息中保存的相關(guān)信息;保存時(shí),以元數(shù)據(jù)字符串保存為B樹結(jié)構(gòu);查找時(shí),以前面的數(shù)據(jù)基本信息作為查找索引,能夠方便快捷的找出需要的數(shù)據(jù)。5.根據(jù)權(quán)利要求1至4之一所述的基于元數(shù)據(jù)保存存儲信息及統(tǒng)計(jì)管理數(shù)據(jù)的方法,其特征在于,當(dāng)用戶需要進(jìn)行數(shù)據(jù)統(tǒng)計(jì)時(shí),不需要遍歷保存在服務(wù)器的數(shù)據(jù)塊而是僅需遍歷元數(shù)據(jù)倉儲即可,具體步驟為:步驟1:遍歷元數(shù)據(jù)存儲的B樹結(jié)構(gòu),取出元數(shù)據(jù)對應(yīng)的數(shù)據(jù)統(tǒng)計(jì)信息,進(jìn)行統(tǒng)計(jì)計(jì)算,并返回計(jì)算的統(tǒng)計(jì)結(jié)果;步驟2:整個(gè)集群所有服務(wù)器的統(tǒng)計(jì)結(jié)果返回后,統(tǒng)一計(jì)算,進(jìn)行分類統(tǒng)計(jì),得到最終結(jié)果。6.根據(jù)權(quán)利要求1至4之一所述的基于元數(shù)據(jù)保存存儲信息及統(tǒng)計(jì)管理數(shù)據(jù)的方法,其特征在于,當(dāng)需要擴(kuò)展數(shù)據(jù)塊相關(guān)的基本信息或統(tǒng)計(jì)信息時(shí),不用修改數(shù)據(jù)塊而是僅修改對應(yīng)的元數(shù)據(jù),具體步驟為:步驟1:當(dāng)需要修改數(shù)據(jù)塊相關(guān)的基本信息,比如添加一個(gè)保存時(shí)間,以方便以后按時(shí)間統(tǒng)計(jì)數(shù)據(jù),并且可以得到某一類數(shù)據(jù)的增長趨勢等需求時(shí),修改每個(gè)數(shù)據(jù)對應(yīng)的元數(shù)據(jù)即可;修改元數(shù)據(jù)的組成,在原來組成的基礎(chǔ)上,即元數(shù)據(jù)包含信息:partiton、database、table、key、blocklndex、lastblockflag、dataSize中,添加一個(gè)保存時(shí)間time,如修改兀數(shù)據(jù)為partiton、database、table、key、time、blocklndex、lastblockflag、dataSize;步驟2:當(dāng)需要查看添加時(shí)間時(shí),只需要查找該元數(shù)據(jù)即可;由于修改不涉及到數(shù)據(jù)塊的更改,所以不會影響該數(shù)據(jù)的正確性和有效性。7.根據(jù)權(quán)利要求1至4之一所述的基于元數(shù)據(jù)保存存儲信息及統(tǒng)計(jì)管理數(shù)據(jù)的方法,其特征在于,刪除操作在一個(gè)原子操作下刪除數(shù)據(jù)的同時(shí)刪除其元數(shù)據(jù),具體步驟為:步驟1:當(dāng)用戶發(fā)起刪除數(shù)據(jù)操作時(shí),請求到達(dá)服務(wù)器;步驟2:服務(wù)器在一個(gè)事務(wù)中同時(shí)做刪除數(shù)據(jù)和其元數(shù)據(jù)操作;如果操作都成功則數(shù)據(jù)及元數(shù)據(jù)一起刪除,如果其中一個(gè)操作失敗,則事務(wù)回滾,刪除操作撤銷。8.根據(jù)權(quán)利要求5所述的基于元數(shù)據(jù)保存存儲信息及統(tǒng)計(jì)管理數(shù)據(jù)的方法,其特征在于:通過對元數(shù)據(jù)的統(tǒng)計(jì),能夠得知數(shù)據(jù)切分為多個(gè)數(shù)據(jù)塊以及數(shù)據(jù)是否完備。9.根據(jù)權(quán)利要求1所述的基于元數(shù)據(jù)保存存儲信息及統(tǒng)計(jì)管理數(shù)據(jù)的方法,其特征在于:步驟五、用戶需要統(tǒng)計(jì)每個(gè)項(xiàng)目的存儲數(shù)據(jù)量,向存儲服務(wù)器發(fā)送統(tǒng)計(jì)請求;步驟六、服務(wù)器接受到請求后,如果元數(shù)據(jù)不在內(nèi)存,則將元數(shù)據(jù)放入內(nèi)存,對內(nèi)存中的元數(shù)據(jù)遍歷其B樹結(jié)構(gòu);步驟七、按項(xiàng)目進(jìn)行分類,從而方便對每個(gè)項(xiàng)目的中包含的元數(shù)據(jù)進(jìn)行統(tǒng)計(jì)處理,把元數(shù)據(jù)中保存的存儲量數(shù)據(jù)進(jìn)行歸類計(jì)算;步驟八、計(jì)算完統(tǒng)計(jì)信息后,返回結(jié)果給客戶端?!疚臋n編號】G06F17/30GK103795811SQ201410078821【公開日】2014年5月14日申請日期:2014年3月6日優(yōu)先權(quán)日:2014年3月6日【發(fā)明者】何學(xué)勇,梁峰,許諾申請人:焦點(diǎn)科技股份有限公司