數(shù)據(jù)存儲方法及裝置制造方法
【專利摘要】本發(fā)明的實施例提供一種數(shù)據(jù)存儲方法及裝置,提高數(shù)據(jù)存儲的成功率和存儲空間的利用率。該方法包括:獲取各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和;計算各個存儲單元各自的存儲能力以及各個存儲單元的總存儲能力;根據(jù)各個存儲單元各自的存儲能力與總存儲能力的比值,獲取各個存儲單元的目標邏輯數(shù)據(jù)比例;根據(jù)所述各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和與各個存儲單元各自的目標邏輯數(shù)據(jù)比例,確定各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù);根據(jù)各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)以及需存儲邏輯數(shù)據(jù)的目標份數(shù),在各個存儲單元之間進行邏輯數(shù)據(jù)的遷移。
【專利說明】數(shù)據(jù)存儲方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機【技術(shù)領(lǐng)域】,尤其涉及一種數(shù)據(jù)存儲方法及裝置。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)中,將數(shù)據(jù)存儲到各個存儲單元的實現(xiàn)過程為:首先,將待存儲數(shù)據(jù)通過哈希運算散列到N個邏輯區(qū)域中,每個邏輯區(qū)域中的數(shù)據(jù)稱之為一份邏輯數(shù)據(jù),總共可以得出N份邏輯數(shù)據(jù)。然后,將N份邏輯數(shù)據(jù)按照存儲單元的個數(shù)進行均分,并存儲到各個存儲單元,亦即每個存儲單元存儲的邏輯數(shù)據(jù)的份數(shù)相同。
[0003]不同存儲單元的格式化單位不同,會使得相同容量的存儲單元的存儲能力也不相同。例如,存儲單元A和存儲單元B的容量均為1MB,其中,存儲單元A的格式化單位為1KB,亦即,該存儲單元A的最小存儲單位為1KB,那么存儲單元A的存儲能力為1MB/1KB=1024,亦即,存儲單元A最大可以存儲1024份邏輯數(shù)據(jù);存儲單元B的格式化單位為4KB,亦即該存儲單元B的最小存儲單位為4KB,那么存儲單元B的存儲能力為1MB/4KB=256,亦即,存儲單元B最大可以存儲256份邏輯數(shù)據(jù)。
[0004]然而,在采用上述方法存儲數(shù)據(jù)到各個存儲單元(各個存儲單元的容量相同)時,由于每個存儲單元存儲的邏輯數(shù)據(jù)的份數(shù)相同,一方面,會導(dǎo)致部分存儲能力小的存儲單元發(fā)生數(shù)據(jù)溢出,導(dǎo)致存儲失敗,另一方面,部分存儲能力大的存儲單元則出現(xiàn)存儲空間閑置,導(dǎo)致存儲資源浪費。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的實施例提供一種數(shù)據(jù)存儲方法及裝置,提高數(shù)據(jù)存儲的成功率和存儲空間的利用率。
[0006]為達到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:
[0007]—方面,提供一種數(shù)據(jù)存儲方法,其特征在于,包括:
[0008]獲取各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和;
[0009]計算各個存儲單元各自的存儲能力以及各個存儲單元的總存儲能力;
[0010]根據(jù)各個存儲單元各自的存儲能力與總存儲能力的比值,獲取各個存儲單元的目標邏輯數(shù)據(jù)比例;
[0011]根據(jù)所述各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和與各個存儲單元各自的目標邏輯數(shù)據(jù)比例,確定各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù);
[0012]根據(jù)各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)以及需存儲邏輯數(shù)據(jù)的目標份數(shù),在各個存儲單元之間進行邏輯數(shù)據(jù)的遷移。
[0013]另一方面,提供一種數(shù)據(jù)存儲裝置,其特征在于,包括:
[0014]獲取模塊,用于獲取各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和;
[0015]計算模塊,用于計算各個存儲單元各自的存儲能力以及各個存儲單元的總存儲能力;[0016]所述獲取模塊,還用于根據(jù)各個存儲單元各自的存儲能力與總存儲能力的比值,獲取各個存儲單元的目標邏輯數(shù)據(jù)比例;
[0017]確定模塊,用于根據(jù)所述各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和與各個存儲單元各自的目標邏輯數(shù)據(jù)比例,確定各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù);
[0018]控制模塊,用于根據(jù)各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)以及需存儲邏輯數(shù)據(jù)的目標份數(shù),在各個存儲單元之間進行邏輯數(shù)據(jù)的遷移。
[0019]由上述技術(shù)方案所描述的本發(fā)明實施例中,在各個存儲單元已經(jīng)存儲了邏輯數(shù)據(jù)時,通過根據(jù)所述各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和與各個存儲單元各自的目標邏輯數(shù)據(jù)比例,確定各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù),所述各個存儲單元按照各自需存儲邏輯數(shù)據(jù)的目標份數(shù)存儲邏輯數(shù)據(jù)時,使得所述各個存儲單元的存儲率一致;并根據(jù)各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)以及需存儲邏輯數(shù)據(jù)的目標份數(shù),在各個存儲單元之間進行邏輯數(shù)據(jù)的遷移,使得各個存儲單元各自最終存儲的邏輯數(shù)據(jù)份數(shù)達到各自需存儲邏輯數(shù)據(jù)的目標份數(shù)。亦即,通過在各個已經(jīng)存儲有邏輯數(shù)據(jù)的存儲單元之間調(diào)整數(shù)據(jù),使得當(dāng)各個存儲單元各自最終存儲的邏輯數(shù)據(jù)份數(shù)達到各自需存儲邏輯數(shù)據(jù)的目標份數(shù),從而實現(xiàn)各個存儲單元的使用率達到一致。
[0020]本發(fā)明實施例實現(xiàn)各個存儲單元的使用率達到一致,可以有效避免現(xiàn)有技術(shù)中由于每個存儲單元存儲的邏輯數(shù)據(jù)的份數(shù)相同,一方面,會導(dǎo)致部分存儲能力小的存儲單元發(fā)生數(shù)據(jù)溢出,導(dǎo)致存儲失敗,另一方面,部分存儲能力大的存儲單元則出現(xiàn)存儲空間閑置,導(dǎo)致存儲資源浪費的問題,從而提高數(shù)據(jù)存儲的成功率和存儲空間的利用率。
【專利附圖】
【附圖說明】
[0021]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0022]圖1為本發(fā)明實施例1提供的一種數(shù)據(jù)存儲方法的流程圖;
[0023]圖2為本發(fā)明實施例1提供的一種數(shù)據(jù)存儲方法中步驟105的實現(xiàn)流程圖;
[0024]圖3為本發(fā)明實施例1提供的一種數(shù)據(jù)存儲方法中步驟1051的實現(xiàn)流程圖;
[0025]圖4為采用本實施例1提供的方法對數(shù)據(jù)調(diào)整前的各個存儲單元的數(shù)據(jù)存儲示意圖;
[0026]圖5為采用本實施例1提供的方法對數(shù)據(jù)調(diào)整后的各個存儲單元的數(shù)據(jù)存儲示意圖;
[0027]圖6為本發(fā)明實施例2提供的一種數(shù)據(jù)存儲方法的流程圖;
[0028]圖7為本發(fā)明實施例3提供一種數(shù)據(jù)存儲裝置的結(jié)構(gòu)圖;
[0029]圖8為本發(fā)明實施例3提供一種數(shù)據(jù)存儲裝置中控制模塊14的實現(xiàn)結(jié)構(gòu)圖;
[0030]圖9為本發(fā)明實施例3提供一種數(shù)據(jù)存儲裝置中確定子模塊141的實現(xiàn)結(jié)構(gòu)圖;
[0031]圖10為本發(fā)明實施例3提供另一種數(shù)據(jù)存儲裝置的結(jié)構(gòu)圖?!揪唧w實施方式】
[0032]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0033]實施例1:
[0034]本實施例的一種可能的應(yīng)用場景為:各個存儲單元已經(jīng)存儲有邏輯數(shù)據(jù),所采用的數(shù)據(jù)存儲方式,可以與現(xiàn)有技術(shù)中相同。例如,存儲時,將待存儲數(shù)據(jù)通過哈希運算散列到N個邏輯區(qū)域中,每個邏輯區(qū)域中的數(shù)據(jù)稱之為一份邏輯數(shù)據(jù),總共可以得出N份邏輯數(shù)據(jù)。然后,將N份邏輯數(shù)據(jù)按照存儲單元的個數(shù)進行均分,并存儲到各個存儲單元。然而,采用現(xiàn)有方法存儲數(shù)據(jù)后,會存在由于每個存儲單元存儲的邏輯數(shù)據(jù)的份數(shù)相同,但是存儲使用率不同,一方面,會導(dǎo)致部分存儲能力小的存儲單元發(fā)生數(shù)據(jù)溢出,導(dǎo)致存儲失敗,另一方面,部分存儲能力大的存儲單元則出現(xiàn)存儲空間閑置,導(dǎo)致存儲資源浪費的缺陷。
[0035]下面,將具體介紹如何通過本發(fā)明實施例提供的方法對已經(jīng)存儲有邏輯數(shù)據(jù)的存儲單元進行數(shù)據(jù)調(diào)整,使得調(diào)整后的各個存儲單元的存儲使用率達到一致,進而有效避免上述缺陷。
[0036]如圖1所示,本發(fā)明實施例提供一種數(shù)據(jù)存儲方法,包括:
[0037]101、獲取各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和。
[0038]本文中,各個存儲單元存儲的邏輯數(shù)據(jù)按照份數(shù)進行計量,每份邏輯數(shù)據(jù)的大小相同。例如,每份邏輯數(shù)據(jù)均為1K,或者他容量大小。
[0039]該各個存儲單元可以位于內(nèi)存中,各個存儲單元的容量大小及個數(shù)可以由技術(shù)人員根據(jù)應(yīng)用需要進行設(shè)定。
[0040]102、計算各個存儲單元各自的存儲能力以及各個存儲單元的總存儲能力。
[0041]本步驟中計算各個存儲單元各自的存儲能力的一種實現(xiàn)方式為:計算各個存儲單元各自可存儲邏輯數(shù)據(jù)的最大份數(shù)。具體為,使用存儲單元的容量除于該存儲單元的格式化單位。
[0042]例如,存儲單元A的容量為1MB,存儲單元A的格式化單位為1KB,那么存儲單元A的可存儲邏輯數(shù)據(jù)的最大份數(shù)(亦即存儲單元A的存儲能力)為1MB/1KB=1024份。
[0043]本步驟中計算各個存儲單元各自的存儲能力的另一種實現(xiàn)方式為:計算各個存儲單元各自已存儲邏輯數(shù)據(jù)的份數(shù)與當(dāng)前使用率的比值。其中,存儲單元的已存儲邏輯數(shù)據(jù)的份數(shù)和存儲單元的當(dāng)前使用率均可以采用現(xiàn)有方式直接獲取到。
[0044]需要說明的是,通過上述方式計算各個存儲單元各自的存儲能力時,有可能出現(xiàn)無法整除的情況,此時會采用小數(shù)形式進行表示,精度可以保留至小數(shù)后3位,當(dāng)然,精度也可以根據(jù)實際應(yīng)用的需求進行不同的設(shè)定。
[0045]所述各個存儲單元的總存儲能力是指各個存儲單元的存儲能力之和。
[0046]103、根據(jù)各個存儲單元各自的存儲能力與總存儲能力的比值,獲取各個存儲單元的目標邏輯數(shù)據(jù)比例。
[0047]104、根據(jù)所述各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和與各個存儲單元各自的目標邏輯數(shù)據(jù)比例,確定各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù)。[0048]其中,所述各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù)均為正整數(shù)。由于一份邏輯數(shù)據(jù)為最小的存儲單位,無法再進行細分,故,所述各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù)均為正整數(shù)。
[0049]本步驟中確定各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù)的意義在于:所述各個存儲單元按照各自需存儲邏輯數(shù)據(jù)的目標份數(shù)存儲邏輯數(shù)據(jù)時,可以使得所述各個存儲單元的存儲率一致。進而,可以有效避免現(xiàn)有技術(shù)中由于每個存儲單元存儲的邏輯數(shù)據(jù)的份數(shù)相同,一方面,會導(dǎo)致部分存儲能力小的存儲單元發(fā)生數(shù)據(jù)溢出,導(dǎo)致存儲失敗,另一方面,部分存儲能力大的存儲單元則出現(xiàn)存儲空間閑置,導(dǎo)致存儲資源浪費的問題。
[0050]本步驟的一種實現(xiàn)方式為:根據(jù)
【權(quán)利要求】
1.一種數(shù)據(jù)存儲方法,其特征在于,包括: 獲取各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和; 計算各個存儲單元各自的存儲能力以及各個存儲單元的總存儲能力; 根據(jù)各個存儲單元各自的存儲能力與總存儲能力的比值,獲取各個存儲單元的目標邏輯數(shù)據(jù)比例; 根據(jù)所述各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和與各個存儲單元各自的目標邏輯數(shù)據(jù)比例,確定各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù); 根據(jù)各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)以及需存儲邏輯數(shù)據(jù)的目標份數(shù),在各個存儲單元之間進行邏輯數(shù)據(jù)的遷移。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)以及需存儲邏輯數(shù)據(jù)的目標份數(shù),在各個存儲單元之間進行邏輯數(shù)據(jù)的遷移,包括: 根據(jù)各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)和各自需存儲邏輯數(shù)據(jù)的目標份數(shù)在所述各個存儲單元中確定各個待寫入存儲單元及其各自需要寫入邏輯數(shù)據(jù)的份數(shù),并確定各個待讀出存儲單元及其各自需要讀出并擦除邏輯數(shù)據(jù)的份數(shù);其中,各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù)的總和與所述各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和相等,且各個待讀出存儲單元各自需要讀出并擦除邏輯數(shù)據(jù)的份數(shù)的總和與各個待寫入存儲單元各自需要寫入邏輯數(shù)據(jù)的份數(shù)的總和相等; 從各個待讀出存儲單元中按照各自需要讀出并擦除邏輯數(shù)據(jù)的份數(shù)讀出并擦除邏輯數(shù)據(jù),在各個待寫入存儲單元中按照各自需要寫入邏輯數(shù)據(jù)的份數(shù)將所述讀出的邏輯數(shù)據(jù)寫入,使得各個存儲單元各自最終存儲的邏輯數(shù)據(jù)份數(shù)達到各自需存儲邏輯數(shù)據(jù)的目標份數(shù)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述計算各個存儲單元各自的存儲能力包括: 計算各個存儲單元各自可存儲邏輯數(shù)據(jù)的最大份數(shù);或者, 計算各個存儲單元各自已存儲邏輯數(shù)據(jù)的份數(shù)與當(dāng)前使用率的比值。
4.根據(jù)權(quán)利要求1-3任一所述的方法,其特征在于: 根據(jù)G1 =確定各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù),其中,Gi為第i
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括: 當(dāng)各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù)的總和與所述各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和不相等時,按照存儲能力從大到小的順序?qū)Ω鱾€存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù)進行調(diào)整,使得各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù)的總和與所述各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和相等。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)和各自需存儲邏輯數(shù)據(jù)的目標份數(shù)在所述各個存儲單元中確定各個待寫入存儲單元及其各自需要寫入邏輯數(shù)據(jù)的份數(shù),并確定各個待讀出存儲單元及其各自需要讀出并擦除邏輯數(shù)據(jù)的份數(shù)包括: 將各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)減去各自需存儲邏輯數(shù)據(jù)的目標份數(shù),得到各個存儲單元各自對應(yīng)的差值,所述差值表示存儲單元中需要寫入邏輯數(shù)據(jù)的份數(shù)或者需要讀出并擦除邏輯數(shù)據(jù)的份數(shù); 當(dāng)所述存儲單元對應(yīng)的差值小于零時,確定所述存儲單元為待寫入存儲單元,所述待寫入存儲單元需要寫入邏輯數(shù)據(jù),且需要寫入邏輯數(shù)據(jù)的份數(shù)為所述差值的絕對值;當(dāng)所述存儲單元對應(yīng)的差值等于零時,確定所述存儲單元無需執(zhí)行寫入或讀出操作;當(dāng)所述存儲單元對應(yīng)的差值大于零時,確定所述存儲單元為待讀出存儲單元,所述待讀出存儲單元需要讀出并擦除邏輯數(shù)據(jù),且需要讀出并擦除邏輯數(shù)據(jù)的份數(shù)為所述差值。
7.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括: 按照各個待讀出存儲單元各自需要讀出并擦除邏輯數(shù)據(jù)的份數(shù)和各個待寫入存儲單元各自需要寫入邏輯數(shù)據(jù)的份數(shù)生成數(shù)據(jù)搬遷計劃表,所述數(shù)據(jù)搬遷計劃表用于記錄從哪些待讀出存儲單元讀出并擦除多少份的邏輯數(shù)據(jù),并寫入哪些待寫入存儲單元及寫入邏輯數(shù)據(jù)的份數(shù),其中,所述各個存儲度按照所述數(shù)據(jù)搬遷計劃表執(zhí)行邏輯數(shù)據(jù)的讀出和寫入后,使得所述各個存儲單元各自最終存儲的邏輯數(shù)據(jù)份數(shù)達到各自需存儲邏輯數(shù)據(jù)的目標份數(shù); 所述從各個待讀出存儲單元中按照各自需要讀出并擦除邏輯數(shù)據(jù)的份數(shù)讀出并擦除邏輯數(shù)據(jù),在各個待寫入存儲單元中按照各自需要寫入邏輯數(shù)據(jù)的份數(shù)將所述讀出的邏輯數(shù)據(jù)寫入具體為: 按照所述搬遷計劃表從各個待讀出存儲單元中按照各自需要讀出并擦除邏輯數(shù)據(jù)的份數(shù)讀出并擦除邏輯數(shù)據(jù),在各個待寫入存儲單元中按照各自需要寫入邏輯數(shù)據(jù)的份數(shù)將所述讀出的邏輯數(shù)據(jù)寫入。
8.一種數(shù)據(jù)存儲裝置,其特征在于,包括: 獲取模塊,用于獲取各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和; 計算模塊,用于計算各個存儲單元各自的存儲能力以及各個存儲單元的總存儲能力;所述獲取模塊,還用于根據(jù)各個存儲單元各自的存儲能力與總存儲能力的比值,獲取各個存儲單元的目標邏輯數(shù)據(jù)比例; 確定模塊,用于根據(jù)所述各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和與各個存儲單元各自的目標邏輯數(shù)據(jù)比例,確定各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù);控制模塊,用于根據(jù)各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)以及需存儲邏輯數(shù)據(jù)的目標份數(shù),在各個存儲單元之間進行邏輯數(shù)據(jù)的遷移。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述控制模塊包括: 確定子模塊,用于根據(jù)各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)和各自需存儲邏輯數(shù)據(jù)的目標份數(shù)在所述各個存儲單元中確定各個待寫入存儲單元及其各自需要寫入邏輯數(shù)據(jù)的份數(shù),并確定各個待讀出存儲單元及其各自需要讀出并擦除邏輯數(shù)據(jù)的份數(shù);其中,各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù)的總和與所述各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和相等,且各個待讀出存儲單元各自需要讀出并擦除邏輯數(shù)據(jù)的份數(shù)的總和與各個待寫入存儲單元各自需要寫入邏輯數(shù)據(jù)的份數(shù)的總和相等; 讀出控制模塊,用于從各個待讀出存儲單元中按照各自需要讀出并擦除邏輯數(shù)據(jù)的份數(shù)讀出并擦除邏輯數(shù)據(jù); 寫入控制模塊,用于在各個待寫入存儲單元中按照各自需要寫入邏輯數(shù)據(jù)的份數(shù)將所述讀出的邏輯數(shù)據(jù)寫入,使得各個存儲單元各自最終存儲的邏輯數(shù)據(jù)份數(shù)達到各自需存儲邏輯數(shù)據(jù)的目標份數(shù)。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述計算模塊用于計算各個存儲單元各自可存儲邏輯數(shù)據(jù)的最大份數(shù);或者,用于計算各個存儲單元各自已存儲邏輯數(shù)據(jù)的份數(shù)與當(dāng)前使用率的比值。
11.根據(jù)權(quán)利要求8-10任一項所述的裝置,其特征在于,所述確定模塊用于:根據(jù)
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,還包括:調(diào)整單元,用于當(dāng)各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù)的總和與所述各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和不相等時,按照存儲能力從大到小的順序?qū)Ω鱾€存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù)進行調(diào)整,使得各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù)的總和與所述各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和相等。
13.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述確定子模塊包括: 計算單元,用于將各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)減去各自需存儲邏輯數(shù)據(jù)的目標份數(shù),得到各個存儲單元各自對應(yīng)的差值,所述差值表示存儲單元中需要寫入邏輯數(shù)據(jù)的份數(shù)或者需要讀出并擦除邏輯數(shù)據(jù)的份數(shù); 確定單元,用于當(dāng)所述存儲單元對應(yīng)的差值小于零時,確定所述存儲單元為待寫入存儲單元,所述待寫入存儲單元需要寫入邏輯數(shù)據(jù),且需要寫入邏輯數(shù)據(jù)的份數(shù)為所述差值的絕對值; 所述確定單元,還用于當(dāng)所述存儲單元對應(yīng)的差值等于零時,確定所述存儲單元無需執(zhí)行寫入或讀出操作; 所述確定單元,還用于當(dāng)所述存儲單元對應(yīng)的差值大于零時,確定所述存儲單元為待讀出存儲單元,所述待讀出存儲單元需要讀出并擦除邏輯數(shù)據(jù),且需要讀出并擦除邏輯數(shù)據(jù)的份數(shù)為所述差值;其中,各個存儲單元各自需存儲邏輯數(shù)據(jù)的目標份數(shù)的總和與所述各個存儲單元各自已存儲邏輯數(shù)據(jù)的實際份數(shù)的總和相等,且各個待讀出存儲單元各自需要讀出并擦除邏輯數(shù)據(jù)的份數(shù)的總和與各個待寫入存儲單元各自需要寫入邏輯數(shù)據(jù)的份數(shù)的總和相等。
14.根據(jù)權(quán)利要求9所述的裝置,其特征在于,還包括:生成單元,用于按照各個待讀出存儲單元各自需要讀出并擦除邏輯數(shù)據(jù)的份數(shù)和各個待寫入存儲單元各自需要寫入邏輯數(shù)據(jù)的份數(shù)生成數(shù)據(jù)搬遷計劃表,所述數(shù)據(jù)搬遷計劃表用于記錄從哪些待讀出存儲單元讀出并擦除多少份的邏輯數(shù)據(jù),并寫入哪些待寫入存儲單元及寫入邏輯數(shù)據(jù)的份數(shù),其中,所述各個存儲度按照所述數(shù)據(jù)搬遷計劃表執(zhí)行邏輯數(shù)據(jù)的讀出和寫入后,使得所述各個存儲單元各自最終存儲的邏輯數(shù)據(jù)份數(shù)達到各自需存儲邏輯數(shù)據(jù)的目標份數(shù); 所述讀出控制模塊,用于按照所述數(shù)據(jù)搬遷計劃表從各個待讀出存儲單元中按照各自需要讀出并擦除邏輯數(shù)據(jù)的份數(shù)讀出并擦除邏輯數(shù)據(jù); 寫入控制模塊,用于按照所述數(shù)據(jù)搬遷計劃表在各個待寫入存儲單元中按照各自需要寫入邏輯數(shù)據(jù)的份數(shù)將所述讀出的邏輯數(shù)據(jù)寫入,使得各個存儲單元各自最終存儲的邏輯數(shù)據(jù)份數(shù)達到各自需存儲邏輯數(shù)據(jù)的目標份數(shù)。
【文檔編號】G06F3/06GK103577117SQ201210282454
【公開日】2014年2月12日 申請日期:2012年8月9日 優(yōu)先權(quán)日:2012年8月9日
【發(fā)明者】張禮方, 鐘超宇, 黃春剛, 曾凱源 申請人:深圳市騰訊計算機系統(tǒng)有限公司