向固態(tài)硬盤寫入數(shù)據(jù)的方法及設(shè)備的制作方法
【專利摘要】提供一種向固態(tài)硬盤寫入數(shù)據(jù)的方法及設(shè)備。所述方法包括:(A)確定待寫入數(shù)據(jù)的生命周期信息;(B)根據(jù)待寫入數(shù)據(jù)的生命周期信息確定待寫入數(shù)據(jù)所屬的生命周期組;(C)根據(jù)待寫入數(shù)據(jù)所屬的生命周期組將待寫入數(shù)據(jù)寫入固態(tài)硬盤。根據(jù)本發(fā)明的方法及設(shè)備,使得在對固態(tài)硬盤進(jìn)行垃圾回收時能夠有效減少對有效數(shù)據(jù)的搬移,從而提高固態(tài)硬盤的性能、延長固態(tài)硬盤的使用壽命。
【專利說明】向固態(tài)硬盤寫入數(shù)據(jù)的方法及設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲領(lǐng)域,更具體地講,涉及一種向固態(tài)硬盤寫入數(shù)據(jù)的方法及設(shè)備。
【背景技術(shù)】
[0002]固態(tài)硬盤(SSD)由控制單元和存儲單元(例如,F(xiàn)LASH芯片)兩部分組成??刂茊卧?fù)責(zé)讀取、寫入數(shù)據(jù),存儲單元負(fù)責(zé)存儲數(shù)據(jù)。由于固態(tài)硬盤沒有普通硬盤的機(jī)械結(jié)構(gòu),因而存儲系統(tǒng)能夠在較低的時間內(nèi)對任意位置的存儲單元完成1/0(輸入/輸出)操作。
[0003]SSD的相關(guān)技術(shù)包括閃存轉(zhuǎn)換層、磨損平衡、垃圾回收、預(yù)留空間、Trim指令、寫入放大、壞塊管理及校驗糾錯等。其中,垃圾回收是SSD的一個重要功能,是將所有區(qū)塊中的有效數(shù)據(jù)合并到新的區(qū)塊中,并將舊的區(qū)塊進(jìn)行擦除,這樣做的好處一方面能夠減少尋址負(fù)擔(dān),另一方面能夠留出更多的空閑區(qū)塊。
[0004]然而,在對固態(tài)硬盤進(jìn)行垃圾回收時,由于一個區(qū)塊上同時存在無效數(shù)據(jù)和有效數(shù)據(jù),需要將有效數(shù)據(jù)進(jìn)行搬移,而大量有效數(shù)據(jù)的搬移,會導(dǎo)致SSD的磨損、SSD性能的下降。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的示例性實施例在于提供一種向固態(tài)硬盤寫入數(shù)據(jù)的方法及設(shè)備,使得在對固態(tài)硬盤進(jìn)行垃圾回收時能夠有效減少對有效數(shù)據(jù)的搬移。
[0006]根據(jù)本發(fā)明的一方面,提供一種向固態(tài)硬盤寫入數(shù)據(jù)的方法,包括:(A)確定待寫入數(shù)據(jù)的生命周期信息;(B)根據(jù)待寫入數(shù)據(jù)的生命周期信息確定待寫入數(shù)據(jù)所屬的生命周期組;(C)根據(jù)待寫入數(shù)據(jù)所屬的生命周期組將待寫入數(shù)據(jù)寫入固態(tài)硬盤。
[0007]可選地,在固態(tài)硬盤中為各個生命周期組分別劃分對應(yīng)的區(qū)塊,其中,步驟(C)包括:將待寫入數(shù)據(jù)寫入固態(tài)硬盤中與待寫入數(shù)據(jù)所屬的生命周期組對應(yīng)的區(qū)塊。
[0008]可選地,步驟(C)包括:當(dāng)存在多個待寫入數(shù)據(jù)時,使得屬于相同生命周期組的待寫入數(shù)據(jù)被相繼地依次寫入固態(tài)硬盤。
[0009]可選地,步驟(C)包括:(C1)判斷待寫入數(shù)據(jù)所屬的生命周期組與固態(tài)硬盤中的當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組是否相同;(C2)當(dāng)待寫入數(shù)據(jù)所屬的生命周期組與當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組相同時,將待寫入數(shù)據(jù)從當(dāng)前待寫入?yún)^(qū)塊的待寫入位置開始寫入固態(tài)硬盤;(C3)當(dāng)待寫入數(shù)據(jù)所屬的生命周期組與當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組不同時,使得待寫入數(shù)據(jù)處于暫緩寫入狀態(tài)。
[0010]可選地,步驟(C)還包括:在步驟(C3)之后,檢測當(dāng)前是否有新的待寫入數(shù)據(jù)等待寫入固態(tài)硬盤,其中,當(dāng)當(dāng)前有新的待寫入數(shù)據(jù)等待寫入固態(tài)硬盤時,針對該新的待寫入數(shù)據(jù)返回執(zhí)行步驟(A);當(dāng)當(dāng)前沒有新的待寫入數(shù)據(jù)等待寫入固態(tài)硬盤時,將所有處于暫緩狀態(tài)的待寫入數(shù)據(jù)從當(dāng)前待寫入?yún)^(qū)塊的待寫入位置開始寫入固態(tài)硬盤。
[0011]可選地,在將所有處于暫緩狀態(tài)的待寫入數(shù)據(jù)從當(dāng)前待寫入?yún)^(qū)塊的待寫入位置開始寫入固態(tài)硬盤的過程中,使得所有處于暫緩狀態(tài)的待寫入數(shù)據(jù)中屬于相同生命周期組的待寫入數(shù)據(jù)被相繼地依次寫入固態(tài)硬盤。
[0012]可選地,待寫入數(shù)據(jù)是文件的形式,其中,步驟(C)還包括:檢測當(dāng)前是否正在向固態(tài)硬盤寫入數(shù)據(jù),其中,當(dāng)當(dāng)前沒有向固態(tài)硬盤寫入數(shù)據(jù)時,執(zhí)行步驟(Cl)。
[0013]可選地,待寫入數(shù)據(jù)的生命周期信息指示待寫入數(shù)據(jù)的生命周期長度或刪除時間。
[0014]可選地,刪除時間位于同一垃圾回收周期的待寫入數(shù)據(jù)屬于相同的生命周期組。
[0015]可選地,具有相同和/或相似的生命周期信息的待寫入數(shù)據(jù)屬于相同的生命周期組。
[0016]根據(jù)本發(fā)明的另一方面,提供一種向固態(tài)硬盤寫入數(shù)據(jù)的設(shè)備,包括:生命周期信息確定單元,確定待寫入數(shù)據(jù)的生命周期信息;生命周期組確定單元,根據(jù)待寫入數(shù)據(jù)的生命周期信息確定待寫入數(shù)據(jù)所屬的生命周期組;數(shù)據(jù)寫入單元,根據(jù)待寫入數(shù)據(jù)所屬的生命周期組將待寫入數(shù)據(jù)寫入固態(tài)硬盤。
[0017]可選地,在固態(tài)硬盤中為各個生命周期組分別劃分對應(yīng)的區(qū)塊,其中,數(shù)據(jù)寫入單元將待寫入數(shù)據(jù)寫入固態(tài)硬盤中與待寫入數(shù)據(jù)所屬的生命周期組對應(yīng)的區(qū)塊。
[0018]可選地,當(dāng)存在多個待寫入數(shù)據(jù)時,數(shù)據(jù)寫入單元使得屬于相同生命周期組的待寫入數(shù)據(jù)被相繼地依次寫入固態(tài)硬盤。
[0019]可選地,數(shù)據(jù)寫入單元包括:判斷單元,判斷待寫入數(shù)據(jù)所屬的生命周期組與固態(tài)硬盤中的當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組是否相同;寫入單元,當(dāng)待寫入數(shù)據(jù)所屬的生命周期組與當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組相同時,將待寫入數(shù)據(jù)從當(dāng)前待寫入?yún)^(qū)塊的待寫入位置開始寫入固態(tài)硬盤;暫緩單元,當(dāng)待寫入數(shù)據(jù)所屬的生命周期組與當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組不同時,使得待寫入數(shù)據(jù)處于暫緩寫入狀態(tài)。
[0020]可選地,數(shù)據(jù)寫入單元還包括:第一檢測單元,在使得待寫入數(shù)據(jù)處于暫緩寫入狀態(tài)之后,檢測當(dāng)前是否有新的待寫入數(shù)據(jù)等待寫入固態(tài)硬盤,其中,當(dāng)當(dāng)前有新的待寫入數(shù)據(jù)等待寫入固態(tài)硬盤時,生命周期信息確定單元確定該新的待寫入數(shù)據(jù)的生命周期信息;當(dāng)當(dāng)前沒有新的待寫入數(shù)據(jù)等待寫入固態(tài)硬盤時,寫入單元將所有處于暫緩狀態(tài)的待寫入數(shù)據(jù)從當(dāng)前待寫入?yún)^(qū)塊的待寫入位置開始寫入固態(tài)硬盤。
[0021]可選地,寫入單元在將所有處于暫緩狀態(tài)的待寫入數(shù)據(jù)從當(dāng)前待寫入?yún)^(qū)塊的待寫入位置開始寫入固態(tài)硬盤的過程中,使得所有處于暫緩狀態(tài)的待寫入數(shù)據(jù)中屬于相同生命周期組的待寫入數(shù)據(jù)被相繼地依次寫入固態(tài)硬盤。
[0022]可選地,待寫入數(shù)據(jù)是文件的形式,其中,數(shù)據(jù)寫入單元還包括:第二檢測單元,檢測當(dāng)前是否正在向固態(tài)硬盤寫入數(shù)據(jù),其中,當(dāng)當(dāng)前沒有向固態(tài)硬盤寫入數(shù)據(jù)時,判斷單元判斷待寫入數(shù)據(jù)所屬的生命周期組與固態(tài)硬盤中的當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組是否相同。
[0023]可選地,待寫入數(shù)據(jù)的生命周期信息指示待寫入數(shù)據(jù)的生命周期長度或刪除時間。
[0024]可選地,刪除時間位于同一垃圾回收周期的待寫入數(shù)據(jù)屬于相同的生命周期組。
[0025]可選地,具有相同和/或相似的生命周期信息的待寫入數(shù)據(jù)屬于相同的生命周期組。
[0026]根據(jù)本發(fā)明示例性實施例的向固態(tài)硬盤寫入數(shù)據(jù)的方法及設(shè)備,可以將具有相同或相似的生命周期長度或刪除時間的數(shù)據(jù)寫入固態(tài)硬盤中的同一區(qū)塊內(nèi),使得在對固態(tài)硬盤進(jìn)行垃圾回收時能夠有效減少需要搬移的有效數(shù)據(jù),從而提高固態(tài)硬盤的性能、延長固態(tài)硬盤的使用壽命。
[0027]將在接下來的描述中部分闡述本發(fā)明總體構(gòu)思另外的方面和/或優(yōu)點,還有一部分通過描述將是清楚的,或者可以經(jīng)過本發(fā)明總體構(gòu)思的實施而得知。
【專利附圖】
【附圖說明】
[0028]通過下面結(jié)合示例性地示出實施例的附圖進(jìn)行的描述,本發(fā)明示例性實施例的上述和其他目的和特點將會變得更加清楚,其中:
[0029]圖1示出根據(jù)本發(fā)明示例性實施例的向固態(tài)硬盤寫入數(shù)據(jù)的方法的流程圖;
[0030]圖2示出根據(jù)本發(fā)明的一個優(yōu)選示例性實施例的將待寫入數(shù)據(jù)寫入固態(tài)硬盤的方法的流程圖;
[0031]圖3示出根據(jù)本發(fā)明示例性實施例的向固態(tài)硬盤寫入數(shù)據(jù)的設(shè)備的框圖;
[0032]圖4示出根據(jù)本發(fā)明的一個優(yōu)選示例性實施例的數(shù)據(jù)寫入單元的框圖。
【具體實施方式】
[0033]現(xiàn)將詳細(xì)參照本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中,相同的標(biāo)號始終指的是相同的部件。以下將通過參照附圖來說明所述實施例,以便解釋本發(fā)明。
[0034]圖1示出根據(jù)本發(fā)明示例性實施例的向固態(tài)硬盤寫入數(shù)據(jù)的方法的流程圖。
[0035]如圖1所示,在步驟S10,確定待寫入數(shù)據(jù)的生命周期信息。這里,待寫入數(shù)據(jù)可以以各種數(shù)據(jù)單位的形式存在,例如,文件、字段、字節(jié)、比特以及其他的具有各種數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。本發(fā)明對待寫入數(shù)據(jù)的具體單位不做限定。生命周期信息是能夠指示數(shù)據(jù)的生命周期長度(即,存儲時間長度)或刪除時間的信息。在一個實施例中,生命周期信息指示數(shù)據(jù)的存儲時間長度。在一個優(yōu)選實施例中,生命周期信息指示數(shù)據(jù)的刪除時間??梢愿鶕?jù)數(shù)據(jù)的特性來確定數(shù)據(jù)的生命周期信息。
[0036]例如,對于一些應(yīng)用或系統(tǒng),可能需要周期性地對一些數(shù)據(jù)進(jìn)行更新或刪除。因此,可以定量地確定出這些數(shù)據(jù)的生命周期信息。
[0037]此外,也可以根據(jù)數(shù)據(jù)在固態(tài)硬盤中的邏輯存儲單位來確定數(shù)據(jù)的生命周期信息。例如,當(dāng)邏輯存儲單位是文件時,屬于同一文件內(nèi)的數(shù)據(jù)具有相同的生命周期信息,如果兩數(shù)據(jù)所屬的文件是同一文件,則可確定兩數(shù)據(jù)的生命周期信息相同。
[0038]此外,對數(shù)據(jù)的生命周期信息與數(shù)據(jù)的屬性(例如,類型、用途、來源等)的各種組合的關(guān)系進(jìn)行統(tǒng)計或者訓(xùn)練,從而也可以利用數(shù)據(jù)的屬性定性地確定出數(shù)據(jù)的生命周期信息。這在一些固態(tài)硬盤的使用場景較為固定或重復(fù)的情況下,較為容易實現(xiàn)。
[0039]應(yīng)該理解,可以通過各種方式來獲取數(shù)據(jù)的生命周期信息,本發(fā)明對此不做限制。
[0040]在一個示例中,可利用RocksDB系統(tǒng)中數(shù)據(jù)的層信息作為數(shù)據(jù)的生命周期信息。在RocksDB系統(tǒng)中,在進(jìn)行層壓縮(level compact1n)時,是通過將相鄰兩層的數(shù)據(jù)進(jìn)行合并來實現(xiàn)的,由于合并時涉及到對本層大部分?jǐn)?shù)據(jù)的操作,因此,同一層內(nèi)的數(shù)據(jù)具有相同或相似的生命周期。通過對數(shù)據(jù)的生成時間和刪除時間的統(tǒng)計,得到每一層所存儲的數(shù)據(jù)大部分具有相同或相似的刪除時間。因此,如果兩數(shù)據(jù)的用于指示數(shù)據(jù)所屬的層的信息相同,則可確定兩數(shù)據(jù)具有相同或相似的刪除時間。
[0041]在另一示例中,可利用Cassandra系統(tǒng)中數(shù)據(jù)的數(shù)據(jù)類型作為數(shù)據(jù)的生命周期信息。在Cassandra系統(tǒng)中,大部分?jǐn)?shù)據(jù)屬于以下三種數(shù)據(jù)類型中的一種:元數(shù)據(jù)、日志文件和SST文件。其中,元數(shù)據(jù)更新頻繁,每次數(shù)據(jù)庫操作都可能對其進(jìn)行更改,因此,元數(shù)據(jù)的生命周期較短。日志文件是為了數(shù)據(jù)庫的可靠性而存在的,在數(shù)據(jù)通過存儲系統(tǒng)定時從內(nèi)存固化到固態(tài)硬盤后即可刪除,因此,日志文件中的數(shù)據(jù)的生命周期中等。SST文件用于放置真正的數(shù)據(jù),因此,SST文件的生命周期較長。
[0042]在另一示例中,可利用指示數(shù)據(jù)所指示的對象的信息作為數(shù)據(jù)的生命周期信息。由于數(shù)據(jù)所指示的對象一般與數(shù)據(jù)的生命周期長度或刪除時間相應(yīng),因此,可根據(jù)數(shù)據(jù)所指示的對象來獲知數(shù)據(jù)的生命周期信息。例如,在用于游戲管理系統(tǒng)的存儲系統(tǒng)中,如果數(shù)據(jù)所指示的對象是用戶ID、用戶注冊信息等,一旦創(chuàng)建就不會再更新,則指示該對象的數(shù)據(jù)的生命周期較長;如果數(shù)據(jù)所指示的對象是游戲玩家的經(jīng)驗或金錢等,由于該數(shù)據(jù)與每次游戲操作相關(guān),更新頻繁,則指示該對象的數(shù)據(jù)生命周期較短;如果數(shù)據(jù)所指示的對象是用戶的排名等,該數(shù)據(jù)需要按小時或天進(jìn)行更新,則指示該對象的數(shù)據(jù)生命周期中等。
[0043]在另一示例中,可利用指示數(shù)據(jù)的來源的信息作為數(shù)據(jù)的生命周期信息,S卩,可通過數(shù)據(jù)的來源來獲知數(shù)據(jù)的生命周期信息。例如,在云存儲系統(tǒng)中,根據(jù)數(shù)據(jù)的來源可將數(shù)據(jù)分為用戶上傳的數(shù)據(jù)和內(nèi)部管理的數(shù)據(jù)。內(nèi)部管理的數(shù)據(jù)(例如,包括索引、分布路徑等)跟所有用戶的操作相關(guān),更新頻繁,因此,生命周期較短。而用戶上傳的數(shù)據(jù),只和該用戶相關(guān),修改頻率較低,可認(rèn)為生命周期較長?;蛘?,可按照用戶的操作習(xí)慣來預(yù)測各用戶所存的數(shù)據(jù)的生命周期,例如,如果用戶習(xí)慣將數(shù)據(jù)上傳后長時間不對其進(jìn)行修改等操作,則可預(yù)測該用戶所上傳的所有數(shù)據(jù)的生命周期都較長;而如果用戶習(xí)慣將數(shù)據(jù)上傳后時常對其進(jìn)行修改、刪除等操作,則可預(yù)測該用戶所上傳的所有數(shù)據(jù)的生命周期都較短。
[0044]此外,應(yīng)該理解,其他的能夠用來指示數(shù)據(jù)的生命周期長度或刪除時間的信息均可作為數(shù)據(jù)的生命周期信息,對此不做限制。
[0045]在步驟S20,根據(jù)待寫入數(shù)據(jù)的生命周期信息確定待寫入數(shù)據(jù)所屬的生命周期組。
[0046]這里,具有相同和/或相似的生命周期信息的數(shù)據(jù)屬于相同的生命周期組。
[0047]例如,當(dāng)生命周期信息是RocksDB系統(tǒng)中數(shù)據(jù)的層信息時,具有相同的層信息的數(shù)據(jù)屬于同一生命周期組。當(dāng)生命周期信息是Cassandra系統(tǒng)中數(shù)據(jù)的數(shù)據(jù)類型時,具有相同的數(shù)據(jù)類型的數(shù)據(jù)屬于同一生命周期組。當(dāng)生命周期信息是指示數(shù)據(jù)所指示的對象的信息時,指示相同的對象的數(shù)據(jù)屬于同一生命周期組。當(dāng)生命周期信息是數(shù)據(jù)的來源時,具有相同的來源的數(shù)據(jù)屬于同一生命周期組。
[0048]此外,當(dāng)生命周期信息指示刪除時間時,刪除時間位于同一垃圾回收周期的數(shù)據(jù)屬于相同的生命周期組。
[0049]在步驟S30,根據(jù)待寫入數(shù)據(jù)所屬的生命周期組將待寫入數(shù)據(jù)寫入固態(tài)硬盤。SP,通過考慮待寫入數(shù)據(jù)所屬的生命周期組來確定如何將待寫入數(shù)據(jù)寫入固態(tài)硬盤。
[0050]在一個示例中,可預(yù)先在固態(tài)硬盤中為各個生命周期組分別劃分對應(yīng)的區(qū)塊,在執(zhí)行步驟S30時,可將待寫入數(shù)據(jù)寫入固態(tài)硬盤中與待寫入數(shù)據(jù)所屬的生命周期組對應(yīng)的區(qū)塊。即,可通過預(yù)先設(shè)置,使固態(tài)硬盤的各個區(qū)塊分別與一個生命周期組相對應(yīng),在寫入數(shù)據(jù)時即可將屬于某一生命周期組的數(shù)據(jù)寫入與該組對應(yīng)的區(qū)塊,從而保證了同一區(qū)塊內(nèi)所存儲的數(shù)據(jù)都屬于相同的生命周期組,即,同一區(qū)塊內(nèi)所存儲的數(shù)據(jù)具有相同或相近的生命周期長度和/或刪除時間。
[0051]在另一示例中,當(dāng)存在多個待寫入數(shù)據(jù)時,可使得屬于相同生命周期組的待寫入數(shù)據(jù)被相繼地依次寫入固態(tài)硬盤,以盡量保證屬于相同生命組的數(shù)據(jù)被寫到同一區(qū)塊內(nèi)。換言之,在進(jìn)行寫入時,使得屬于相同生命周期組的數(shù)據(jù)被排列在一起順序?qū)懭搿?br>
[0052]例如,可根據(jù)數(shù)據(jù)所屬的生命周期組對多個待寫入數(shù)據(jù)進(jìn)行排序(例如,可先對屬于第一生命周期組的數(shù)據(jù)排序,接下來對屬于第二生命組的數(shù)據(jù)排序,最后對屬于第三生命周期組的數(shù)據(jù)排序),并按照排序?qū)⒋龑懭氲臄?shù)據(jù)相繼地依次寫入固態(tài)硬盤。
[0053]圖2示出根據(jù)本發(fā)明的一個優(yōu)選示例性實施例的將待寫入數(shù)據(jù)寫入固態(tài)硬盤的方法的流程圖。
[0054]如圖2所示,在步驟S301,判斷待寫入數(shù)據(jù)所屬的生命周期組與固態(tài)硬盤中的當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組是否相同。
[0055]例如,可根據(jù)當(dāng)前待寫入?yún)^(qū)塊內(nèi)最后被寫入的數(shù)據(jù)所屬的生命周期組確定當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組。也可根據(jù)當(dāng)前待寫入?yún)^(qū)塊內(nèi)大部分被寫入的數(shù)據(jù)所屬的生命周期組確定當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組。
[0056]在步驟S302,當(dāng)待寫入數(shù)據(jù)所屬的生命周期組與當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組相同時,將待寫入數(shù)據(jù)從當(dāng)前待寫入?yún)^(qū)塊的待寫入位置開始寫入固態(tài)硬盤。以盡量保證屬于相同生命組的數(shù)據(jù)被寫到同一區(qū)塊內(nèi)。
[0057]在步驟S303,當(dāng)待寫入數(shù)據(jù)所屬的生命周期組與當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組不同時,使得待寫入數(shù)據(jù)處于暫緩寫入狀態(tài)。即,由于待寫入數(shù)據(jù)所屬的生命周期組與當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組不同,暫不寫入該待寫入數(shù)據(jù)。
[0058]在一個示例中,在步驟S303之后,可檢測當(dāng)前是否有新的待寫入數(shù)據(jù)等待寫入固態(tài)硬盤,其中,當(dāng)當(dāng)前有新的待寫入數(shù)據(jù)等待寫入固態(tài)硬盤時,針對該新的待寫入數(shù)據(jù)返回執(zhí)行步驟S10;當(dāng)當(dāng)前沒有新的待寫入數(shù)據(jù)等待寫入固態(tài)硬盤時,將所有處于暫緩狀態(tài)的待寫入數(shù)據(jù)從當(dāng)前待寫入?yún)^(qū)塊的待寫入位置開始寫入固態(tài)硬盤。具體說來,如果當(dāng)前有新的待寫入數(shù)據(jù)等待寫入固態(tài)硬盤,則針對該新的待寫入數(shù)據(jù)返回執(zhí)行步驟S10-S30,如果當(dāng)前沒有新的待寫入數(shù)據(jù)等待寫入固態(tài)硬盤,則只能將處于暫緩狀態(tài)的待寫入數(shù)據(jù)從當(dāng)前待寫入?yún)^(qū)塊的待寫入位置開始寫入固態(tài)硬盤。
[0059]優(yōu)選地,在將所有處于暫緩狀態(tài)的待寫入數(shù)據(jù)從當(dāng)前待寫入?yún)^(qū)塊的待寫入位置開始寫入固態(tài)硬盤的過程中,使得所有處于暫緩狀態(tài)的待寫入數(shù)據(jù)中屬于相同生命周期組的待寫入數(shù)據(jù)被相繼地依次寫入固態(tài)硬盤。盡量保證屬于相同生命組的數(shù)據(jù)被相鄰地保存在固態(tài)硬盤中,以盡可能讓同一區(qū)塊內(nèi)的數(shù)據(jù)的生命周期長度或刪除時間相同或相似。
[0060]此外,根據(jù)本發(fā)明的一個優(yōu)選示例性實施例的將待寫入數(shù)據(jù)寫入固態(tài)硬盤的方法還可包括:當(dāng)待寫入數(shù)據(jù)是文件的形式時,檢測當(dāng)前是否正在向固態(tài)硬盤寫入數(shù)據(jù),其中,當(dāng)當(dāng)前沒有向固態(tài)硬盤寫入數(shù)據(jù)時,執(zhí)行步驟S301,當(dāng)當(dāng)前正在向固態(tài)硬盤寫入數(shù)據(jù)時,則待數(shù)據(jù)寫完之后再執(zhí)行步驟S301。即,只有當(dāng)當(dāng)前沒有在向固態(tài)硬盤寫入數(shù)據(jù)時,才執(zhí)行步驟S301,從而保證同一文件內(nèi)的數(shù)據(jù)被連續(xù)地存入固態(tài)硬盤中連續(xù)的存儲位置。由于同一文件內(nèi)的數(shù)據(jù)具有相同或相似的生命周期長度或刪除時間,從而盡可能地使得同一區(qū)塊內(nèi)的數(shù)據(jù)具有相同或相似的生命周期長度或刪除時間。
[0061]根據(jù)待寫入數(shù)據(jù)所屬的生命周期組將待寫入數(shù)據(jù)相應(yīng)地寫入固態(tài)硬盤,能夠保證固態(tài)硬盤中各區(qū)塊內(nèi)所寫入的數(shù)據(jù)屬于同一生命周期組,由于屬于同一生命周期組的數(shù)據(jù)具有相同和/或相似的生命周期長度或刪除時間,從而盡可能使固態(tài)硬盤的各區(qū)塊內(nèi)的數(shù)據(jù)具有相同和/或相似的生命周期長度或刪除時間。因此,在對固態(tài)硬盤進(jìn)行垃圾回收時能夠有效減少需要搬移的有效數(shù)據(jù),以減少對固態(tài)硬盤的磨損,延長固態(tài)硬盤的使用壽命;提高固態(tài)硬盤的性能。
[0062]圖3示出根據(jù)本發(fā)明示例性實施例的向固態(tài)硬盤寫入數(shù)據(jù)的設(shè)備的框圖。
[0063]如圖3所示,根據(jù)本發(fā)明示例性實施例的向固態(tài)硬盤寫入數(shù)據(jù)的設(shè)備包括:生命周期信息確定單元10、生命周期組確定單元20和數(shù)據(jù)寫入單元30。
[0064]具體說來,生命周期信息確定單元10用于確定待寫入數(shù)據(jù)的生命周期信息。這里,待寫入數(shù)據(jù)可以以各種數(shù)據(jù)單位的形式存在,例如,文件、字段、字節(jié)、比特以及其他的具有各種數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。本發(fā)明對待寫入數(shù)據(jù)的具體單位不做限定。生命周期信息是能夠指示數(shù)據(jù)的生命周期長度(即,存儲時間長度)或刪除時間的信息。在一個實施例中,生命周期信息指示數(shù)據(jù)的存儲時間長度。在一個優(yōu)選實施例中,生命周期信息指示數(shù)據(jù)的刪除時間。可以根據(jù)數(shù)據(jù)的特性來確定數(shù)據(jù)的生命周期信息。
[0065]例如,對于一些應(yīng)用或系統(tǒng),可能需要周期性地對一些數(shù)據(jù)進(jìn)行更新或刪除。因此,可以定量地確定出這些數(shù)據(jù)的生命周期信息。
[0066]此外,也可以根據(jù)數(shù)據(jù)在固態(tài)硬盤中的邏輯存儲單位來確定數(shù)據(jù)的生命周期信息。例如,當(dāng)邏輯存儲單位是文件時,屬于同一文件內(nèi)的數(shù)據(jù)具有相同的生命周期信息,如果兩數(shù)據(jù)所屬的文件是同一文件,則可確定兩數(shù)據(jù)的生命周期信息相同。
[0067]此外,對數(shù)據(jù)的生命周期信息與數(shù)據(jù)的屬性(例如,類型、用途、來源等)的各種組合的關(guān)系進(jìn)行統(tǒng)計或者訓(xùn)練,從而也可以利用數(shù)據(jù)的屬性定性地確定出數(shù)據(jù)的生命周期信息。這在一些固態(tài)硬盤的使用場景較為固定或重復(fù)的情況下,較為容易實現(xiàn)。
[0068]應(yīng)該理解,可以通過各種方式來獲取數(shù)據(jù)的生命周期信息,本發(fā)明對此不做限制。
[0069]在一個示例中,可利用RocksDB系統(tǒng)中數(shù)據(jù)的層信息作為數(shù)據(jù)的生命周期信息。在RocksDB系統(tǒng)中,在進(jìn)行層壓縮(level compact1n)時,是通過將相鄰兩層的數(shù)據(jù)進(jìn)行合并來實現(xiàn)的,由于合并時涉及到對本層大部分?jǐn)?shù)據(jù)的操作,因此,同一層內(nèi)的數(shù)據(jù)具有相同或相似的生命周期。通過對數(shù)據(jù)的生成時間和刪除時間的統(tǒng)計,得到每一層所存儲的數(shù)據(jù)大部分具有相同或相似的刪除時間。因此,如果兩數(shù)據(jù)的用于指示數(shù)據(jù)所屬的層的信息相同,則可確定兩數(shù)據(jù)具有相同或相似的刪除時間。
[0070]在另一示例中,可利用Cassandra系統(tǒng)中數(shù)據(jù)的數(shù)據(jù)類型作為數(shù)據(jù)的生命周期信息。在Cassandra系統(tǒng)中,大部分?jǐn)?shù)據(jù)屬于以下三種數(shù)據(jù)類型中的一種:元數(shù)據(jù)、日志文件和SST文件。其中,元數(shù)據(jù)更新頻繁,每次數(shù)據(jù)庫操作都可能對其進(jìn)行更改,因此,元數(shù)據(jù)的生命周期較短。日志文件是為了數(shù)據(jù)庫的可靠性而存在的,在數(shù)據(jù)通過存儲系統(tǒng)定時從內(nèi)存固化到固態(tài)硬盤后即可刪除,因此,日志文件中的數(shù)據(jù)的生命周期中等。SST文件用于放置真正的數(shù)據(jù),因此,SST文件的生命周期較長。
[0071]在另一示例中,可利用指示數(shù)據(jù)所指示的對象的信息作為數(shù)據(jù)的生命周期信息。由于數(shù)據(jù)所指示的對象一般與數(shù)據(jù)的生命周期長度或刪除時間相應(yīng),因此,可根據(jù)數(shù)據(jù)所指示的對象來獲知數(shù)據(jù)的生命周期信息。例如,在用于游戲管理系統(tǒng)的存儲系統(tǒng)中,如果數(shù)據(jù)所指示的對象是用戶ID、用戶注冊信息等,一旦創(chuàng)建就不會再更新,則指示該對象的數(shù)據(jù)的生命周期較長;如果數(shù)據(jù)所指示的對象是游戲玩家的經(jīng)驗或金錢等,由于該數(shù)據(jù)與每次游戲操作相關(guān),更新頻繁,則指示該對象的數(shù)據(jù)生命周期較短;如果數(shù)據(jù)所指示的對象是用戶的排名等,該數(shù)據(jù)需要按小時或天進(jìn)行更新,則指示該對象的數(shù)據(jù)生命周期中等。
[0072]在另一示例中,可利用指示數(shù)據(jù)的來源的信息作為數(shù)據(jù)的生命周期信息,S卩,可通過數(shù)據(jù)的來源來獲知數(shù)據(jù)的生命周期信息。例如,在云存儲系統(tǒng)中,根據(jù)數(shù)據(jù)的來源可將數(shù)據(jù)分為用戶上傳的數(shù)據(jù)和內(nèi)部管理的數(shù)據(jù)。內(nèi)部管理的數(shù)據(jù)(例如,包括索引、分布路徑等)跟所有用戶的操作相關(guān),更新頻繁,因此,生命周期較短。而用戶上傳的數(shù)據(jù),只和該用戶相關(guān),修改頻率較低,可認(rèn)為生命周期較長。或者,可按照用戶的操作習(xí)慣來預(yù)測各用戶所存的數(shù)據(jù)的生命周期,例如,如果用戶習(xí)慣將數(shù)據(jù)上傳后長時間不對其進(jìn)行修改等操作,則可預(yù)測該用戶所上傳的所有數(shù)據(jù)的生命周期都較長;而如果用戶習(xí)慣將數(shù)據(jù)上傳后時常對其進(jìn)行修改、刪除等操作,則可預(yù)測該用戶所上傳的所有數(shù)據(jù)的生命周期都較短。
[0073]此外,應(yīng)該理解,其他的能夠用來指示數(shù)據(jù)的生命周期長度或刪除時間的信息均可作為數(shù)據(jù)的生命周期信息,對此不做限制。
[0074]生命周期組確定單元20用于根據(jù)待寫入數(shù)據(jù)的生命周期信息確定待寫入數(shù)據(jù)所屬的生命周期組。
[0075]這里,具有相同和/或相似的生命周期信息的數(shù)據(jù)屬于相同的生命周期組。
[0076]例如,當(dāng)生命周期信息是RocksDB系統(tǒng)中數(shù)據(jù)的層信息時,具有相同的層信息的數(shù)據(jù)屬于同一生命周期組。當(dāng)生命周期信息是Cassandra系統(tǒng)中數(shù)據(jù)的數(shù)據(jù)類型時,具有相同的數(shù)據(jù)類型的數(shù)據(jù)屬于同一生命周期組。當(dāng)生命周期信息是指示數(shù)據(jù)所指示的對象的信息時,指示相同的對象的數(shù)據(jù)屬于同一生命周期組。當(dāng)生命周期信息是數(shù)據(jù)的來源時,具有相同的來源的數(shù)據(jù)屬于同一生命周期組。
[0077]此外,當(dāng)生命周期信息指示刪除時間時,刪除時間位于同一垃圾回收周期的數(shù)據(jù)屬于相同的生命周期組。
[0078]數(shù)據(jù)寫入單元30用于根據(jù)待寫入數(shù)據(jù)所屬的生命周期組將待寫入數(shù)據(jù)寫入固態(tài)硬盤。即,通過考慮待寫入數(shù)據(jù)所屬的生命周期組來確定如何將待寫入數(shù)據(jù)寫入固態(tài)硬盤。
[0079]在一個示例中,可預(yù)先在固態(tài)硬盤中為各個生命周期組分別劃分對應(yīng)的區(qū)塊,數(shù)據(jù)寫入單元30可將待寫入數(shù)據(jù)寫入固態(tài)硬盤中與待寫入數(shù)據(jù)所屬的生命周期組對應(yīng)的區(qū)塊。即,可通過預(yù)先設(shè)置,使固態(tài)硬盤的各個區(qū)塊分別與一個生命周期組相對應(yīng),在寫入數(shù)據(jù)時即可將屬于某一生命周期組的數(shù)據(jù)寫入與該組對應(yīng)的區(qū)塊,從而保證了同一區(qū)塊內(nèi)所存儲的數(shù)據(jù)都屬于相同的生命周期組,即,同一區(qū)塊內(nèi)所存儲的數(shù)據(jù)具有相同或相近的生命周期長度和/或刪除時間。
[0080]在另一示例中,當(dāng)存在多個待寫入數(shù)據(jù)時,數(shù)據(jù)寫入單元30可使得屬于相同生命周期組的待寫入數(shù)據(jù)被相繼地依次寫入固態(tài)硬盤,以盡量保證屬于相同生命組的數(shù)據(jù)被寫到同一區(qū)塊內(nèi)。換言之,在進(jìn)行寫入時,使得屬于相同生命周期組的數(shù)據(jù)被排列在一起順序?qū)懭搿?br>
[0081]例如,數(shù)據(jù)寫入單元30可根據(jù)數(shù)據(jù)所屬的生命周期組對多個待寫入數(shù)據(jù)進(jìn)行排序(例如,可先對屬于第一生命周期組的數(shù)據(jù)排序,接下來對屬于第二生命組的數(shù)據(jù)排序,最后對屬于第三生命周期組的數(shù)據(jù)排序),并按照排序?qū)⒋龑懭氲臄?shù)據(jù)相繼地依次寫入固態(tài)硬盤。
[0082]圖4示出根據(jù)本發(fā)明的一個優(yōu)選示例性實施例的數(shù)據(jù)寫入單元的框圖。
[0083]如圖4所示,根據(jù)本發(fā)明的一個優(yōu)選示例性實施例的數(shù)據(jù)寫入單元30包括:判斷單元301、寫入單元302和暫緩單元303。
[0084]具體說來,判斷單元301用于判斷待寫入數(shù)據(jù)所屬的生命周期組與固態(tài)硬盤中的當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組是否相同。
[0085]例如,判斷單元301可根據(jù)當(dāng)前待寫入?yún)^(qū)塊內(nèi)最后被寫入的數(shù)據(jù)所屬的生命周期組確定當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組。也可根據(jù)當(dāng)前待寫入?yún)^(qū)塊內(nèi)大部分被寫入的數(shù)據(jù)所屬的生命周期組確定當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組。
[0086]寫入單元302用于當(dāng)判斷單元301判斷出待寫入數(shù)據(jù)所屬的生命周期組與當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組相同時,將待寫入數(shù)據(jù)從當(dāng)前待寫入?yún)^(qū)塊的待寫入位置開始寫入固態(tài)硬盤。以盡量保證屬于相同生命組的數(shù)據(jù)被寫到同一區(qū)塊內(nèi)。
[0087]暫緩單元303用于當(dāng)判斷單元301判斷出待寫入數(shù)據(jù)所屬的生命周期組與當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組不同時,使得待寫入數(shù)據(jù)處于暫緩寫入狀態(tài)。即,由于待寫入數(shù)據(jù)所屬的生命周期組與當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組不同,暫不寫入該待寫入數(shù)據(jù)。
[0088]在一個示例中,根據(jù)本發(fā)明的一個優(yōu)選示例性實施例的數(shù)據(jù)寫入單元30還可包括:第一檢測單元(未示出)。第一檢測單元用于在暫緩單元使得待寫入數(shù)據(jù)處于暫緩寫入狀態(tài)之后,檢測當(dāng)前是否有新的待寫入數(shù)據(jù)等待寫入固態(tài)硬盤,其中,當(dāng)當(dāng)前有新的待寫入數(shù)據(jù)等待寫入固態(tài)硬盤時,生命周期信息確定單元確定該新的待寫入數(shù)據(jù)的生命周期信息;當(dāng)當(dāng)前沒有新的待寫入數(shù)據(jù)等待寫入固態(tài)硬盤時,寫入單元302將所有處于暫緩狀態(tài)的待寫入數(shù)據(jù)從當(dāng)前待寫入?yún)^(qū)塊的待寫入位置開始寫入固態(tài)硬盤。
[0089]優(yōu)選地,寫入單元302在將所有處于暫緩狀態(tài)的待寫入數(shù)據(jù)從當(dāng)前待寫入?yún)^(qū)塊的待寫入位置開始寫入固態(tài)硬盤的過程中,使得所有處于暫緩狀態(tài)的待寫入數(shù)據(jù)中屬于相同生命周期組的待寫入數(shù)據(jù)被相繼地依次寫入固態(tài)硬盤。盡量保證屬于相同生命組的數(shù)據(jù)被相鄰地保存在固態(tài)硬盤中,以盡可能讓同一區(qū)塊內(nèi)的數(shù)據(jù)的生命周期長度或刪除時間相同或相似。
[0090]此外,在一個示例中,根據(jù)本發(fā)明的一個優(yōu)選示例性實施例的數(shù)據(jù)寫入單元30還可包括:第二檢測單元(未示出)。第二檢測單元用于當(dāng)待寫入數(shù)據(jù)是文件的形式時,檢測當(dāng)前是否正在向固態(tài)硬盤寫入數(shù)據(jù),其中,當(dāng)當(dāng)前沒有向固態(tài)硬盤寫入數(shù)據(jù)時,判斷單元判斷待寫入數(shù)據(jù)所屬的生命周期組與固態(tài)硬盤中的當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組是否相同,當(dāng)當(dāng)前正在向固態(tài)硬盤寫入數(shù)據(jù)時,則待數(shù)據(jù)寫完之后再由判斷單元判斷待寫入數(shù)據(jù)所屬的生命周期組與固態(tài)硬盤中的當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組是否相同。即,只有當(dāng)當(dāng)前沒有在向固態(tài)硬盤寫入數(shù)據(jù)時,才由判斷單元判斷待寫入數(shù)據(jù)所屬的生命周期組與固態(tài)硬盤中的當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組是否相同,從而保證同一文件內(nèi)的數(shù)據(jù)被連續(xù)地存入固態(tài)硬盤中連續(xù)的存儲位置。由于同一文件內(nèi)的數(shù)據(jù)具有相同或相似的生命周期長度或刪除時間,從而盡可能地使得同一區(qū)塊內(nèi)的數(shù)據(jù)具有相同或相似的生命周期長度或刪除時間。
[0091]數(shù)據(jù)寫入單元30根據(jù)待寫入數(shù)據(jù)所屬的生命周期組將待寫入數(shù)據(jù)相應(yīng)地寫入固態(tài)硬盤,能夠保證固態(tài)硬盤中各區(qū)塊內(nèi)所寫入的數(shù)據(jù)屬于同一生命周期組,由于屬于同一生命周期組的數(shù)據(jù)具有相同和/或相似的生命周期長度或刪除時間,從而盡可能使固態(tài)硬盤的各區(qū)塊內(nèi)的數(shù)據(jù)具有相同和/或相似的生命周期長度或刪除時間。因此,在對固態(tài)硬盤進(jìn)行垃圾回收時能夠有效減少需要搬移的有效數(shù)據(jù),以減少對固態(tài)硬盤的磨損,延長固態(tài)硬盤的使用壽命;提高固態(tài)硬盤在相同的數(shù)據(jù)寫入量下的使用時間,提高固態(tài)硬盤的性倉泛。
[0092]此外,根據(jù)本發(fā)明的示例性實施例的上述方法可以被實現(xiàn)為計算機(jī)程序,從而當(dāng)運(yùn)行該程序時,實現(xiàn)上述方法。根據(jù)本發(fā)明的示例性實施例的向固態(tài)硬盤寫入數(shù)據(jù)的設(shè)備中的各個單元可被實現(xiàn)硬件組件。本領(lǐng)域技術(shù)人員根據(jù)限定的各個單元所執(zhí)行的處理,可以例如使用現(xiàn)場可編程門陣列(FPGA)或?qū)S眉呻娐?ASIC)來實現(xiàn)各個單元。
[0093]根據(jù)本發(fā)明示例性實施例的向固態(tài)硬盤寫入數(shù)據(jù)的方法及設(shè)備,可以將具有相同或相似的生命周期長度或刪除時間的數(shù)據(jù)寫入固態(tài)硬盤中的同一區(qū)塊內(nèi),使得在對固態(tài)硬盤進(jìn)行垃圾回收時能夠有效減少需要搬移的有效數(shù)據(jù),從而提高固態(tài)硬盤的性能、延長固態(tài)硬盤的使用壽命。
[0094]雖然已表示和描述了本發(fā)明的一些示例性實施例,但本領(lǐng)域技術(shù)人員應(yīng)該理解,在不脫離由權(quán)利要求及其等同物限定其范圍的本發(fā)明的原理和精神的情況下,可以對這些實施例進(jìn)行修改。
【權(quán)利要求】
1.一種向固態(tài)硬盤寫入數(shù)據(jù)的方法,包括: (A)確定待寫入數(shù)據(jù)的生命周期信息; (B)根據(jù)待寫入數(shù)據(jù)的生命周期信息確定待寫入數(shù)據(jù)所屬的生命周期組; (C)根據(jù)待寫入數(shù)據(jù)所屬的生命周期組將待寫入數(shù)據(jù)寫入固態(tài)硬盤。
2.如權(quán)利要求1所述的方法,其中,在固態(tài)硬盤中為各個生命周期組分別劃分對應(yīng)的區(qū)塊,其中,步驟(C)包括: 將待寫入數(shù)據(jù)寫入固態(tài)硬盤中與待寫入數(shù)據(jù)所屬的生命周期組對應(yīng)的區(qū)塊。
3.如權(quán)利要求1所述的方法,其中,步驟(C)包括: 當(dāng)存在多個待寫入數(shù)據(jù)時,使得屬于相同生命周期組的待寫入數(shù)據(jù)被相繼地依次寫入固態(tài)硬盤。
4.如權(quán)利要求1所述的方法,其中,步驟(C)包括: (Cl)判斷待寫入數(shù)據(jù)所屬的生命周期組與固態(tài)硬盤中的當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組是否相同; (C2)當(dāng)待寫入數(shù)據(jù)所屬的生命周期組與當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組相同時,將待寫入數(shù)據(jù)從當(dāng)前待寫入?yún)^(qū)塊的待寫入位置開始寫入固態(tài)硬盤; (C3)當(dāng)待寫入數(shù)據(jù)所屬的生命周期組與當(dāng)前待寫入?yún)^(qū)塊內(nèi)已被寫入的數(shù)據(jù)所屬的生命周期組不同時,使得待寫入數(shù)據(jù)處于暫緩寫入狀態(tài)。
5.如權(quán)利要求4所述的方法,其中,步驟(C)還包括: 在步驟(C3)之后,檢測當(dāng)前是否有新的待寫入數(shù)據(jù)等待寫入固態(tài)硬盤, 其中,當(dāng)當(dāng)前有新的待寫入數(shù)據(jù)等待寫入固態(tài)硬盤時,針對該新的待寫入數(shù)據(jù)返回執(zhí)行步驟(A);當(dāng)當(dāng)前沒有新的待寫入數(shù)據(jù)等待寫入固態(tài)硬盤時,將所有處于暫緩狀態(tài)的待寫入數(shù)據(jù)從當(dāng)前待寫入?yún)^(qū)塊的待寫入位置開始寫入固態(tài)硬盤。
6.如權(quán)利要求5所述的方法,其中,在將所有處于暫緩狀態(tài)的待寫入數(shù)據(jù)從當(dāng)前待寫入?yún)^(qū)塊的待寫入位置開始寫入固態(tài)硬盤的過程中,使得所有處于暫緩狀態(tài)的待寫入數(shù)據(jù)中屬于相同生命周期組的待寫入數(shù)據(jù)被相繼地依次寫入固態(tài)硬盤。
7.如權(quán)利要求4所述的方法,其中,待寫入數(shù)據(jù)是文件的形式,其中,步驟(C)還包括: 檢測當(dāng)前是否正在向固態(tài)硬盤寫入數(shù)據(jù), 其中,當(dāng)當(dāng)前沒有向固態(tài)硬盤寫入數(shù)據(jù)時,執(zhí)行步驟(Cl)。
8.如權(quán)利要求1所述的方法,其中,待寫入數(shù)據(jù)的生命周期信息指示待寫入數(shù)據(jù)的生命周期長度或刪除時間。
9.如權(quán)利要求8所述的方法,其中,刪除時間位于同一垃圾回收周期的待寫入數(shù)據(jù)屬于相同的生命周期組。
10.如權(quán)利要求1所述的方法,其中,具有相同和/或相似的生命周期信息的待寫入數(shù)據(jù)屬于相同的生命周期組。
11.一種向固態(tài)硬盤寫入數(shù)據(jù)的設(shè)備,包括: 生命周期信息確定單元,確定待寫入數(shù)據(jù)的生命周期信息; 生命周期組確定單元,根據(jù)待寫入數(shù)據(jù)的生命周期信息確定待寫入數(shù)據(jù)所屬的生命周期組; 數(shù)據(jù)寫入單元,根據(jù)待寫入數(shù)據(jù)所屬的生命周期組將待寫入數(shù)據(jù)寫入固態(tài)硬盤。
【文檔編號】G06F3/06GK104391661SQ201410768099
【公開日】2015年3月4日 申請日期:2014年12月12日 優(yōu)先權(quán)日:2014年12月12日
【發(fā)明者】楊飛, 豆坤, 陳思羽, 唐海波, 李娜, 侯夢薇, 段明立 申請人:西安三星電子研究有限公司, 三星電子株式會社