亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

路由信息更新方法及裝置的制作方法

文檔序號(hào):7925498閱讀:141來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):路由信息更新方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種路由信息更新方法及裝置。
背景技術(shù)
分布式KV(Key-Value)存儲(chǔ)系統(tǒng)通常由客戶(hù)端和存儲(chǔ)服務(wù)器構(gòu)成,其中,存儲(chǔ)服務(wù)器的功能在于存儲(chǔ)鍵值(Value,即數(shù)據(jù)),而客戶(hù)端的功能在于通過(guò)基于一定的路由算法(比如哈希(hash)算法)所確定出的路由信息,路由到相應(yīng)的存儲(chǔ)服務(wù)器上,從而實(shí)現(xiàn)對(duì)與鍵(Key,即數(shù)據(jù)標(biāo)識(shí))相對(duì)應(yīng)的Value的訪(fǎng)問(wèn)與操作(比如可以對(duì)Value執(zhí)行寫(xiě)讀、寫(xiě)、刪除等操作)。當(dāng)分布式KV存儲(chǔ)系統(tǒng)的存儲(chǔ)容量增加時(shí),數(shù)據(jù)會(huì)在存儲(chǔ)服務(wù)器之間發(fā)生遷移,此時(shí)需要重新根據(jù)路由算法確定數(shù)據(jù)與存儲(chǔ)服務(wù)器之間的對(duì)應(yīng)關(guān)系,井根據(jù)該對(duì)應(yīng)關(guān)系對(duì)路由信息進(jìn)行更新,進(jìn)而 根據(jù)更新后的路由信息將數(shù)據(jù)遷移到相應(yīng)的存儲(chǔ)服務(wù)器中。在上述過(guò)程中,若采用的路由算法不當(dāng),很可能在新增存儲(chǔ)服務(wù)器的情況下,導(dǎo)致大量的數(shù)據(jù)都遷移到新增的存儲(chǔ)服務(wù)器中,從而使得整個(gè)分布式KV存儲(chǔ)系統(tǒng)的負(fù)載失衡;或者,還可能導(dǎo)致幾乎所有的數(shù)據(jù)都發(fā)生遷移,從而增大分布式KV存儲(chǔ)系統(tǒng)的處理負(fù)擔(dān)。以下介紹現(xiàn)有技術(shù)中常用的幾種路由算法及其特點(diǎn)首先介紹ー種簡(jiǎn)單的路由算法——取模hash(即余數(shù)hash)算法。研究發(fā)現(xiàn),由于該路由算法與存儲(chǔ)服務(wù)器的個(gè)數(shù)密切相關(guān),因此在存儲(chǔ)服務(wù)器的個(gè)數(shù)變化后,根據(jù)該算法所計(jì)算出的路由會(huì)導(dǎo)致幾乎所有的數(shù)據(jù)都需要進(jìn)行遷移,從而使得數(shù)據(jù)發(fā)生劇烈波動(dòng)(數(shù)據(jù)波動(dòng)即數(shù)據(jù)在不同存儲(chǔ)服務(wù)器之間發(fā)生遷移),也使得分布式KV存儲(chǔ)系統(tǒng)的處理負(fù)擔(dān)非
常沉重。其次介紹ー種改進(jìn)的路由算法——簡(jiǎn)單一致性hash (即在存儲(chǔ)服務(wù)器上進(jìn)行一致性hash)算法。研究發(fā)現(xiàn),該算法雖然可以在分布式KV存儲(chǔ)系統(tǒng)的存儲(chǔ)容量改變后,實(shí)現(xiàn)使存儲(chǔ)容量改變前的分布式KV存儲(chǔ)系統(tǒng)的已有路由盡可能少的受到影響,但卻不能達(dá)到使得新增的存儲(chǔ)服務(wù)器和原有的存儲(chǔ)服務(wù)器在數(shù)據(jù)存儲(chǔ)負(fù)載上較為均衡這一目標(biāo)。此外重點(diǎn)介紹基于虛擬節(jié)點(diǎn)的一致性hash算法(即在虛擬節(jié)點(diǎn)上進(jìn)行一致性hash,并建立虛擬節(jié)點(diǎn)和物理的存儲(chǔ)服務(wù)器之間的映射關(guān)系)。需要說(shuō)明的是,虛擬節(jié)點(diǎn)用于對(duì)存儲(chǔ)網(wǎng)絡(luò)中的各存儲(chǔ)服務(wù)器的磁盤(pán)陣列進(jìn)行虛擬化操作,將各磁盤(pán)陣列中的LUN (Logical Unit Number,邏輯單元號(hào))虛擬為邏輯卷,其中,虛擬節(jié)點(diǎn)可以為ー個(gè)硬件設(shè)備,也可以為可以實(shí)現(xiàn)上述功能的一個(gè)軟件功能単元。當(dāng)客戶(hù)端要訪(fǎng)問(wèn)某個(gè)存儲(chǔ)服務(wù)器時(shí),首先要訪(fǎng)問(wèn)虛擬節(jié)點(diǎn),然后再通過(guò)存儲(chǔ)網(wǎng)絡(luò)訪(fǎng)問(wèn)實(shí)際的存儲(chǔ)服務(wù)器中存儲(chǔ)的數(shù)據(jù)。在此過(guò)程中,客戶(hù)端只會(huì)識(shí)別到邏輯卷,而不會(huì)直接識(shí)別到存儲(chǔ)服務(wù)器的物理硬盤(pán)。基于虛擬節(jié)點(diǎn),該一致性hash算法是指先根據(jù)一致性hash算法確定ー個(gè)虛擬節(jié)點(diǎn),然后再跟據(jù)該虛擬節(jié)點(diǎn)和存儲(chǔ)服務(wù)器的映射關(guān)系更新路由信息,并根據(jù)更新后的路由信息找到對(duì)應(yīng)的存儲(chǔ)服務(wù)器。該算法的缺陷在于,在解決分布式KV存儲(chǔ)系統(tǒng)擴(kuò)容時(shí)的數(shù)據(jù)波動(dòng)問(wèn)題和存儲(chǔ)服務(wù)器負(fù)載均衡性問(wèn)題時(shí),會(huì)受到存儲(chǔ)服務(wù)器對(duì)應(yīng)的虛擬節(jié)點(diǎn)的個(gè)數(shù)的限制。具體來(lái)說(shuō),若存儲(chǔ)服務(wù)器對(duì)應(yīng)的虛擬節(jié)點(diǎn)越多,則基于更新后的路由信息進(jìn)行數(shù)據(jù)遷移時(shí)的數(shù)據(jù)波動(dòng)越小,從而數(shù)據(jù)在不同存儲(chǔ)服務(wù)器之間的分布越均衡,存儲(chǔ)服務(wù)器的負(fù)載也就越均衡。具體地,存儲(chǔ)服務(wù)器所對(duì)應(yīng)的虛擬節(jié)點(diǎn)個(gè)數(shù)與背離指標(biāo)的對(duì)應(yīng)關(guān)系示意圖如圖1所示。圖1中的橫坐標(biāo)代表存儲(chǔ)服務(wù)器所對(duì)應(yīng)的虛擬節(jié)點(diǎn)個(gè)數(shù);縱坐標(biāo)代表背離指標(biāo)。需要說(shuō)明的是,背離指標(biāo)是能夠反映數(shù)據(jù)在存儲(chǔ)服務(wù)器之間分布狀況的ー個(gè)百分比指標(biāo),背離指標(biāo)越高,數(shù)據(jù)在存儲(chǔ)服務(wù)器之間分布得越均衡,否則,則越不均衡。由圖1可知,當(dāng)物理存儲(chǔ)器僅對(duì)應(yīng)一個(gè)虛擬節(jié)點(diǎn)時(shí)(這種情況也就是利用簡(jiǎn)單一致性hash算法進(jìn)行路由計(jì)算的情況),背離率接近100%,說(shuō)明數(shù)據(jù)在存儲(chǔ)服務(wù)器之間分布得非常不均衡;當(dāng)一個(gè)存儲(chǔ)服務(wù)器對(duì)應(yīng)100-200個(gè)虛擬節(jié)點(diǎn)的時(shí)候,背離率在5% -10%左右,此時(shí)數(shù)據(jù)在存儲(chǔ)服務(wù)器之間分布得較為均衡。由此可見(jiàn),基于虛擬節(jié)點(diǎn)的一致性hash算法而得到的數(shù)據(jù)分布均衡性有賴(lài)于存儲(chǔ)服務(wù)器所對(duì)應(yīng)的虛擬節(jié)點(diǎn)的個(gè)數(shù),只有在這個(gè)數(shù)相當(dāng)大時(shí)才能達(dá)到ー個(gè)可接受的數(shù)據(jù)分布均衡狀態(tài)。此外,通常實(shí)現(xiàn)一致性hash算法時(shí)需要使用排序樹(shù)之類(lèi)的數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)虛擬節(jié)點(diǎn)與存儲(chǔ)服務(wù)器的映射關(guān)系,因此對(duì)分布式KV存儲(chǔ)系統(tǒng)的功能性要求較高,并且由于要求虛擬節(jié)點(diǎn)散列得盡可能的均勻,因此對(duì)散列算法要求也較高。目前常用的路由算法為上述第三種算法,但若要基于該算法使得數(shù)據(jù)的分布處于均衡狀態(tài),則需要在分布式KV存儲(chǔ)系統(tǒng)中增加較多的虛擬節(jié)點(diǎn),這無(wú)疑會(huì)大大增加分布式KV存儲(chǔ)系統(tǒng)的負(fù)擔(dān)。

發(fā)明內(nèi)容
本申請(qǐng)實(shí)施例提供一種路由信息更新方法及裝置,用以在分布式KV存儲(chǔ)系統(tǒng)的存儲(chǔ)容量増加后,提供一種對(duì)路由信息進(jìn)行更新的方案,以解決若要保證存儲(chǔ)服務(wù)器的負(fù)載分布比較均衡,則需要在分布式KV存儲(chǔ)系統(tǒng)中增加較多的虛擬節(jié)點(diǎn)從而導(dǎo)致増大分布式KV存儲(chǔ)系統(tǒng)負(fù)擔(dān)的問(wèn)題。本申請(qǐng)實(shí)施例采用以下技術(shù)方案一種路由信息更新方法,包括在分布式存儲(chǔ)系統(tǒng)中增加存儲(chǔ)服務(wù)器后,確定所述分布式存儲(chǔ)系統(tǒng)包含的存儲(chǔ)服務(wù)器的第一個(gè)數(shù)、包含的虛擬節(jié)點(diǎn)的第二個(gè)數(shù);根據(jù)按照増加了存儲(chǔ)服務(wù)器后的分布式存儲(chǔ)系統(tǒng)包含的所有存儲(chǔ)服務(wù)器的排列位置,而為存儲(chǔ)服務(wù)器分配的第一排列序號(hào)的順序,依次針對(duì)每個(gè)存儲(chǔ)服務(wù)器,執(zhí)行根據(jù)所述第一個(gè)數(shù)、第二個(gè)數(shù)、為該存儲(chǔ)服務(wù)器分配的所述第一排列序號(hào)、在分布式存儲(chǔ)系統(tǒng)中增加存儲(chǔ)服務(wù)器后已分配給存儲(chǔ)服務(wù)器的虛擬節(jié)點(diǎn)的總個(gè)數(shù),確定分配給該存儲(chǔ)服務(wù)器的虛擬節(jié)點(diǎn)的第三個(gè)數(shù);根據(jù)所述第三個(gè)數(shù)和預(yù)定的存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)對(duì)應(yīng)關(guān)系確定規(guī)則,分別確定各個(gè)存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系;以及根據(jù)確定的所述對(duì)應(yīng)關(guān)系,更新用于指示虛擬節(jié)點(diǎn)與存儲(chǔ)服務(wù)器之間的路由的路由信息。一種路由信息更新方法,包括在分布式存儲(chǔ)系統(tǒng)中增加存儲(chǔ)服務(wù)器后,確定所述分布式存儲(chǔ)系統(tǒng)包含的存儲(chǔ)服務(wù)器的第一個(gè)數(shù),其中,第一個(gè)數(shù)滿(mǎn)足其為所述分布式存儲(chǔ)系統(tǒng)中各存儲(chǔ)服務(wù)器分別對(duì)應(yīng)的虛擬節(jié)點(diǎn)的個(gè)數(shù)的公約數(shù);并按照選取具備能被所述第一個(gè)數(shù)整除的排列序號(hào)的虛擬節(jié)點(diǎn)的選取規(guī)則,從除増加的存儲(chǔ)服務(wù)器外的每個(gè)存儲(chǔ)服務(wù)器所對(duì)應(yīng)的虛擬節(jié)點(diǎn)中,選取虛擬節(jié)點(diǎn),其中,所述排列序號(hào)是根據(jù)虛擬節(jié)點(diǎn)在對(duì)應(yīng)于同一存儲(chǔ)服務(wù)器的所有虛擬節(jié)點(diǎn)中的排列位置分配的;刪除用于指示選取的虛擬節(jié)點(diǎn)與相應(yīng)的存儲(chǔ)服務(wù)器之間的路由的路由信息,并確定用于指示選取的虛擬節(jié)點(diǎn)與増加的存儲(chǔ)服務(wù)器之間的路由的路由信息。一種路由信息更新裝置,包括第一確定單元,用于在分布式存儲(chǔ)系統(tǒng)中增加存儲(chǔ)服務(wù)器后,確定所述分布式存儲(chǔ)系統(tǒng)包含的存儲(chǔ)服務(wù)器的第一個(gè)數(shù)、包含的虛擬節(jié)點(diǎn)的第二個(gè)數(shù);第二確定單元,用于按照増加了存儲(chǔ)服務(wù)器后的分布式存儲(chǔ)系統(tǒng)包含的所有存儲(chǔ)服務(wù)器的排列位置,而為存儲(chǔ)服務(wù)器分配的第一排列序號(hào)的順序,依次針對(duì)每個(gè)存儲(chǔ)服務(wù)器,執(zhí)行根據(jù)第一確定單元確定的第一個(gè)數(shù)、第二個(gè)數(shù)、為該存儲(chǔ)服務(wù)器分配的所述第一排列序號(hào)、在分布式存儲(chǔ)系統(tǒng)中增加存儲(chǔ)服務(wù)器后已分配給存儲(chǔ)服務(wù)器的虛擬節(jié)點(diǎn)的總個(gè)數(shù),確定分配給該存儲(chǔ)服務(wù)器的虛擬節(jié)點(diǎn)的第三個(gè)數(shù);對(duì)應(yīng)關(guān)系確定單元,用于根據(jù)第二確定單元確定的第三個(gè)數(shù)和預(yù)定的存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)對(duì)應(yīng)關(guān)系確定規(guī)則,分別確定各個(gè)存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系;路由信息更新単元,用于根據(jù)對(duì)應(yīng)關(guān)系確定單元確定的對(duì)應(yīng)關(guān)系,更新用于指示虛擬節(jié)點(diǎn)與存儲(chǔ)服務(wù)器之間的路由的路由信息。一種路由信息更新裝置,包括第一個(gè)數(shù)確定單元,用于在分布式存儲(chǔ)系統(tǒng)中增加存儲(chǔ)服務(wù)器后,確定所述分布式存儲(chǔ)系統(tǒng)包含的存儲(chǔ)服務(wù)器的第一個(gè)數(shù),其中,第一個(gè)數(shù)滿(mǎn)足其為所述分布式存儲(chǔ)系統(tǒng)中各存儲(chǔ)服務(wù)器分別對(duì)應(yīng)的虛擬節(jié)點(diǎn)的個(gè)數(shù)的公約數(shù);選取単元,用于按照選取具備能被第一個(gè)數(shù)確定單元確定的第一個(gè)數(shù)整除的排列序號(hào)的虛擬節(jié)點(diǎn)的選取規(guī)則,從除増加的存儲(chǔ)服務(wù)器外的每個(gè)存儲(chǔ)服務(wù)器所對(duì)應(yīng)的虛擬節(jié)點(diǎn)中,選取虛擬節(jié)點(diǎn),其中,所述排列序號(hào)是根據(jù)虛擬節(jié)點(diǎn)在對(duì)應(yīng)于同一存儲(chǔ)服務(wù)器的所有虛擬節(jié)點(diǎn)中的排列位置分配的;路由信息處理單元,用于刪除用于指示選取單元選取的虛擬節(jié)點(diǎn)與相應(yīng)的存儲(chǔ)服務(wù)器之間的路由的路由信息,并確定用于指示選取單元選取的虛擬節(jié)點(diǎn)與増加的存儲(chǔ)服務(wù)器之間的路由的路由信息。本申請(qǐng)實(shí)施例的有益效果如下本申請(qǐng)實(shí)施例提供的上述方案首先確定各個(gè)存儲(chǔ)服務(wù)器應(yīng)該對(duì)應(yīng)的虛擬節(jié)點(diǎn)的個(gè)數(shù),井根據(jù)該個(gè)數(shù)和存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)對(duì)應(yīng)關(guān)系確定規(guī)則,分別確定各個(gè)存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系,從而在不改變分布式存儲(chǔ)系統(tǒng)中包含的虛擬節(jié)點(diǎn)個(gè)數(shù)從而不增大分布式KV存儲(chǔ)系統(tǒng)負(fù)擔(dān) 的前提下,可以實(shí)現(xiàn)根據(jù)確定的對(duì)應(yīng)關(guān)系對(duì)路由信息進(jìn)行更新。由于在確定各個(gè)存儲(chǔ)服務(wù)器所對(duì)應(yīng)的虛擬節(jié)點(diǎn)的個(gè)數(shù)時(shí),考慮到了根據(jù)分布式存儲(chǔ)系統(tǒng)中能體現(xiàn)負(fù)載分布均衡狀況的參數(shù)之間的聯(lián)系(包括分布式存儲(chǔ)系統(tǒng)包含的存儲(chǔ)服務(wù)器個(gè)數(shù)與虛擬節(jié)點(diǎn)個(gè)數(shù)等參數(shù)之間的聯(lián)系)來(lái)確定該個(gè)數(shù),因此還能夠保證后續(xù)依據(jù)通過(guò)本申請(qǐng)實(shí)施例提供的該方案更新后的路由信息進(jìn)行數(shù)據(jù)遷移后,存儲(chǔ)服務(wù)器的負(fù)載分布比較平衡。


圖1為存儲(chǔ)服務(wù)器所對(duì)應(yīng)的虛擬節(jié)點(diǎn)個(gè)數(shù)與背離指標(biāo)的對(duì)應(yīng)關(guān)系示意圖;圖2a為包含分布式KV存儲(chǔ)系統(tǒng)包含的兩個(gè)存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系示意圖;圖2b為分布式KV存儲(chǔ)系統(tǒng)包含的三個(gè)存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系示意圖2c為包含分布式KV存儲(chǔ)系統(tǒng)包含的四個(gè)存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系示意圖;圖3為本申請(qǐng)實(shí)施例提供的一種路由更新方法的具體流程示意圖;圖4為本申請(qǐng)實(shí)施例提供的另ー種路由更新方法的具體流程示意圖;圖5為本申請(qǐng)實(shí)施例提供的一種路由更新裝置的具體結(jié)構(gòu)示意圖;圖6為本申請(qǐng)實(shí)施例提供的另ー種路由更新裝置的具體結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了在分布式KV存儲(chǔ)系統(tǒng)的存儲(chǔ)容量増加后,既要保證根據(jù)路由信息進(jìn)行數(shù)據(jù)遷移后的負(fù)載分布情況比較均衡,又不能増大分布式KV存儲(chǔ)系統(tǒng)的負(fù)擔(dān),發(fā)明人在對(duì)現(xiàn)有技術(shù)提供的路由算法進(jìn)行了研究與分析的基礎(chǔ)上,進(jìn)ー步做了下述研究如圖2a所示,假設(shè)分布式KV存儲(chǔ)系統(tǒng)中包含存儲(chǔ)服務(wù)器PN1和PN2,而PN1和PN2分別對(duì)應(yīng)6個(gè)虛擬節(jié)點(diǎn)。其中,PN1對(duì)應(yīng)于虛擬節(jié)點(diǎn)vr^、vn3> vn5、vn7、vn9、Vn11 ;PN2對(duì)應(yīng)于虛擬節(jié)點(diǎn)vn2、vn4、vn6、vn8、vn1(l、vn12。存儲(chǔ)有key的客戶(hù)端路由到PN1和PN2的路由如圖2a中帶箭頭的線(xiàn)條所示。當(dāng)分布式KV存儲(chǔ)系統(tǒng)中新增了存儲(chǔ)服務(wù)器PN3,則在不改變虛擬節(jié)點(diǎn)個(gè)數(shù)的情況下,需要從PN1. PN2所分別對(duì)應(yīng)的6個(gè)虛擬節(jié)點(diǎn)中各選取2個(gè)虛擬節(jié)點(diǎn),并建立選取的共4個(gè)虛擬節(jié)點(diǎn)與新增加的PN3的對(duì)應(yīng)關(guān)系,同時(shí)取消PNpPN2與選取的該些虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系。在完成上述操作后,PN1.PN2、PN3與虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系如圖2b所示。由圖2a所示的存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系變換為如圖2b所示的該對(duì)應(yīng)關(guān)系的過(guò)程中,PN1和PN2中相當(dāng)于是各有三分之一的數(shù)據(jù)需要遷移到PN3,并且顯然遷移后的數(shù)據(jù)分布是均衡的,且在滿(mǎn)足數(shù)據(jù)分布均衡性要求 的前提下,按照如圖2b所示的映射關(guān)系所遷移的數(shù)據(jù)量是也最小的。當(dāng)分布式KV存儲(chǔ)系統(tǒng)中的存儲(chǔ)服務(wù)器個(gè)數(shù)由圖2b中的三個(gè)變成四個(gè)時(shí)(新增PN4),需要從PN1. PN2, PN3所分別對(duì)應(yīng)的4虛擬節(jié)點(diǎn)中各選ー個(gè)虛擬節(jié)點(diǎn)調(diào)整為與PN4相對(duì)應(yīng),并取消PR、PN2、PN3與選取的虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系。虛擬節(jié)點(diǎn)和PN1 PN4之間的對(duì)應(yīng)關(guān)系示意圖如圖2c所示。由圖2b所示的存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系變換為如圖2c所示的該對(duì)應(yīng)關(guān)系的過(guò)程中,圖2b中的PN1.PN2、PN3相當(dāng)于是各有四分之一的數(shù)據(jù)遷移到PN4,顯然遷移后的數(shù)據(jù)分布是均衡的,且在滿(mǎn)足數(shù)據(jù)分布均衡性要求的前提下,按照如圖2c所示的映射關(guān)系所遷移的數(shù)據(jù)量是也最小的。發(fā)明人根據(jù)上述分析歸納一般情況,得出假設(shè)存儲(chǔ)服務(wù)器由M個(gè)調(diào)整成M+X個(gè),且擴(kuò)容前的分布式KV存儲(chǔ)系統(tǒng)包含N個(gè)虛擬節(jié)點(diǎn),則在擴(kuò)容后的分布式KV存儲(chǔ)系統(tǒng)中,需要從每個(gè)存儲(chǔ)服務(wù)器所對(duì)應(yīng)的虛擬節(jié)點(diǎn)中分別選取出“ (X*NV(M+X) ”個(gè)虛擬節(jié)點(diǎn)與新増加的X個(gè)存儲(chǔ)服務(wù)器建立起對(duì)應(yīng)關(guān)系,并取消選取出的虛擬節(jié)點(diǎn)與擴(kuò)容前的分布式KV存儲(chǔ)系統(tǒng)包含的存儲(chǔ)服務(wù)器的對(duì)應(yīng)關(guān)系??梢?jiàn),新増加的存儲(chǔ)服務(wù)器所對(duì)應(yīng)的虛擬節(jié)點(diǎn)的個(gè)數(shù)與分布式KV存儲(chǔ)系統(tǒng)包含的虛擬節(jié)點(diǎn)總個(gè)數(shù)N和存儲(chǔ)服務(wù)器總個(gè)數(shù)M+X有夫。根據(jù)上述研究,本申請(qǐng)實(shí)施例提出了一種路由信息更新方案,基于該方案確定的路由信息,能夠在引起的數(shù)據(jù)遷移盡可能的少的前提下,保證存儲(chǔ)服務(wù)器的負(fù)載分布的均衡性。
以下結(jié)合附圖,對(duì)本申請(qǐng)實(shí)施例提供的該方案進(jìn)行詳細(xì)說(shuō)明。首先,本申請(qǐng)實(shí)施例提供一種路由信息更新方法,該方法的具體流程示意圖如圖3所示,包括以下步驟 步驟31,在分布式存儲(chǔ)系統(tǒng)中增加存儲(chǔ)服務(wù)器后,確定分布式存儲(chǔ)系統(tǒng)包含的存儲(chǔ)服務(wù)器的第一個(gè)數(shù)、包含的虛擬節(jié)點(diǎn)的第二個(gè)數(shù);步驟32,根據(jù)按照増加了存儲(chǔ)服務(wù)器后的分布式存儲(chǔ)系統(tǒng)包含的所有存儲(chǔ)服務(wù)器的排列位置,而為存儲(chǔ)服務(wù)器分配的第一排列序號(hào)的順序(一般為由小至大的順序),依次針對(duì)每個(gè)存儲(chǔ)服務(wù)器,執(zhí)行根據(jù)第一個(gè)數(shù)、第二個(gè)數(shù)、為該存儲(chǔ)服務(wù)器分配的所述第一排列序號(hào)、在分布式存儲(chǔ)系統(tǒng)中增加存儲(chǔ)服務(wù)器后已分配給存儲(chǔ)服務(wù)器的虛擬節(jié)點(diǎn)的總個(gè)數(shù),確定分配給該存儲(chǔ)服務(wù)器的虛擬節(jié)點(diǎn)的第三個(gè)數(shù);以ー個(gè)具體的實(shí)施例為例,假設(shè)分布式KV存儲(chǔ)系統(tǒng)中包含12個(gè)虛擬節(jié)點(diǎn)Ii1 n12,3個(gè)存儲(chǔ)服務(wù)器PN1.PN2、PN3,其中,PN3為分布式KV存儲(chǔ)系統(tǒng)中新增的存儲(chǔ)服務(wù)器。那么,可以確定出第一個(gè)數(shù)為3、第二個(gè)數(shù)則為12。按照上述步驟32的描述,針對(duì)存儲(chǔ)服務(wù)器PN3而言,若需要確定分配給該存儲(chǔ)器的虛擬節(jié)點(diǎn)的第三個(gè)數(shù),則還需要進(jìn)ー步確定按照存儲(chǔ)服務(wù)器PN3在該分布式KV存儲(chǔ)系統(tǒng)所包含的3個(gè)存儲(chǔ)服務(wù)器PNp PN2, PN3中的排列位置而為其分配的第一排列序號(hào)。在本實(shí)施例中,若假設(shè)存儲(chǔ)服務(wù)器PNp PN2> PN3被分配的第一排列序號(hào)分別為1、2、3,則可以確定存儲(chǔ)服務(wù)器PN1的第一排列序號(hào)為I。由于存儲(chǔ)服務(wù)器PN1的排列序號(hào)最小,因此,可以按照排列序號(hào)由小至大的順序,在為存儲(chǔ)服務(wù)器PN1分配虛擬節(jié)點(diǎn)之前,分布式KV存儲(chǔ)系統(tǒng)中包含的虛擬節(jié)點(diǎn)還沒(méi)有被分配給任一存儲(chǔ)服務(wù)器,即步驟32中所述的“在分布式存儲(chǔ)系統(tǒng)中增加存儲(chǔ)服務(wù)器后已分配給存儲(chǔ)服務(wù)器的虛擬節(jié)點(diǎn)的總個(gè)數(shù)”當(dāng)前為O。具體地,確定分配給存儲(chǔ)服務(wù)器PN1的虛擬節(jié)點(diǎn)的第三個(gè)數(shù)的公式如下式[I]
權(quán)利要求
1.一種路由信息更新方法,其特征在于,包括 在分布式存儲(chǔ)系統(tǒng)中增加存儲(chǔ)服務(wù)器后,確定所述分布式存儲(chǔ)系統(tǒng)包含的存儲(chǔ)服務(wù)器的第一個(gè)數(shù)、包含的虛擬節(jié)點(diǎn)的第二個(gè)數(shù); 根據(jù)按照增加了存儲(chǔ)服務(wù)器后的分布式存儲(chǔ)系統(tǒng)包含的所有存儲(chǔ)服務(wù)器的排列位置,而為存儲(chǔ)服務(wù)器分配的第一排列序號(hào)的順序,依次針對(duì)每個(gè)存儲(chǔ)服務(wù)器,執(zhí)行根據(jù)所述第一個(gè)數(shù)、第二個(gè)數(shù)、為該存儲(chǔ)服務(wù)器分配的所述第一排列序號(hào)、在分布式存儲(chǔ)系統(tǒng)中增加存儲(chǔ)服務(wù)器后已分配給存儲(chǔ)服務(wù)器的虛擬節(jié)點(diǎn)的總個(gè)數(shù),確定分配給該存儲(chǔ)服務(wù)器的虛擬節(jié)點(diǎn)的第三個(gè)數(shù); 根據(jù)所述第三個(gè)數(shù)和預(yù)定的存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)對(duì)應(yīng)關(guān)系確定規(guī)則,分別確定各個(gè)存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系;以及 根據(jù)確定的所述對(duì)應(yīng)關(guān)系,更新用于指示虛擬節(jié)點(diǎn)與存儲(chǔ)服務(wù)器之間的路由的路由信肩、O
2.如權(quán)利要求1所述的方法,其特征在于,根據(jù)所述第三個(gè)數(shù)和所述確定規(guī)則分別確定各個(gè)存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系,具體包括 根據(jù)所述第三個(gè)數(shù)確定存儲(chǔ)服務(wù)器,其中,確定的存儲(chǔ)服務(wù)器滿(mǎn)足其在所述分布式存儲(chǔ)系統(tǒng)增加存儲(chǔ)服務(wù)器前所對(duì)應(yīng)的虛擬節(jié)點(diǎn)的第四個(gè)數(shù)大于其在所述分布式存儲(chǔ)系統(tǒng)增加存儲(chǔ)服務(wù)器后所對(duì)應(yīng)的虛擬節(jié)點(diǎn)的第三個(gè)數(shù); 分別確定對(duì)應(yīng)于確定出的各個(gè)存儲(chǔ)服務(wù)器的第四個(gè)數(shù)和第三個(gè)數(shù)的個(gè)數(shù)差,并根據(jù)預(yù)定的虛擬節(jié)點(diǎn)選取規(guī)則,從確定的存儲(chǔ)服務(wù)器在所述分布式存儲(chǔ)系統(tǒng)增加存儲(chǔ)服務(wù)器前分別對(duì)應(yīng)的虛擬節(jié)點(diǎn)中,分別選取個(gè)數(shù)與相應(yīng)的所述個(gè)數(shù)差一致的虛擬節(jié)點(diǎn),其中,所述選取規(guī)則為按照虛擬節(jié)點(diǎn)的序號(hào)由大至小或由小至大的順序依次選取虛擬節(jié)點(diǎn); 確定選取的虛擬節(jié)點(diǎn)與增加的存儲(chǔ)服務(wù)器的對(duì)應(yīng)關(guān)系,并取消選取的虛擬節(jié)點(diǎn)與增加存儲(chǔ)服務(wù)器前的所述分布式存儲(chǔ)系統(tǒng)包含的存儲(chǔ)服務(wù)器的對(duì)應(yīng)關(guān)系。
3.如權(quán)利要求1所述的方法,其特征在于,根據(jù)所述第三個(gè)數(shù)和所述確定規(guī)則分別確定各個(gè)存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系,具體包括 根據(jù)第二個(gè)數(shù)、所述第一排列序號(hào)、不大于第三個(gè)數(shù)的第二排列序號(hào),第三個(gè)數(shù)第三個(gè)數(shù)分別確定各個(gè)存儲(chǔ)服務(wù)器所對(duì)應(yīng)的虛擬節(jié)點(diǎn)的第三排列序號(hào); 從按照在分布式存儲(chǔ)系統(tǒng)包含的所有虛擬節(jié)點(diǎn)中的排列位置而被分配了排列序號(hào)的虛擬節(jié)點(diǎn)中,確定具備的排列序號(hào)與所述第三排列序號(hào)匹配一致的虛擬節(jié)點(diǎn),并分別確定各個(gè)存儲(chǔ)服務(wù)器與確定的虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系。
4.如權(quán)利要求1所述的方法,其特征在于,執(zhí)行更新路由信息的操作后,還包括 將與增加的存儲(chǔ)服務(wù)器對(duì)應(yīng)的虛擬節(jié)點(diǎn)相綁定的數(shù)據(jù)遷移到增加的存儲(chǔ)服務(wù)器中。
5.如權(quán)利要求1所述的方法,其特征在于,更新所述路由信息,具體包括 針對(duì)增加存儲(chǔ)服務(wù)器前的分布式存儲(chǔ)系統(tǒng)存儲(chǔ)的路由信息,執(zhí)行刪除與增加的存儲(chǔ)服務(wù)器對(duì)應(yīng)的虛擬節(jié)點(diǎn)相關(guān)的路由信息;以及 添加用于指示增加的存儲(chǔ)服務(wù)器對(duì)應(yīng)的虛擬節(jié)點(diǎn)與增加的存儲(chǔ)服務(wù)器之間的路由的路由信息。
6.如權(quán)利要求1所述的方法,其特征在于,所述第三個(gè)數(shù)通過(guò)以下公式確定
7.—種路由信息更新方法,其特征在于,包括 在分布式存儲(chǔ)系統(tǒng)中增加存儲(chǔ)服務(wù)器后,確定所述分布式存儲(chǔ)系統(tǒng)包含的存儲(chǔ)服務(wù)器的第一個(gè)數(shù),其中,第一個(gè)數(shù)滿(mǎn)足其為所述分布式存儲(chǔ)系統(tǒng)中各存儲(chǔ)服務(wù)器分別對(duì)應(yīng)的虛擬節(jié)點(diǎn)的個(gè)數(shù)的公約數(shù);并 按照選取具備能被所述第一個(gè)數(shù)整除的排列序號(hào)的虛擬節(jié)點(diǎn)的選取規(guī)則,從除增加的存儲(chǔ)服務(wù)器外的每個(gè)存儲(chǔ)服務(wù)器所對(duì)應(yīng)的虛擬節(jié)點(diǎn)中,選取虛擬節(jié)點(diǎn),其中,所述排列序號(hào)是根據(jù)虛擬節(jié)點(diǎn)在對(duì)應(yīng)于同一存儲(chǔ)服務(wù)器的所有虛擬節(jié)點(diǎn)中的排列位置分配的; 刪除用于指示選取的虛擬節(jié)點(diǎn)與相應(yīng)的存儲(chǔ)服務(wù)器之間的路由的路由信息,并確定用于指示選取的虛擬節(jié)點(diǎn)與增加的存儲(chǔ)服務(wù)器之間的路由的路由信息。
8.—種路由信息更新裝置,其特征在于,包括 第一確定單元,用于在分布式存儲(chǔ)系統(tǒng)中增加存儲(chǔ)服務(wù)器后,確定所述分布式存儲(chǔ)系統(tǒng)包含的存儲(chǔ)服務(wù)器的第一個(gè)數(shù)、包含的虛擬節(jié)點(diǎn)的第二個(gè)數(shù); 第二確定單元,用于按照增加了存儲(chǔ)服務(wù)器后的分布式存儲(chǔ)系統(tǒng)包含的所有存儲(chǔ)服務(wù)器的排列位置,而為存儲(chǔ)服務(wù)器分配的第一排列序號(hào)的順序,依次針對(duì)每個(gè)存儲(chǔ)服務(wù)器,執(zhí)行根據(jù)第一確定單元確定的第一個(gè)數(shù)、第二個(gè)數(shù)、為該存儲(chǔ)服務(wù)器分配的所述第一排列序號(hào)、在分布式存儲(chǔ)系統(tǒng)中增加存儲(chǔ)服務(wù)器后已分配給存儲(chǔ)服務(wù)器的虛擬節(jié)點(diǎn)的總個(gè)數(shù),確定分配給該存儲(chǔ)服務(wù)器的虛擬節(jié)點(diǎn)的第三個(gè)數(shù); 對(duì)應(yīng)關(guān)系確定單元,用于根據(jù)第二確定單元確定的第三個(gè)數(shù)和預(yù)定的存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)對(duì)應(yīng)關(guān)系確定規(guī)則,分別確定各個(gè)存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系; 路由信息更新單元,用于根據(jù)對(duì)應(yīng)關(guān)系確定單元確定的對(duì)應(yīng)關(guān)系,更新用于指示虛擬節(jié)點(diǎn)與存儲(chǔ)服務(wù)器之間的路由的路由信息。
9.如權(quán)利要求8所述的裝置,其特征在于,所述對(duì)應(yīng)關(guān)系確定單元具體包括 存儲(chǔ)服務(wù)器確定模塊,用于根據(jù)所述第三個(gè)數(shù)確定存儲(chǔ)服務(wù)器,其中,確定的存儲(chǔ)服務(wù)器滿(mǎn)足其在所述分布式存儲(chǔ)系統(tǒng)增加存儲(chǔ)服務(wù)器前所對(duì)應(yīng)的虛擬節(jié)點(diǎn)的第四個(gè)數(shù)大于其在所述分布式存儲(chǔ)系統(tǒng)增加存儲(chǔ)服務(wù)器后所對(duì)應(yīng)的虛擬節(jié)點(diǎn)的第三個(gè)數(shù); 選取模塊,用于分別確定對(duì)應(yīng)于存儲(chǔ)服務(wù)器確定模塊確定出的各個(gè)存儲(chǔ)服務(wù)器的第四個(gè)數(shù)和第三個(gè)數(shù)的個(gè)數(shù)差,并根據(jù)預(yù)定的虛擬節(jié)點(diǎn)選取規(guī)則,從確定的存儲(chǔ)服務(wù)器在所述分布式存儲(chǔ)系統(tǒng)增加存儲(chǔ)服務(wù)器前分別對(duì)應(yīng)的虛擬節(jié)點(diǎn)中,分別選取個(gè)數(shù)與相應(yīng)的所述個(gè)數(shù)差一致的虛擬節(jié)點(diǎn),其中,所述選取規(guī)則為按照虛擬節(jié)點(diǎn)的序號(hào)由大至小或由小至大的順序依次選取虛擬節(jié)點(diǎn);對(duì)應(yīng)關(guān)系處理模塊,用于確定選取模塊選取的虛擬節(jié)點(diǎn)與增加的存儲(chǔ)服務(wù)器的對(duì)應(yīng)關(guān)系,并取消選取模塊選取的虛擬節(jié)點(diǎn)與增加存儲(chǔ)服務(wù)器前的所述分布式存儲(chǔ)系統(tǒng)包含的存儲(chǔ)服務(wù)器的對(duì)應(yīng)關(guān)系。
10.如權(quán)利要求8所述的裝置,其特征在于,所述對(duì)應(yīng)關(guān)系確定單元具體包括 排列序號(hào)確定模塊,用于根據(jù)第二個(gè)數(shù)、所述第一排列序號(hào)、第三個(gè)數(shù)不大于第三個(gè)數(shù)的第二排列序號(hào),分別確定各個(gè)存儲(chǔ)服務(wù)器所對(duì)應(yīng)的虛擬節(jié)點(diǎn)的第三排列序號(hào); 對(duì)應(yīng)關(guān)系確定模塊,用于從按照在分布式存儲(chǔ)系統(tǒng)包含的所有虛擬節(jié)點(diǎn)中的排列位置而被分配了排列序號(hào)的虛擬節(jié)點(diǎn)中,確定具備的排列序號(hào)與排列序號(hào)確定模塊確定的第三排列序號(hào)匹配一致的虛擬節(jié)點(diǎn),并分別確定各個(gè)存儲(chǔ)服務(wù)器與確定的虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系O
11.如權(quán)利要求8所述的裝置,其特征在于,還包括 數(shù)據(jù)遷移單元,用于在路由信息更新單元更新所述路由信息后,將與增加的存儲(chǔ)服務(wù)器對(duì)應(yīng)的虛擬節(jié)點(diǎn)相綁定的數(shù)據(jù)遷移到增加的存儲(chǔ)服務(wù)器中。
12.如權(quán)利要求8所述的裝置,其特征在于,所述路由信息更新單元具體包括 路由信息刪除模塊,用于針對(duì)增加存儲(chǔ)服務(wù)器前的分布式存儲(chǔ)系統(tǒng)存儲(chǔ)的路由信息,執(zhí)行刪除與增加的存儲(chǔ)服務(wù)器對(duì)應(yīng)的虛擬節(jié)點(diǎn)相關(guān)的路由信息; 路由信息添加模塊,用于添加用于指示增加的存儲(chǔ)服務(wù)器對(duì)應(yīng)的虛擬節(jié)點(diǎn)與增加的存儲(chǔ)服務(wù)器之間的路由的路由信息。
13.—種路由信息更新裝置,其特征在于,包括 第一個(gè)數(shù)確定單元,用于在分布式存儲(chǔ)系統(tǒng)中增加存儲(chǔ)服務(wù)器后,確定所述分布式存儲(chǔ)系統(tǒng)包含的存儲(chǔ)服務(wù)器的第一個(gè)數(shù),其中,第一個(gè)數(shù)滿(mǎn)足其為所述分布式存儲(chǔ)系統(tǒng)中各存儲(chǔ)服務(wù)器分別對(duì)應(yīng)的虛擬節(jié)點(diǎn)的個(gè)數(shù)的公約數(shù); 選取單元,用于按照選取具備能被第一個(gè)數(shù)確定單元確定的第一個(gè)數(shù)整除的排列序號(hào)的虛擬節(jié)點(diǎn)的選取規(guī)則,從除增加的存儲(chǔ)服務(wù)器外的每個(gè)存儲(chǔ)服務(wù)器所對(duì)應(yīng)的虛擬節(jié)點(diǎn)中,選取虛擬節(jié)點(diǎn),其中,所述排列序號(hào)是根據(jù)虛擬節(jié)點(diǎn)在對(duì)應(yīng)于同一存儲(chǔ)服務(wù)器的所有虛擬節(jié)點(diǎn)中的排列位置分配的; 路由信息處理單元,用于刪除用于指示選取單元選取的虛擬節(jié)點(diǎn)與相應(yīng)的存儲(chǔ)服務(wù)器之間的路由的路由信息,并確定用于指示選取單元選取的虛擬節(jié)點(diǎn)與增加的存儲(chǔ)服務(wù)器之間的路由的路由信息。
全文摘要
本發(fā)明公開(kāi)了一種路由信息更新方法及裝置,以解決若保證負(fù)載分布均衡,則需要在分布式KV存儲(chǔ)系統(tǒng)中增加較多的虛擬節(jié)點(diǎn)從而增大負(fù)擔(dān)的問(wèn)題。方法包括增加存儲(chǔ)服務(wù)器后,確定存儲(chǔ)服務(wù)器的第一個(gè)數(shù)、包含的虛擬節(jié)點(diǎn)的第二個(gè)數(shù);針對(duì)每個(gè)存儲(chǔ)服務(wù)器,執(zhí)行根據(jù)第一個(gè)數(shù)、第二個(gè)數(shù)、按照該存儲(chǔ)服務(wù)器在的第一排列序號(hào)、在分布式存儲(chǔ)系統(tǒng)中增加存儲(chǔ)服務(wù)器后已分配給存儲(chǔ)服務(wù)器的虛擬節(jié)點(diǎn)的總個(gè)數(shù),確定分配給該存儲(chǔ)服務(wù)器的虛擬節(jié)點(diǎn)的第三個(gè)數(shù);根據(jù)第三個(gè)數(shù)和對(duì)應(yīng)關(guān)系確定規(guī)則,分別確定各個(gè)存儲(chǔ)服務(wù)器與虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系;以及根據(jù)確定的對(duì)應(yīng)關(guān)系更新路由信息。
文檔編號(hào)H04L12/803GK103036796SQ20111029409
公開(kāi)日2013年4月10日 申請(qǐng)日期2011年9月29日 優(yōu)先權(quán)日2011年9月29日
發(fā)明者李智慧, 周英, 余俊, 何坤, 周異 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1