處理節(jié)點(diǎn)計(jì)算能力感知的虛擬資產(chǎn)數(shù)據(jù)劃分方法
【專利摘要】本發(fā)明公開一種處理節(jié)點(diǎn)計(jì)算能力感知的虛擬資產(chǎn)數(shù)據(jù)劃分方法,包括以下步驟一、機(jī)器間的處理:在分布式一致性hash算法的基礎(chǔ)之上,加入權(quán)值,Qi=Q*ai/A;步驟二、機(jī)器內(nèi)部的處理:根據(jù)劃分的目的,設(shè)定數(shù)據(jù)的相關(guān)屬性,在同一機(jī)器節(jié)點(diǎn)內(nèi)存放具有相關(guān)屬性的數(shù)據(jù);將具有相同標(biāo)識(shí)屬性的虛擬資產(chǎn)數(shù)據(jù)平臺(tái)鄰近存放。與已有技術(shù)相比,本發(fā)明申請(qǐng)將考慮了機(jī)器性能,唯一標(biāo)識(shí)相關(guān),平臺(tái)相關(guān)的處理分布方法應(yīng)用到了虛擬資產(chǎn)海量信息的存儲(chǔ)當(dāng)中,大大地降低了查詢的時(shí)間,提高了查詢效率。
【專利說明】處理節(jié)點(diǎn)計(jì)算能力感知的虛擬資產(chǎn)數(shù)據(jù)劃分方法
【技術(shù)領(lǐng)域】
[0001] 本技術(shù)涉及海量虛擬資產(chǎn)信息數(shù)據(jù)的存儲(chǔ)分配,具體涉及一種處理節(jié)點(diǎn)計(jì)算能力 感知的虛擬資產(chǎn)數(shù)據(jù)劃分方法。
【背景技術(shù)】
[0002] hash算法[1]或者說為hash函數(shù),是任何可以將各種長(zhǎng)度的二進(jìn)制值映射為固定 長(zhǎng)度的二進(jìn)制值的算法。由hash算法返回的值也叫做hash值,hash碼,hash校驗(yàn)和或者 簡(jiǎn)單hash。hash對(duì)于檢測(cè)數(shù)據(jù)對(duì)象(例如消息)中的修改很有用。此外,好的hash算法 使得構(gòu)造兩個(gè)相互獨(dú)立且具有相同hash的輸入不能通過計(jì)算方法實(shí)現(xiàn)。
[0003] -致性hash算法[2]是一種特殊的hash算法,當(dāng)調(diào)整hash表大小時(shí),平均只有 K/n個(gè)數(shù)據(jù)需要被重新映射,其中K是數(shù)據(jù)量的大小,η是緩沖的大小。相對(duì)地,在大多數(shù)其 它hash表中,緩沖數(shù)組的變化基本上導(dǎo)致其中所有數(shù)據(jù)都需要重新映射。
[0004] 分布式一致性hash算法[3]就是在一致性hash算法的基礎(chǔ)之上增加了虛擬節(jié)點(diǎn) 的考慮。其目的就是把hash的結(jié)果盡可能平均地分布到所有的緩沖中去,這樣可以使得所 有的緩沖空間都得到利用。
[0005] 前述第一種方法在處理數(shù)據(jù)分布式時(shí)會(huì)導(dǎo)致機(jī)器擴(kuò)展性發(fā)生嚴(yán)重缺陷,當(dāng)增加或 者刪除機(jī)器的時(shí)候,幾乎所有數(shù)據(jù)都需要重新映射,計(jì)算量大。第二種方法可以緩解上述情 況,但仍有多數(shù)數(shù)據(jù)需要重新映射,計(jì)算量也很大。第三種方法可以很好地減少計(jì)算量,但 是它沒有考慮機(jī)器之間的差異,過分地平均可能導(dǎo)致系統(tǒng)的延遲。
[0006] [1]Jarvinen K, Tommiska M, Skytta J. Hardware implementation analysis of the MD5hash algorithm[C]. 2005.
[0007] [2]JiaKui Zhao, PingFei Zhu,LiangHuai, Yang. Effective Data Localization Using Consistent Hashing in Cloud Time-Series Databases[J]. Applied Mechanics and Materials, 2013, 347:2246-2251
[0008] [3] -致性哈希改進(jìn)[EB/0L]·
[0009] http://blog.163.eom/lin_guoqian@126/blog/ static/1693687432012151010409/.
【發(fā)明內(nèi)容】
[0010] 針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明的方法是考慮機(jī)器性能和信息特點(diǎn)的虛擬資產(chǎn)的處 理分布。主要包括機(jī)器間的處理和機(jī)器內(nèi)部的處理,步驟如下:
[0011] 一、機(jī)器間的處理:在分布式一致性hash算法的基礎(chǔ)之上,加入權(quán)值
[0012] Qi = Q*ai/A
[0013] 其中A表示所有機(jī)器節(jié)點(diǎn)實(shí)際的資源總數(shù),
[0014] ai表示機(jī)器節(jié)點(diǎn)i資源能力,
[0015] Qi表示節(jié)點(diǎn)機(jī)器i實(shí)際存儲(chǔ)的數(shù)據(jù)量,
[0016] Q表示總的數(shù)據(jù)量
[0017] 二、機(jī)器內(nèi)部的處理
[0018] 根據(jù)劃分的目的,設(shè)定數(shù)據(jù)的相關(guān)屬性,在同一機(jī)器節(jié)點(diǎn)內(nèi)存放具有相關(guān)屬性的 數(shù)據(jù);
[0019] 將具有相同標(biāo)識(shí)屬性的虛擬資產(chǎn)數(shù)據(jù)平臺(tái)鄰近存放。
[0020] 與已有技術(shù)相比,本專利申請(qǐng)將考慮了機(jī)器性能,唯一標(biāo)識(shí)相關(guān),平臺(tái)相關(guān)的處理 分布方法應(yīng)用到了虛擬資產(chǎn)海量信息的存儲(chǔ)當(dāng)中,大大地降低了查詢的時(shí)間,提高了查詢 效率。
【專利附圖】
【附圖說明】
[0021] 圖1為本發(fā)明整體分布邏輯圖
[0022] 圖2為本發(fā)明節(jié)點(diǎn)間劃分虛擬節(jié)點(diǎn)例子
[0023] 圖3為加權(quán)改進(jìn)hash算法中增加結(jié)點(diǎn)的示例
[0024] 圖4為4加權(quán)改進(jìn)hash算法中減少結(jié)點(diǎn)的示例
[0025] 圖5為同一機(jī)器節(jié)點(diǎn),不同唯一標(biāo)識(shí)下數(shù)據(jù)分布示例
[0026] 圖6為同一個(gè)唯一標(biāo)識(shí),不同平臺(tái)下數(shù)據(jù)分布示例
【具體實(shí)施方式】
[0027] 下面通過【具體實(shí)施方式】來進(jìn)一步說明本發(fā)明的技術(shù)方案:
[0028] 本發(fā)明是考慮機(jī)器性能和信息特點(diǎn)的虛擬資產(chǎn)的處理分布。主要包括機(jī)器間的處 理和機(jī)器內(nèi)部的處理。整體設(shè)計(jì)如圖1所示。
[0029] 1、機(jī)器間的處理
[0030] 加權(quán)改進(jìn)hash算法就是已有的分布式一致性hash算法的基礎(chǔ)之上,加入了權(quán)值: 考慮了機(jī)器節(jié)點(diǎn)的實(shí)際性能(以資源來衡量)。
[0031] 定義1 (權(quán)值確定):A表示所有機(jī)器節(jié)點(diǎn)實(shí)際的資源總數(shù),ai表示機(jī)器節(jié)點(diǎn)i資 源能力,Qi表示節(jié)點(diǎn)機(jī)器i實(shí)際存儲(chǔ)的數(shù)據(jù)量,Q表示總的數(shù)據(jù)量,則
[0032] Qi = Q*ai/A
[0033] 假設(shè)現(xiàn)在采用分布式一致性hash算法,它的hash環(huán)被劃分為16個(gè)虛擬節(jié)點(diǎn),初 始狀態(tài)有A、B、C、D這4個(gè)機(jī)器節(jié)點(diǎn),現(xiàn)在說明一下機(jī)器節(jié)點(diǎn)變化帶來的影響。根據(jù)考慮權(quán) 值的理論:由于它們的資源能力不同,所以它們存儲(chǔ)的虛擬節(jié)點(diǎn)數(shù)目也應(yīng)該不相同。圖2左 是不考慮資源能力的虛擬節(jié)點(diǎn)數(shù)目分配情況,假設(shè)A、B、C、D四個(gè)機(jī)器節(jié)點(diǎn)的資源能力所占 比例,也就是權(quán)值分別為2/16, 2/16,4/16,8/16,則虛擬節(jié)點(diǎn)分配情況如圖2右所示:
[0034] 下面考慮增加機(jī)器節(jié)點(diǎn)時(shí)的情形,假設(shè)增加機(jī)器節(jié)點(diǎn)E,能力比例由4個(gè)節(jié)點(diǎn)A、 B、C、D 的 2/16, 2/16,4/16,8/16,變?yōu)樵黾又?5 個(gè)節(jié)點(diǎn) A、B、C、D、E 的 1/16,1/16, 2/16, 4/16,8/16,將A、B、C、D減少的結(jié)點(diǎn)都分配給節(jié)點(diǎn)E,是在盡量保證A、B、C、D現(xiàn)有節(jié)點(diǎn)變化 最小的原則下重新分配,分配的情況如圖3所示,圖3左是初始狀態(tài)的情況,圖3右是增加 結(jié)點(diǎn)E的情況。
[0035] 再考慮減少節(jié)點(diǎn)狀態(tài),在原來A、B、C、D4個(gè)結(jié)點(diǎn)的情形下,減少節(jié)點(diǎn)D,能力比例由 4個(gè)節(jié)點(diǎn)A、B、C、D的2/16, 2/16,4/16,8/16變?yōu)闇p少節(jié)點(diǎn)后3個(gè)結(jié)點(diǎn)A、B、C的2/8, 2/8, 4/8,虛擬結(jié)點(diǎn)的分配情況也會(huì)隨著做相應(yīng)的改變,由于所有的虛擬結(jié)點(diǎn)大小是相同的,所 以將原來屬于D的虛擬結(jié)點(diǎn),按照比例1 :1 :2分配給節(jié)點(diǎn)A、B、C,分配結(jié)果如圖4所示,圖 4左是初始狀態(tài)的情況,圖4右是減少結(jié)點(diǎn)D的情況。
[0036] 2、機(jī)器內(nèi)部的處理
[0037] 前面所說的是每個(gè)機(jī)器節(jié)點(diǎn)所應(yīng)存儲(chǔ)的合理數(shù)據(jù)量大小,現(xiàn)在說明一下機(jī)器內(nèi)的 處理。
[0038] 根據(jù)劃分的目的,同一機(jī)器節(jié)點(diǎn)內(nèi)存放的數(shù)據(jù)應(yīng)該相關(guān),這樣查找的時(shí)候就不需 要有太大的跨度,這樣可以節(jié)省查詢時(shí)間。以Cassandra數(shù)據(jù)庫為例,來考慮不同唯一標(biāo)識(shí) (Column Family存儲(chǔ))的數(shù)據(jù)在同一機(jī)器節(jié)點(diǎn)的存放,對(duì)于唯一標(biāo)識(shí)的調(diào)用,基本上不存 在范圍查找,如果僅僅按照唯一標(biāo)識(shí)順序排列,會(huì)浪費(fèi)次序之間的優(yōu)勢(shì)。所以在這里,采用 按照用戶所在地這個(gè)屬性來存儲(chǔ),因?yàn)樵谕粋€(gè)城市或者相近城市的用戶們會(huì)經(jīng)常交流, 他們之間的聯(lián)系更大,出現(xiàn)異常情況的可能性較大。如:在唯一標(biāo)識(shí):5789047294S的地點(diǎn) 是杭州中國(guó),而唯一標(biāo)識(shí)3451654890H的地點(diǎn)也是杭州中國(guó),為了加強(qiáng)管控,就可以把這兩 個(gè)唯一標(biāo)識(shí)下的信息鄰近存放,來加快查找的效率。如圖5所示,圖5左是不考慮唯一標(biāo)識(shí) 相關(guān)情況的存儲(chǔ),圖5右是考慮唯一標(biāo)識(shí)相關(guān)情況的存儲(chǔ)。
[0039] 接著來考慮同一個(gè)唯一標(biāo)識(shí)(Column Family存儲(chǔ))下,不同平臺(tái)(Key存儲(chǔ))下 信息的分配情況。對(duì)于同一用戶,很有可能在不同平臺(tái)下存儲(chǔ)相同屬性的資產(chǎn),如:在游戲 平臺(tái)"七殺"中擁有"刀"這個(gè)屬性的虛擬資產(chǎn),而在游戲平臺(tái)"天龍八部"中擁有同樣屬性 的資產(chǎn),就可以把這兩個(gè)平臺(tái)鄰近存放,來加快查找的效率。如圖6所示,圖6左是不考慮 資產(chǎn)相關(guān)情況的存儲(chǔ),圖6右是考慮資產(chǎn)相關(guān)情況的存儲(chǔ)。
[0040] 與已有技術(shù)相比,本專利申請(qǐng)將考慮了機(jī)器性能,唯一標(biāo)識(shí)相關(guān),平臺(tái)相關(guān)的處理 分布方法應(yīng)用到了虛擬資產(chǎn)海量信息的存儲(chǔ)當(dāng)中,大大地降低了查詢的時(shí)間,提高了查詢 效率。
[0041] 以上是對(duì)本發(fā)明進(jìn)行了示例性的描述,顯然本發(fā)明的實(shí)現(xiàn)并不受上述方式的限 制,只要采用了本發(fā)明技術(shù)方案進(jìn)行的各種改進(jìn),或未經(jīng)改進(jìn)將本發(fā)明的構(gòu)思和技術(shù)方案 直接應(yīng)用于其它場(chǎng)合的,均在本發(fā)明的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1. 一種處理節(jié)點(diǎn)計(jì)算能力感知的虛擬資產(chǎn)數(shù)據(jù)劃分方法,其特征在于,包括以下步 驟: 一、 機(jī)器間的處理:在分布式一致性hash算法的基礎(chǔ)之上,加入權(quán)值 Qi = Q^aj/A 其中A表示所有機(jī)器節(jié)點(diǎn)實(shí)際的資源總數(shù), ai表示機(jī)器節(jié)點(diǎn)i資源能力, Qi表示節(jié)點(diǎn)機(jī)器i實(shí)際存儲(chǔ)的數(shù)據(jù)量, Q表示總的數(shù)據(jù)量 二、 機(jī)器內(nèi)部的處理 根據(jù)劃分的目的,設(shè)定數(shù)據(jù)的相關(guān)屬性,在同一機(jī)器節(jié)點(diǎn)內(nèi)存放具有相關(guān)屬性的數(shù) 據(jù); 將具有相同標(biāo)識(shí)屬性的虛擬資產(chǎn)數(shù)據(jù)平臺(tái)鄰近存放。
【文檔編號(hào)】G06F17/30GK104112025SQ201410374849
【公開日】2014年10月22日 申請(qǐng)日期:2014年8月1日 優(yōu)先權(quán)日:2014年8月1日
【發(fā)明者】鄧璐, 賈焰, 韓偉紅, 李樹棟, 李虎, 劉 東, 全擁 申請(qǐng)人:中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué)