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

一種數(shù)據(jù)重分布的方法及裝置與流程

文檔序號:11386536閱讀:153來源:國知局
一種數(shù)據(jù)重分布的方法及裝置與流程
本申請涉及數(shù)據(jù)存儲
技術(shù)領(lǐng)域
,特別涉及一種數(shù)據(jù)重分布的方法及裝置。
背景技術(shù)
:隨著大數(shù)據(jù)時代的到來,對于海量數(shù)據(jù)的存儲處理越來越重要。目前,主要采用數(shù)據(jù)庫集群來存儲海量數(shù)據(jù)。所謂數(shù)據(jù)庫集群,就是利用多臺數(shù)據(jù)庫服務(wù)器構(gòu)成一個虛擬單一數(shù)據(jù)庫邏輯映像,像單數(shù)據(jù)庫服務(wù)器系統(tǒng)一樣向客戶端提供透明的數(shù)據(jù)服務(wù)。數(shù)據(jù)庫集群中的一臺數(shù)據(jù)庫服務(wù)器可以稱為一個存儲節(jié)點,數(shù)據(jù)庫集群中有多個存儲節(jié)點和一個數(shù)據(jù)管理節(jié)點,數(shù)據(jù)管理節(jié)點也可以和存儲節(jié)點合設(shè),通常按照一定的算法將數(shù)據(jù)塊分散存儲在各個存儲節(jié)點上,常用的算法有哈希算法、輪轉(zhuǎn)算法和隨機算法等,在數(shù)據(jù)管理節(jié)點中存儲所有存儲節(jié)點中所有數(shù)據(jù)塊的數(shù)據(jù)塊標識及其對應(yīng)的地址。為應(yīng)對業(yè)務(wù)彈性擴展的需求,數(shù)據(jù)庫集群需要隨時擴容。擴容時需要對原有的存儲數(shù)據(jù)進行重分布,以充分利用新增的存儲節(jié)點。數(shù)據(jù)重分布的過程需要按照最新的存儲節(jié)點數(shù)量,采用一定的算法重新計算,部分數(shù)據(jù)會被遷移到新增的存儲節(jié)點上。目前的擴容技術(shù)大多是停機擴容,也就是在擴容時中斷數(shù)據(jù)庫集群的服務(wù),使得業(yè)務(wù)中斷。然而數(shù)據(jù)重分布的過程,大量數(shù)據(jù)的遷移需要花費很長時間,這樣,造成了業(yè)務(wù)中斷的時間較長。技術(shù)實現(xiàn)要素:本申請實施例提供一種數(shù)據(jù)重分布的方法及裝置,用以縮短數(shù)據(jù)重分布過 程中業(yè)務(wù)中斷的時間。本申請實施例提供的具體技術(shù)方案如下:第一方面,提供一種數(shù)據(jù)重分布的方法,包括:在確定需要進行數(shù)據(jù)重分布時,將待遷移數(shù)據(jù)的當前存儲節(jié)點和所述待遷移數(shù)據(jù)的目標存儲節(jié)點的狀態(tài)均由可對外提供服務(wù)設(shè)置為不可對外提供服務(wù);在所述當前存儲節(jié)點為不可對外提供服務(wù)的狀態(tài)下,基于在所述當前存儲節(jié)點對外提供服務(wù)期間時所記錄的所述待遷移數(shù)據(jù)的使用熱度,將所述待遷移數(shù)據(jù)中使用熱度大于預(yù)設(shè)閾值的第一組數(shù)據(jù)遷移到所述目標存儲節(jié)點;所述使用熱度用于表征所述待遷移數(shù)據(jù)被使用的次數(shù);將所述當前存儲節(jié)點和所述目標存儲節(jié)點的狀態(tài)由所述不可對外提供服務(wù)切換回可對外提供服務(wù)。所述第一組數(shù)據(jù)可以稱為熱點數(shù)據(jù),所述預(yù)設(shè)閾值為根據(jù)經(jīng)驗值設(shè)置的區(qū)分所述待遷移數(shù)據(jù)中熱點數(shù)據(jù)和非熱點數(shù)據(jù)的臨界值。這樣通過在存儲節(jié)點停止服務(wù)時先遷移熱點數(shù)據(jù),一旦遷移完熱點數(shù)據(jù)就將存儲節(jié)點恢復(fù)服務(wù),大大縮小了因數(shù)據(jù)重分布而影響業(yè)務(wù)中斷的時間,有效提升了數(shù)據(jù)庫集群的系統(tǒng)性能。結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,在進行所述數(shù)據(jù)重分布之前,還包括:在所述當前存儲節(jié)點對外提供服務(wù)期間時,對所述當前存儲節(jié)點的數(shù)據(jù)存儲模型下的每一個單位分別記錄一個使用熱度;其中,在任意一個單位建立時,針對所述任意一個單位記錄一個初始的使用熱度,每當所述任意一個單位被使用一次時,更新所述任意一個單位對應(yīng)的使用熱度。結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,所述數(shù)據(jù)存儲模型包括數(shù)據(jù)表、數(shù)據(jù)頁、數(shù)據(jù)記錄中的任意一種;所述一個單位為一張數(shù)據(jù)表、一張數(shù)據(jù)頁或一條數(shù)據(jù)記錄。結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,還包括:在所述當前存儲節(jié)點對外提供服務(wù)期間時,針對所述當前存儲節(jié)點的數(shù)據(jù)存儲模型下的所有單位的使用熱度設(shè)置n個等級,n≥2,n為 正整數(shù);將所述當前存儲節(jié)點最后一次更新使用熱度后所有所述單位的使用熱度中的最高值,設(shè)置為所述n個等級中的最高等級的值;基于所述最高等級的值,按遞減規(guī)則設(shè)置所述n個等級中除所述最高等級之外的(n-1)個等級的值;其中,每更新一個單位對應(yīng)的使用熱度,將更新的使用熱度與所述最高等級的值相比較,在所述更新的使用熱度大于所述最高等級的值時,將所述最高等級的值更新為所述更新的使用熱度。較佳的,進一步按照更新后的最高等級的值,將所述(n-1)個等級的值依次進行更新;或者,進一步判斷本次更新后的最高等級的值與本次更新前的最高等級的值之間的差值是否大于設(shè)置的差值閾值,在判定本次更新后的最高等級的值與本次更新前的最高等級的值之間的差值大于設(shè)置的差值閾值時,將所述(n-1)個等級的值依次進行更新。結(jié)合第一方面的第三種可能的實現(xiàn)方式,在第一方面的第四種可能的實現(xiàn)方式中,所述預(yù)設(shè)閾值為所述n個等級中第n個等級的值,1≤n≤n,n為正整數(shù);所述將所述待遷移數(shù)據(jù)中使用熱度大于預(yù)設(shè)閾值的第一組數(shù)據(jù)遷移到所述目標存儲節(jié)點,具體包括:遍歷在所述數(shù)據(jù)存儲模型下存儲待遷移數(shù)據(jù)的每一個單位;其中,每選定一個單位,將當前選定的單位的使用熱度與所述第n個等級的值進行比較;若所述當前選定的單位的使用熱度大于所述第n個等級的值,則將所述當前選定的單位遷移到所述目標存儲節(jié)點。如第一方面所述,所述預(yù)設(shè)閾值為根據(jù)經(jīng)驗值設(shè)置的區(qū)分所述待遷移數(shù)據(jù)中熱點數(shù)據(jù)和非熱點數(shù)據(jù)的臨界值,一般在數(shù)據(jù)庫應(yīng)用中,熱點數(shù)據(jù)大概占所有數(shù)據(jù)的20%左右,因此,應(yīng)用本申請中提供的方法,當選取的第n個等級的值可以實現(xiàn)使得上述第一組數(shù)據(jù)接近數(shù)據(jù)庫應(yīng)用中常規(guī)意義的熱點數(shù)據(jù)時,就可以實現(xiàn)遷移熱點數(shù)據(jù)占用的時間小于遷移所有數(shù)據(jù)占用的時間,從而節(jié)省了數(shù)據(jù)遷移所占用的時間。結(jié)合第一方面和第一方面的第一種至第四種可能實現(xiàn)的方式,在第一方面的第五種可能的實現(xiàn)方式中,將所述當前存儲節(jié)點和所述目標存儲節(jié)點的狀態(tài) 由不可對外服務(wù)切換為可對外提供服務(wù)之后,還包括:在所述當前存儲節(jié)點和所述目標存儲節(jié)點的后臺服務(wù)中,將所述待遷移數(shù)據(jù)中使用熱度不大于預(yù)設(shè)閾值的第二組數(shù)據(jù)遷移到所述目標存儲節(jié)點。所述第二組數(shù)據(jù)也可以稱為非熱點數(shù)據(jù),由于在存儲節(jié)點恢復(fù)使用后的一段時間內(nèi)接收到的數(shù)據(jù)訪問請求大多數(shù)為熱點數(shù)據(jù)的訪問請求,因此,將存儲節(jié)點設(shè)置為可對外提供服務(wù)之后,在后臺繼續(xù)遷移非熱點數(shù)據(jù),可以有效減小因遷移數(shù)據(jù)對數(shù)據(jù)庫的正常服務(wù)帶來的影響。結(jié)合第一方面的第五種可能的實現(xiàn)方式,在第一方面的第六種可能的實現(xiàn)方式中,還包括:在遷移所述第二組數(shù)據(jù)的過程中,在接收到數(shù)據(jù)訪問請求時,按照第一路由方式定位到所述目標存儲節(jié)點;所述第一路由方式為進行所述數(shù)據(jù)重分布之后的路由方式;若所述目標存儲節(jié)點中存在所述數(shù)據(jù)訪問請求涉及的訪問數(shù)據(jù),則對所述目標存儲節(jié)點中存儲的所述訪問數(shù)據(jù)進行操作;若所述目標存儲節(jié)點中不存在所述數(shù)據(jù)訪問請求涉及的所述訪問數(shù)據(jù),則,按照第二路由方式定位到所述當前存儲節(jié)點,對所述當前存儲節(jié)點中存儲的所述訪問數(shù)據(jù)進行操作;所述第二路由方式為進行所述數(shù)據(jù)重分布之后的路由方式。如上所述,由于在存儲節(jié)點恢復(fù)使用后的一段時間內(nèi)接收到的數(shù)據(jù)訪問請求大多數(shù)為熱點數(shù)據(jù)的訪問請求,因此,采用上述方法,可以減小在接收到訪問請求后訪問失敗的幾率。第二方面,提供一種數(shù)據(jù)重分布的裝置,該數(shù)據(jù)重分布的裝置具有實現(xiàn)上述第一方面和第一方面的第一種至第六種可能的實現(xiàn)方式中的任一種方法設(shè)計的功能。所述功能可以通過硬件實現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實現(xiàn)。所述硬件或軟件包括一個或多個與上述功能相對應(yīng)的模塊。第三方面,提供一種數(shù)據(jù)重分布的裝置,包括存儲器和處理器,其中,所述存儲器用于存儲一組程序,所述處理器用于調(diào)用所述存儲器存儲的程序以執(zhí)行如上述第一方面和第一方面的第一種至第六種可能的實現(xiàn)方式中的任一種所述的方法。第四方面,提供了一種計算機存儲介質(zhì),用于儲存為上述第二方面或第三方面所述的數(shù)據(jù)重分布裝置所用的計算機軟件指令,其包含用于執(zhí)行上述方面所設(shè)計的程序。本申請?zhí)峁┑姆桨福軌蚩s短在數(shù)據(jù)重分布過程中業(yè)務(wù)中斷的時間,提高數(shù)據(jù)庫服務(wù)器集群的系統(tǒng)性能。附圖說明圖1為本申請實施例中數(shù)據(jù)重分布的系統(tǒng)架構(gòu)圖;圖2為本申請實施例中數(shù)據(jù)重分布的方法流程圖;圖3a和圖3b為本申請實施例中一種應(yīng)用場景下數(shù)據(jù)重分布的示意圖;圖4為本申請實施例中數(shù)據(jù)重分布的裝置結(jié)構(gòu)圖之一;圖5為本申請實施例中數(shù)據(jù)重分布的裝置結(jié)構(gòu)圖之二。具體實施方式為了使本申請的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本申請作進一步地詳細描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├绢I(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本申請保護的范圍。本申請實施例任意存儲系統(tǒng),較佳的可以應(yīng)用于分布式存儲系統(tǒng),例如數(shù)據(jù)庫集群。參閱圖1所示,分布式存儲系統(tǒng)中有多個存儲節(jié)點和一個數(shù)據(jù)管理節(jié)點,數(shù)據(jù)管理節(jié)點也可以和存儲節(jié)點合設(shè),例如一個存儲節(jié)點可以是一個數(shù)據(jù)庫服務(wù)器。本申請實施例以應(yīng)用于數(shù)據(jù)庫集群為例進行介紹,以下敘述中,一個存儲節(jié)點在概念上可以等同于一個數(shù)據(jù)庫服務(wù)器。為了縮短在數(shù)據(jù)重分布過程中業(yè)務(wù)中斷的時間,提高數(shù)據(jù)庫服務(wù)器集群的系統(tǒng)性能,本申請實施例提供了一種數(shù)據(jù)重分布的方法,在存儲節(jié)點對外提供服務(wù)期間時,統(tǒng)計數(shù)據(jù)的使用熱度,在確定需要進行數(shù)據(jù)重分布時,暫停對外 提供服務(wù),也就是使業(yè)務(wù)暫時中斷,將數(shù)據(jù)庫服務(wù)器上的熱點數(shù)據(jù)先進行遷移,在熱點數(shù)據(jù)遷移完畢后,恢復(fù)數(shù)據(jù)庫服務(wù)器的對外服務(wù),在后臺繼續(xù)遷移非熱點數(shù)據(jù)。本申請中,用遷移部分數(shù)據(jù)替換遷移全部數(shù)據(jù),在一定程度上減少了遷移數(shù)據(jù)的時間,縮短了業(yè)務(wù)中斷的時間,又因為在數(shù)據(jù)重分布以后的一段時間內(nèi),熱點數(shù)據(jù)的訪問幾率遠遠大于非熱點數(shù)據(jù)的訪問幾率,因此,可以減小因遷移數(shù)據(jù)對數(shù)據(jù)庫的正常服務(wù)帶來的影響。以下將結(jié)合附圖對本申請優(yōu)選的實施例進行詳細介紹。參閱圖2所示,本申請實施例中,數(shù)據(jù)重分布的具體流程如下。執(zhí)行以下數(shù)據(jù)重分步方法的執(zhí)行主體可以是待遷移數(shù)據(jù)的當前存儲節(jié)點,也可以是數(shù)據(jù)重分布系統(tǒng)中的數(shù)據(jù)管理節(jié)點。在201部分,在確定需要進行數(shù)據(jù)重分布時,將待遷移數(shù)據(jù)的當前存儲節(jié)點和所述待遷移數(shù)據(jù)的目標存儲節(jié)點的狀態(tài)均由可對外提供服務(wù)設(shè)置為不可對外提供服務(wù),即設(shè)置為不可用。其中,所述當前存儲節(jié)點為所述待遷移數(shù)據(jù)所在的存儲節(jié)點。存儲節(jié)點有兩種工作狀態(tài),可對外提供服務(wù)和不可對外提供服務(wù),其中,可對外提供服務(wù)可以理解為存儲節(jié)點上的數(shù)據(jù)可讀且可寫,不可對外提供服務(wù)可以理解為不可讀且不可寫,或者只讀。數(shù)據(jù)庫集群在進行擴容時,會在原數(shù)據(jù)庫集群中添加新的存儲節(jié)點(即數(shù)據(jù)庫服務(wù)器),在原數(shù)據(jù)庫集群中的存儲節(jié)點上存儲的數(shù)據(jù)可能會有一部分被遷移到新的存儲節(jié)點上,以充分利用新的存儲節(jié)點的存儲能力,這種數(shù)據(jù)遷移的過程也就是數(shù)據(jù)重分布的過程。另外,數(shù)據(jù)庫集群在刪除存儲節(jié)點時,同樣也會涉及數(shù)據(jù)重分布的過程。確定需要進行數(shù)據(jù)重分布時,可以獲得受影響的存儲節(jié)點和受影響的數(shù)據(jù),需要先將受影響的存儲節(jié)點暫停對外提供服務(wù)(也就是設(shè)置為不可對外提供服務(wù)),以避免在數(shù)據(jù)遷移過程中出現(xiàn)數(shù)據(jù)訪問錯誤等問題。在202部分,在所述當前存儲節(jié)點為不可對外提供服務(wù)的狀態(tài)下,基于在 所述當前存儲節(jié)點可對外提供服務(wù)期間所記錄的所述待遷移數(shù)據(jù)的使用熱度,將所述待遷移數(shù)據(jù)中使用熱度大于預(yù)設(shè)閾值的第一組數(shù)據(jù)遷移到所述目標存儲節(jié)點。其中,所述使用熱度用于表征所述待遷移數(shù)據(jù)被使用的次數(shù),被使用的情況包括:增加數(shù)據(jù)、刪除數(shù)據(jù)、修改數(shù)據(jù)、查詢數(shù)據(jù)等。所述預(yù)設(shè)閾值為根據(jù)經(jīng)驗值設(shè)置的區(qū)分所述待遷移數(shù)據(jù)中熱點數(shù)據(jù)和非熱點數(shù)據(jù)的臨界值。一般來說,熱點數(shù)據(jù)占整個待遷移數(shù)據(jù)的20%左右,因此,所述預(yù)設(shè)閾值可根據(jù)經(jīng)驗值進行設(shè)定,并可在使用過程中不斷更新優(yōu)化。在203部分,在遷移完所述第一組數(shù)據(jù)后,將所述當前存儲節(jié)點和所述目標存儲節(jié)點的狀態(tài)由所述不可對外提供服務(wù)切換回可對外提供服務(wù)。并且,在后臺繼續(xù)將所述待遷移數(shù)據(jù)中使用熱度不大于預(yù)設(shè)閾值的第二組數(shù)據(jù)遷移到所述目標存儲節(jié)點。實際應(yīng)用中,為了方便對數(shù)據(jù)進行管理和操作,數(shù)據(jù)庫中的數(shù)據(jù)可以以多層邏輯上的數(shù)據(jù)存儲模型進行存儲,例如,數(shù)據(jù)存儲模型至少可以包括數(shù)據(jù)表、數(shù)據(jù)頁和數(shù)據(jù)記錄三個邏輯概念。一個存儲節(jié)點中存儲的數(shù)據(jù)可以分為多個數(shù)據(jù)表,每一張數(shù)據(jù)表中包含多個數(shù)據(jù)頁,每一張數(shù)據(jù)頁中包含多條數(shù)據(jù)記錄。數(shù)據(jù)存儲模型下的一個單位可以為一張數(shù)據(jù)表、一張數(shù)據(jù)頁或者一條數(shù)據(jù)記錄。下面將結(jié)合上述201部分~203部分,具體介紹本申請實施例中的數(shù)據(jù)重分布的實現(xiàn)方式。第一部分,在數(shù)據(jù)遷移之前,在上述當前存儲節(jié)點的對外提供服務(wù)期間時,記錄該存儲節(jié)點的數(shù)據(jù)的使用熱度,以及針對該存儲節(jié)點的數(shù)據(jù)的使用熱度設(shè)置等級。其一,記錄上述當前存儲節(jié)點的數(shù)據(jù)的使用熱度的具體方式如下所述。在上述當前存儲節(jié)點對外提供服務(wù)期間時,對該存儲節(jié)點的數(shù)據(jù)存儲模型下的每一個單位分別記錄一個使用熱度,其中,在任意一個單位建立時,針對 所述任意一個單位記錄一個初始的使用熱度,每當所述任意一個單位被使用一次時,將所述任意一個單位對應(yīng)的使用熱度進行更新。其中,本申請實施例中,數(shù)據(jù)庫集群中包含多個存儲節(jié)點,在任意一個存儲節(jié)點對外提供服務(wù)期間的過程中,對任意一個存儲節(jié)點數(shù)據(jù)存儲模型下的每一個單位分別記錄其對應(yīng)的數(shù)據(jù)的使用熱度情況。記錄方式與上述當前存儲節(jié)點中的記錄方式相同,本申請僅以上述當前存儲節(jié)點為例進行介紹。以數(shù)據(jù)存儲模型為數(shù)據(jù)表為例,上述當前存儲節(jié)點中包含m張數(shù)據(jù)表,假設(shè)用t1、t2、……、tm表示,在該存儲節(jié)點對外提供服務(wù)期間時,為每一張數(shù)據(jù)表對應(yīng)的記錄一個使用熱度。其中,在m張數(shù)據(jù)表中的任意一張數(shù)據(jù)表(例如t1)初始創(chuàng)建時,記錄使用熱度的初始值為0或者1;當每針對數(shù)據(jù)表t1執(zhí)行一次操作(例如增加、刪除、改動、查詢等操作),在現(xiàn)有的使用熱度的值的基礎(chǔ)上增加1。其中,使用熱度的記錄的實現(xiàn)過程,可以但不限于采用在每一個數(shù)據(jù)表的表頭增加一個使用熱度(即hits)字段,通過hits字段來實現(xiàn)熱度值的記錄。例如,在第一時刻針對上述當前存儲節(jié)點中數(shù)據(jù)表的使用熱度的記錄情況如表1所示,數(shù)據(jù)表t1的使用熱度為10000,數(shù)據(jù)表t2的使用熱度為9800,數(shù)據(jù)表t3的使用熱度為3400,……,數(shù)據(jù)表tm的使用熱度為1600。表1數(shù)據(jù)表使用熱度t110000t29800t33400…………tm1600數(shù)據(jù)存儲模型為數(shù)據(jù)頁或數(shù)據(jù)記錄的使用熱度的記錄原理與數(shù)據(jù)表相同, 重復(fù)之處不再贅述。本申請實施例中,可以選擇為每一種數(shù)據(jù)存儲模型下的單位維護對應(yīng)的數(shù)據(jù)使用熱度,當前,也可以選擇其中一個或多個。其二,針對上述當前存儲節(jié)點的數(shù)據(jù)的使用熱度設(shè)置等級的具體方式如下所述。在上述當前存儲節(jié)點對外提供服務(wù)期間時,針對該存儲節(jié)點的數(shù)據(jù)存儲模型下的所有單位的使用熱度設(shè)置n個等級,n≥2,n為正整數(shù);例如,n=10。將記錄的該存儲節(jié)點的數(shù)據(jù)存儲模型下的所有單位的使用熱度中的最高值,設(shè)置為所述n個等級中的最高等級的值;基于所述最高等級的值,按遞減規(guī)則設(shè)置所述n個等級中除所述最高等級之外的(n-1)個等級的值;其中,每更新一個單位對應(yīng)的使用熱度,將更新的使用熱度與所述最高等級的值相比較,在所述更新的使用熱度大于所述最高等級的值時,將所述最高等級的值更新為所述更新的使用熱度。較佳的,進一步按照更新后的最高等級的值,將所述(n-1)個等級的值依次進行更新;或者,進一步判斷本次更新后的最高等級的值與本次更新前的最高等級的值之間的差值是否大于設(shè)置的差值閾值,在判定本次更新后的最高等級的值與本次更新前的最高等級的值之間的差值大于設(shè)置的差值閾值時,將所述(n-1)個等級的值依次進行更新。例如,仍以數(shù)據(jù)存儲模型為數(shù)據(jù)表為例,在上述第一時刻,上述當前存儲節(jié)點中數(shù)據(jù)表的使用熱度的記錄情況如表1所示,由表1可知,數(shù)據(jù)表t1的使用熱度為上述當前存儲節(jié)點中所有數(shù)據(jù)表的使用熱度中的最高值,為10000,則如表2所示,將n=10個等級中的最高等級(例如l10)設(shè)置為10000,則按照遞減規(guī)則依次設(shè)置等級lh的值,使得l10~l1的值呈現(xiàn)規(guī)律的遞減模式,或者呈現(xiàn)其他有規(guī)律的模式,其中h為1-9,h為正整數(shù)。lh的值的設(shè)置方式可以采用但不限于lh=h*n/10+n%10,其中,%為取余運算。例如,采取這種設(shè)置方式,則l9=9*10000/10+10000%10=9000;依次地, l8=8000;l7=7000;……;l1=1000。表2l1l2l3l4l5l6l7l8l9l1010002000300040005000600070008000900010000假設(shè)在第二時刻,數(shù)據(jù)表t1的使用熱度更新為10001,則如表3所示,將10001與最高等級的值10000進行比較,顯然,將最高等級l10的值更新為10001,依次將l9~l1的值更新為9001、8001、……、1001。表3l1l2l3l4l5l6l7l8l9l1010012001300140015001600170018001900110001第二部分、確定需要遷移數(shù)據(jù)時,將當前存儲節(jié)點和目標存儲節(jié)點的狀態(tài)由可對外提供服務(wù)切換回不可對外提供服務(wù)后,將當前存儲節(jié)點上的待遷移數(shù)據(jù)中使用熱度大于預(yù)設(shè)閾值的第一組數(shù)據(jù)遷移到目標存儲節(jié)點,然后恢復(fù)當前存儲節(jié)點和目標存儲節(jié)點的正常使用,并后臺繼續(xù)遷移當前存儲節(jié)點上的待遷移數(shù)據(jù)中除第一組數(shù)據(jù)之外的第二組數(shù)據(jù)。其中,當前存儲節(jié)點和目標存儲節(jié)點為數(shù)據(jù)重分布受影響的存儲節(jié)點,當然,受影響的存儲節(jié)點可以是一個,也可以是多個,本申請實施例以在數(shù)據(jù)重分布時,受影響的存儲節(jié)點為一個當前存儲節(jié)點和一個目標存儲節(jié)點為例介紹的,當然多個受影響存儲節(jié)點的方法是相同的。這部分是本申請實施例中的核心部分,主要思想是先遷移熱點數(shù)據(jù),再后臺遷移非熱點數(shù)據(jù),由于一般情況下,一個存儲節(jié)點中的熱點數(shù)據(jù)與非熱點數(shù)據(jù)的比例大概為2:8,因此,在存儲節(jié)點不可用時,只遷移熱點數(shù)據(jù),會大大縮短存儲節(jié)點的不可用時間,也就減少了業(yè)務(wù)中斷的時間,提升了系統(tǒng)的性能。所述熱點數(shù)據(jù)和非熱點數(shù)據(jù)的辨別方式可以利用本申請上述提供的在存儲節(jié)點對外提供服務(wù)期間時統(tǒng)計的數(shù)據(jù)使用熱度,以及對數(shù)據(jù)的使用熱度設(shè)置 的等級來判斷,具體地判斷方式如下所述。在確定當前存儲節(jié)點中有數(shù)據(jù)需要遷移到目標存儲節(jié)點時,遍歷待遷移數(shù)據(jù)在存儲模型下的每一個單位;其中,每選定一個單位,將當前選定的單位的使用熱度與所述第n個等級的值進行比較;若所述當前選定的單位的使用熱度大于所述第n個等級的值,則將所述當前選定的單位遷移到所述目標存儲節(jié)點;其中,所述預(yù)設(shè)閾值為所述n個等級中第n個等級的值,1≤n≤n,n為正整數(shù)。其中,可以選擇先比較再遷移的策略,即先將每一個單位的使用熱度與所述第n個等級的值進行比較,在執(zhí)行完所有單位的比較之后,篩選出使用熱度大于所述第n個等級的值的單位進行遷移;也可以選擇逐個比較逐個遷移的策略,即每比較一個單位,在所比較的單位的使用熱度大于所述第n個等級的值時,將這個單位遷移到所述目標存儲節(jié)點。具體地,仍以存儲模型為數(shù)據(jù)表為例,首先確定遷移的預(yù)設(shè)閾值,例如,將上述第一時刻的10個等級中第8個等級的值設(shè)置為預(yù)設(shè)閾值,也就是預(yù)設(shè)閾值為8000。預(yù)設(shè)閾值的選擇可以根據(jù)經(jīng)驗不斷的更新優(yōu)化。遍歷待遷移數(shù)據(jù)中的每一張數(shù)據(jù)表,每選定一張數(shù)據(jù)表,獲取選定的這張數(shù)據(jù)表的使用熱度,并將這張數(shù)據(jù)表的使用熱度與預(yù)設(shè)閾值進行比較,若大于預(yù)設(shè)閾值,則將這張數(shù)據(jù)表遷移到目標存儲節(jié)點,若小于,則繼續(xù)遍歷下一張數(shù)據(jù)表,直到遍歷所有數(shù)據(jù)表,就可以將待遷移數(shù)據(jù)中使用熱度大于預(yù)設(shè)閾值的所有數(shù)據(jù)表遷移完畢。然后,在后臺繼續(xù)遷移未遷移的第二組數(shù)據(jù)。例如,遍歷到數(shù)據(jù)表t2,獲取數(shù)據(jù)表t2的使用熱度為9800,判斷數(shù)據(jù)表t2的使用熱度大于預(yù)設(shè)閾值8000,則將數(shù)據(jù)表t2遷移到目標存儲節(jié)點;遍歷到數(shù)據(jù)表t3,獲取數(shù)據(jù)表t3的使用熱度為3400,判斷數(shù)據(jù)表t3的使用熱度小于預(yù)設(shè)閾值8000,則略過數(shù)據(jù)表t3,繼續(xù)遍歷數(shù)據(jù)表t4。其中,在遷移所述第二組數(shù)據(jù)的過程中,在接收到數(shù)據(jù)訪問請求時,按照第一路由方式定位到目標存儲節(jié)點;所述第一路由方式為進行數(shù)據(jù)重分布之后的路由方式;若目標存儲節(jié)點中存在該數(shù)據(jù)訪問請求涉及的訪問數(shù)據(jù),則對目標存儲節(jié)點中存儲的該訪問數(shù)據(jù)進行操作;若目標存儲節(jié)點中不存在該數(shù)據(jù)訪問請求涉及的訪問數(shù)據(jù),則,按照第二路由方式定位到上述當前存儲節(jié)點,對上述當前存儲節(jié)點中存儲的該訪問數(shù)據(jù)進行操作;所述第二路由方式為進行數(shù)據(jù)重分布之前的路由方式。其中,上述路由方式為確定將數(shù)據(jù)訪問請求對應(yīng)的訪問數(shù)據(jù)定位到存儲節(jié)點的路徑的方法,可以采取現(xiàn)有技術(shù)中的任意一種路由方式,本申請不作限制。本申請之所以這樣設(shè)計,是因為,在熱點數(shù)據(jù)遷移完畢,將存儲節(jié)點設(shè)置為可對外提供服務(wù),在之后接收到的數(shù)據(jù)訪問請求大部分是訪問熱點數(shù)據(jù),因此,首先按照數(shù)據(jù)重分布之后的新路由方式路由到目標存儲節(jié)點,能夠訪問到熱點數(shù)據(jù)的幾率非常大。若目標存儲節(jié)點中不存在訪問數(shù)據(jù),則再按照數(shù)據(jù)重分布之前的舊路由方式路由到原來的存儲節(jié)點。之后還會存在兩種情況,若訪問數(shù)據(jù)在原來的存儲節(jié)點上,則對訪問數(shù)據(jù)進行操作;若訪問數(shù)據(jù)不在原來的存儲節(jié)點上,則訪問失敗。如此以來,訪問失敗的幾率將會非常小。下面結(jié)合具體的應(yīng)用場景,對本申請實施例作進一步詳細的說明。假設(shè)本申請實施例中,采用一致性哈希算法將數(shù)據(jù)分散在各個存儲節(jié)點,一致性哈希算法與現(xiàn)有技術(shù)相同,本申請實施例中不再贅述。如圖3a所示,圓環(huán)上的小圓圈代表存儲節(jié)點,按照現(xiàn)有的一致性哈希算法,存儲節(jié)點b中存儲的數(shù)據(jù)包括key值映射到存儲節(jié)點a和存儲節(jié)點b之間的弧形區(qū)域的數(shù)據(jù)。具體地,第1步,需要對數(shù)據(jù)進行操作時,對數(shù)據(jù)采用哈希函數(shù)計算出key值;第2步,將key值映射到順時針方向的第一個存儲節(jié)點上,也就是存儲節(jié)點b上;那么,在存儲節(jié)點b上相應(yīng)的數(shù)據(jù)存儲模型的單位上,將使用熱度的值加1。例如,將對應(yīng)的數(shù)據(jù)表的使用熱度的值加1。接著,將執(zhí)行加1計算之后的對應(yīng)的數(shù)據(jù)表的使用熱度值與存儲節(jié)點b上數(shù)據(jù)表的最高等級的值進行比較,在大于最高等級的值時,將最高等級的值按照執(zhí)行加1計算之后的對應(yīng)的數(shù)據(jù)表的使用熱度值進行更新,并依次更新其他等級的值。如圖3b所示,第3步,在圖3a中存儲節(jié)點的分布基礎(chǔ)上加入了存儲節(jié)點h,具體加在了存儲節(jié)點a和存儲節(jié)點b之間,那么必定會進行數(shù)據(jù)重分布。按照現(xiàn)有的一致性哈希的算法,數(shù)據(jù)重分布受影響的存儲節(jié)點為存儲節(jié)點h和存儲節(jié)點b,受影響的數(shù)據(jù)范圍為待遷移數(shù)據(jù),待遷移數(shù)據(jù)為存儲節(jié)點a和存儲節(jié)點h之間的弧形區(qū)域。第4步,在存儲節(jié)點h加入之后,將存儲節(jié)點h和存儲節(jié)點b的狀態(tài)由可對外提供服務(wù)設(shè)置為不可對外提供服務(wù)。第5步,將待遷移數(shù)據(jù)中的熱點數(shù)據(jù)遷移至存儲節(jié)點h。具體遷移方法與上述實施例中敘述的一致,重復(fù)之處不再贅述。第6步,將存儲節(jié)點h和存儲節(jié)點b的狀態(tài)由不可對外提供服務(wù)設(shè)置為可對外提供服務(wù)。第7步,后臺繼續(xù)遷移非熱點數(shù)據(jù)至存儲節(jié)點h。基于同一發(fā)明構(gòu)思,如圖4所示,本申請實施例還提供了一種數(shù)據(jù)重分布的裝置400,包括:第一管理單元401,記錄單元402,遷移單元403和第二管理單元404。其中:第一管理單元401,用于在確定需要進行數(shù)據(jù)重分布時,將待遷移數(shù)據(jù)的當前存儲節(jié)點和所述待遷移數(shù)據(jù)的目標存儲節(jié)點的狀態(tài)均由可對外提供服務(wù)設(shè)置為不可對外提供服務(wù);記錄單元402,用于在所述當前存儲節(jié)點對外提供服務(wù)期間時記錄所述待 遷移數(shù)據(jù)的使用熱度;遷移單元403,用于基于記錄單元402記錄的所述待遷移數(shù)據(jù)的使用熱度,將所述待遷移數(shù)據(jù)中使用熱度大于預(yù)設(shè)閾值的第一組數(shù)據(jù)遷移到所述目標存儲節(jié)點;所述使用熱度用于表征所述待遷移數(shù)據(jù)被使用的次數(shù);第二管理單元404,用于在所述遷移單元403將所述待遷移數(shù)據(jù)中使用熱度大于預(yù)設(shè)閾值的第一組數(shù)據(jù)遷移到所述目標存儲節(jié)點之后,將所述當前存儲節(jié)點和所述目標存儲節(jié)點的狀態(tài)由所述不可對外提供服務(wù)切換回可對外提供服務(wù)??蛇x的,所述記錄單元402具體用于:在所述當前存儲節(jié)點對外提供服務(wù)期間時,對所述當前存儲節(jié)點的數(shù)據(jù)存儲模型下的每一個單位分別記錄一個使用熱度;其中,在任意一個單位建立時,針對所述任意一個單位記錄一個初始的使用熱度,每當所述任意一個單位被使用一次時,更新所述任意一個單位對應(yīng)的使用熱度??蛇x的,所述數(shù)據(jù)存儲模型包括數(shù)據(jù)表、數(shù)據(jù)頁、數(shù)據(jù)記錄中的任意一種;所述一個單位為一張數(shù)據(jù)表、一張數(shù)據(jù)頁或一條數(shù)據(jù)記錄。可選的,數(shù)據(jù)重分布的裝置400還包括:設(shè)置單元405,用于在所述當前存儲節(jié)點對外提供服務(wù)期間時,針對所述當前存儲節(jié)點的數(shù)據(jù)模型下的所有單位的使用熱度設(shè)置n個等級,n≥2,n為正整數(shù);以及,將所述當前存儲節(jié)點最后一次更新使用熱度后所有所述單位的使用熱度中的最高值,設(shè)置為所述n個等級中的最高等級的值;以及,基于所述最高等級的值,按遞減規(guī)則設(shè)置所述n個等級中除所述最高等級之外的(n-1)個等級的值;其中,每更新一個單位對應(yīng)的使用熱度,將更新的使用熱度與所述最高等級的值相比較,在所述更新的使用熱度大于所述最高等級的值時,將所述最高 等級的值更新為所述更新的使用熱度;較佳的,進一步按照更新后的最高等級的值,將所述(n-1)個等級的值依次進行更新;或者,進一步判斷本次更新后的最高等級的值與本次更新前的最高等級的值之間的差值是否大于設(shè)置的差值閾值,在判定本次更新后的最高等級的值與本次更新前的最高等級的值之間的差值大于設(shè)置的差值閾值時,將所述(n-1)個等級的值依次進行更新??蛇x的,所述遷移單元403具體用于:遍歷在所述數(shù)據(jù)存儲模型下存儲待遷移數(shù)據(jù)的每一個單位,每選定一個單位,將當前選定的單位的使用熱度與所述第n個等級的值進行比較,若所述當前選定的單位的使用熱度大于所述第n個等級的值,則將所述當前選定的單位遷移到所述目標存儲節(jié)點;其中,所述預(yù)設(shè)閾值為所述n個等級中第n個等級的值,1≤n≤n,n為正整數(shù)。可選的,所述遷移單元403還用于:在所述當前存儲節(jié)點和所述目標存儲節(jié)點的后臺服務(wù)中,將所述待遷移數(shù)據(jù)中使用熱度不大于預(yù)設(shè)閾值的第二組數(shù)據(jù)遷移到所述目標存儲節(jié)點??蛇x的,數(shù)據(jù)重分布的裝置400還包括:路由單元406,用于在所述遷移單元403遷移所述第二組數(shù)據(jù)的過程中,在接收到數(shù)據(jù)訪問請求時,按照第一路由方式定位到所述目標存儲節(jié)點;所述第一路由方式為進行所述數(shù)據(jù)重分布之后的路由方式;或者,按照第二路由方式定位到所述當前存儲節(jié)點,所述第二路由方式為進行所述數(shù)據(jù)重分布之前的路由方式。數(shù)據(jù)處理單元407,用于在所述路由單元406按照所述第一路由方式定位到所述目標存儲節(jié)點之后,若所述目標存儲節(jié)點中存在所述數(shù)據(jù)訪問請求涉及的訪問數(shù)據(jù),則對所述目標存儲節(jié)點中存儲的所述訪問數(shù)據(jù)進行操作;若所述目標存儲節(jié)點中不存在所述數(shù)據(jù)訪問請求涉及的所述訪問數(shù)據(jù), 則,在所述路由單元按照所述第二路由方式定位到所述當前存儲節(jié)點之后,對所述當前存儲節(jié)點中存儲的所述訪問數(shù)據(jù)進行操作?;谕话l(fā)明構(gòu)思,如圖5所示,本申請實施例還提供了一種終端數(shù)據(jù)重分布的裝置500,用于執(zhí)行本申請實施例上述提供的數(shù)據(jù)重分布的方法,所述數(shù)據(jù)重分布的裝置500包括存儲器501和處理器502。其中,存儲器501,用于存儲一組程序;所述處理器502用于調(diào)用存儲器501存儲的程序,使得所述數(shù)據(jù)重分布的裝置500可以執(zhí)行本申請實施例上述提供的數(shù)據(jù)重分布的方法。較佳的,數(shù)據(jù)重分布的裝置500還包括總線503,收發(fā)器504,存儲器501、處理器502和收發(fā)器504均與總線503連接,處理器502可以是中央處理器(英文:centralprocessingunit,縮寫:cpu),網(wǎng)絡(luò)處理器(英文:networkprocessor,縮寫:np)或者cpu和np的組合。處理器502還可以進一步包括硬件芯片。上述硬件芯片可以是專用集成電路(英文:application-specificintegratedcircuit,縮寫:asic),可編程邏輯器件(英文:programmablelogicdevice,縮寫:pld)或其組合。上述pld可以是復(fù)雜可編程邏輯器件(英文:complexprogrammablelogicdevice,縮寫:cpld),現(xiàn)場可編程邏輯門陣列(英文:field-programmablegatearray,縮寫:fpga),通用陣列邏輯(英文:genericarraylogic,縮寫:gal)或其任意組合。存儲器501可以包括易失性存儲器(英文:volatilememory),例如隨機存取存儲器(英文:random-accessmemory,縮寫:ram);存儲器501也可以包括非易失性存儲器(英文:non-volatilememory),例如快閃存儲器(英文:flashmemory),硬盤(英文:harddiskdrive,縮寫:hdd)或固態(tài)硬盤(英文:solid-statedrive,縮寫:ssd);存儲器501還可以包括上述種類的存儲器的組合。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包 含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。本申請是參照根據(jù)本申請實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。盡管已描述了本申請的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。顯然,本領(lǐng)域的技術(shù)人員可以對本申請實施例進行各種改動和變型而不脫離本申請實施例的精神和范圍。這樣,倘若本申請實施例的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。當前第1頁12
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1