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