管理對存儲數(shù)據(jù)單元的操作的制作方法
【專利說明】
[0001] 相關申請的交叉引用
[0002] 本申請要求享有2013年3月6日提交的13/787, 055號美國專利申請的優(yōu)先權。
技術領域
[0003] 本申請涉及管理對存儲數(shù)據(jù)單元的操作。
【背景技術】
[0004] 數(shù)據(jù)存儲系統(tǒng)提供各種操作以存儲、檢索或刪除數(shù)據(jù)單元(dataunit)。"數(shù)據(jù) 單元"是指由可檢索的存儲數(shù)據(jù)代表的信息單元(例如,一個數(shù)據(jù)單元可表示一條單獨記 錄)。不同系統(tǒng)可采用不同存儲格式和不同技術來執(zhí)行上述操作。例如,對于一些系統(tǒng)而言, 刪除數(shù)據(jù)單元可能會涉及到刪除用來定位該數(shù)據(jù)單元的指針(pointer)或索引項,或者可 能會涉及到覆蓋該數(shù)據(jù)單元。數(shù)據(jù)單元可單獨存儲,也可存儲在包括多個數(shù)據(jù)單元(以相 同或不同的表示法)的"數(shù)據(jù)塊"(或"數(shù)據(jù)的塊"或"壓縮塊")之內(nèi)。有些系統(tǒng)提供諸如數(shù) 據(jù)壓縮和數(shù)據(jù)加密的特征,這些特征會影響上述操作的實施,甚至會支持上述操作。例如, 包括壓縮到單一數(shù)據(jù)塊的多個數(shù)據(jù)單元的存儲格式可能會支持壓縮塊的群組的刪除(例 如,舊塊或過期塊),但可能不會支持這些塊內(nèi)個別數(shù)據(jù)單元的刪除。
【發(fā)明內(nèi)容】
[0005] 在一個方案中,通常,一種用于管理數(shù)據(jù)單元存儲的系統(tǒng),包括配置為存儲多個數(shù) 據(jù)塊的數(shù)據(jù)存儲系統(tǒng),至少一些所述數(shù)據(jù)塊包括多個數(shù)據(jù)單元,至少一組所述數(shù)據(jù)塊是連 續(xù)存儲的,從而支持第一讀取操作,該第一讀取操作從所述組中至少兩個相鄰數(shù)據(jù)塊中檢 索數(shù)據(jù)單元(例如,該第一讀取操作可能是存儲接口模塊104或該數(shù)據(jù)存儲系統(tǒng)的另一接 口用來執(zhí)行的一類函數(shù)或程序)。該系統(tǒng)還包括接口,該接口包括至少一個處理器,耦接至 所述數(shù)據(jù)存儲系統(tǒng),且被配置為執(zhí)行關于數(shù)據(jù)單元的兩項或更多項操作。所述操作包括:第 二讀取操作,與所述第一讀取操作不同,該第二讀取操作至少部分基于包含待讀取數(shù)據(jù)單 元的數(shù)據(jù)塊的地址來檢索該待讀取數(shù)據(jù)單元;以及刪除操作,該刪除操作以不包括已刪除 數(shù)據(jù)單元的第二數(shù)據(jù)塊來替代包括待刪除數(shù)據(jù)單元的第一數(shù)據(jù)塊。
[0006] 這些方案可包括一個或多個以下特征。
[0007] 該數(shù)據(jù)存儲系統(tǒng)被配置為針對至少一些所述數(shù)據(jù)塊存儲與之前從該數(shù)據(jù)塊刪除 一個或多個數(shù)據(jù)單元有關的相應歷史信息,所述刪除會影響該數(shù)據(jù)塊中多個數(shù)據(jù)單元的至 少一些地址。
[0008] 所述第二讀取操作根據(jù)基于對應于一特定數(shù)據(jù)塊的任何存儲的歷史信息解讀的 地址信息來訪問存儲在所述特定數(shù)據(jù)塊中的至少一第一數(shù)據(jù)單元。
[0009] 所述刪除操作將與所述已刪除數(shù)據(jù)單元有關的信息存儲在對應于所述新數(shù)據(jù)塊 的歷史信息中。
[0010] 至少一些所述歷史信息存儲在所述數(shù)據(jù)存儲系統(tǒng)中。
[0011] 至少一部分所述歷史信息在不同數(shù)據(jù)塊之間交叉存取(interleaved)。
[0012] 對應于一特定數(shù)據(jù)塊的至少一部分歷史信息存儲在該特定數(shù)據(jù)塊的預定部分中。
[0013] 至少一些所述數(shù)據(jù)塊是已壓縮數(shù)據(jù)塊。
[0014] 所述第二讀取操作解壓縮一特定的已壓縮數(shù)據(jù)塊以恢復一已解壓縮數(shù)據(jù)單元集 合,并至少部分基于對應于該特定的已壓縮數(shù)據(jù)塊的所述歷史信息在距一參考位置特定的 偏移量處檢索所述待讀取數(shù)據(jù)單元。
[0015] 所述第一讀取操作解壓縮多個已壓縮數(shù)據(jù)塊并相繼讀取多個已解壓縮數(shù)據(jù)單元。
[0016] 所述刪除操作對所述第二已壓縮數(shù)據(jù)塊的存儲大小進行擴展,以負責(account for)所述第二已壓縮數(shù)據(jù)塊和所述第一已壓縮數(shù)據(jù)塊之間存在的大小差異。
[0017] 所述第二已壓縮數(shù)據(jù)塊的存儲大小通過存儲除對應于所述第二已壓縮數(shù)據(jù)塊的 歷史信息之外的與所述第二已壓縮數(shù)據(jù)塊相關聯(lián)的附加信息來進行擴展。
[0018] 所述刪除操作存儲與所述第二已壓縮數(shù)據(jù)塊相關聯(lián)的新檢錯碼以替代與所述第 一已壓縮數(shù)據(jù)塊相關聯(lián)的檢錯碼。
[0019] 所述操作包括添加操作,該添加操作存儲與一最近添加的數(shù)據(jù)單元集合相關聯(lián)的 待添加數(shù)據(jù)單元。
[0020] 所述處理器還被配置為將所述最近添加的數(shù)據(jù)單元集合壓縮為存儲在所述存儲 介質(zhì)中的已壓縮數(shù)據(jù)塊。
[0021] 所述第二讀取操作根據(jù)一指示含有具有多個特定標識符的數(shù)據(jù)單元的所述數(shù)據(jù) 塊的索引來定位包括所述待讀取數(shù)據(jù)單元的所述數(shù)據(jù)塊,以恢復已解壓縮數(shù)據(jù)單元集合, 并在所述多個已解壓縮數(shù)據(jù)單元內(nèi)搜索所述待讀取數(shù)據(jù)單元。
[0022] 所述數(shù)據(jù)存儲系統(tǒng)被配置為存儲附加信息,該附加信息將所述組中的所述多個數(shù) 據(jù)塊確定為符合預定存儲格式。
[0023] 所述附加信息包括在所述組中每一數(shù)據(jù)塊的數(shù)據(jù)頭中的用來確定所述預定存儲 格式的標識符。
[0024] 所述第一讀取操作與所述預定存儲格式相兼容。
[0025] 在另一個方案中,通常,一種用于管理數(shù)據(jù)單元存儲的系統(tǒng)包括用來存儲多個數(shù) 據(jù)塊的裝置,至少一些所述數(shù)據(jù)塊包括多個數(shù)據(jù)單元,至少一組數(shù)據(jù)塊是連續(xù)存儲的,從而 支持第一讀取操作,該第一讀取操作從所述組中至少兩個相鄰數(shù)據(jù)塊中檢索數(shù)據(jù)單元。所 述系統(tǒng)還包括用來針對多個數(shù)據(jù)單元執(zhí)行兩項或更多項操作的裝置。所述操作包括:第二 讀取操作,與所述第一讀取操作不同,該第二讀取操作至少部分基于包含待讀取數(shù)據(jù)單元 的數(shù)據(jù)塊的地址來檢索該待讀取數(shù)據(jù)單元;以及刪除操作,該刪除操作以不包括已刪除數(shù) 據(jù)單元的第二數(shù)據(jù)塊來替代包括待刪除數(shù)據(jù)單元的第一數(shù)據(jù)塊。
[0026] 在另一個方案中,通常,一種用于管理數(shù)據(jù)單元存儲的方法包括將多個數(shù)據(jù)塊存 儲在數(shù)據(jù)存儲系統(tǒng)中,至少一些所述數(shù)據(jù)塊包括多個數(shù)據(jù)單元,至少一組數(shù)據(jù)塊是連續(xù)存 儲的,從而支持第一讀取操作,該第一讀取操作從所述組中至少兩個相鄰數(shù)據(jù)塊中檢索數(shù) 據(jù)單元。所述方法還包括使用至少一個處理器針對多個數(shù)據(jù)單元執(zhí)行兩項或更多項操作。 所述操作包括:第二讀取操作,與所述第一讀取操作不同,該第二讀取操作至少部分基于包 含待讀取數(shù)據(jù)單元的數(shù)據(jù)塊的地址來檢索該待讀取數(shù)據(jù)單元;以及刪除操作,該刪除操作 以不包括已刪除數(shù)據(jù)單元的第二數(shù)據(jù)塊來替代包括待刪除數(shù)據(jù)單元的第一數(shù)據(jù)塊。
[0027] 在另一個方案中,通常,軟件存儲在計算機可讀介質(zhì)上以管理數(shù)據(jù)單元的存儲。所 述軟件包括用于使計算系統(tǒng)執(zhí)行以下操作的指令:將多個數(shù)據(jù)塊存儲在數(shù)據(jù)存儲系統(tǒng)中, 至少一些所述數(shù)據(jù)塊包括多個數(shù)據(jù)單元,至少一組數(shù)據(jù)塊是連續(xù)存儲的,從而支持第一讀 取操作,該第一讀取操作從所述組中至少兩個相鄰數(shù)據(jù)塊中檢索數(shù)據(jù)單元;以及針對多個 數(shù)據(jù)單元執(zhí)行兩項或更多項操作。所述操作包括:第二讀取操作,與所述第一讀取操作不 同,該第二讀取操作至少部分基于包含待讀取數(shù)據(jù)單元的數(shù)據(jù)塊的地址來檢索該待讀取數(shù) 據(jù)單元;以及刪除操作,該刪除操作以不包括已刪除數(shù)據(jù)單元的第二數(shù)據(jù)塊來替代包括待 刪除數(shù)據(jù)單元的第一數(shù)據(jù)塊。
[0028] 在另一個方案中,通常,一種用于管理數(shù)據(jù)單元存儲的系統(tǒng)包括被配置為存儲多 個數(shù)據(jù)塊的數(shù)據(jù)存儲系統(tǒng),至少一些所述數(shù)據(jù)塊包括多個數(shù)據(jù)單元,所述數(shù)據(jù)存儲系統(tǒng)還 被配置為針對至少一些所述數(shù)據(jù)塊存儲與之前從該數(shù)據(jù)塊刪除一個或多個數(shù)據(jù)單元有關 的相應歷史信息,所述刪除會影響該數(shù)據(jù)塊中多個數(shù)據(jù)單元的至少一些地址。該系統(tǒng)還包 括接口,該接口包括至少一個處理器,耦接至所述數(shù)據(jù)存儲系統(tǒng),且被配置為根據(jù)地址信息 來執(zhí)行至少一種訪問存儲在第一數(shù)據(jù)塊中的至少一第一數(shù)據(jù)單元的操作,所述地址信息基 于對應于所述第一數(shù)據(jù)塊的任何存儲的歷史信息來解讀。
[0029] 這些方案可包括一個或多個以下特征。
[0030] 對應于所述第一數(shù)據(jù)塊的所述歷史信息包括與之前從所述第一數(shù)據(jù)塊刪除一個 或多個數(shù)據(jù)單元有關的信息,所述刪除會影響已從所述第一數(shù)據(jù)塊中解壓縮的數(shù)據(jù)單元的 相對偏移量。
[0031] 至少一些所述數(shù)據(jù)塊是已壓縮數(shù)據(jù)塊。
[0032] 該接口被配置為針對多個數(shù)據(jù)單元執(zhí)行兩項或更多項操作,所述操作包括:讀取 操作,該讀取操作至少部分基于地址信息來檢索待讀取數(shù)據(jù)單元,所述地址信息相對于參 考地址來定位所述數(shù)據(jù)單元;以及刪除操作,該刪除操作刪除待刪除數(shù)據(jù)單元,并存儲用來 針對其他數(shù)據(jù)單元解讀地址信息的與所述已刪除數(shù)據(jù)單元相關的歷史信息,以考慮到由于 刪除所述待刪除數(shù)據(jù)單元而造成的相對于所述參考地址的任何偏移量。
[0033] 該接口還被配置為針對多個數(shù)據(jù)單元執(zhí)行兩項或更多項操作,所述操作包括:第 一讀取操作,該第一讀取操作至少部分基于對應于已壓縮數(shù)據(jù)塊的歷史信息來檢索待讀取 數(shù)據(jù)單元;以及刪除操作,該刪除操作以不包括所述已刪除數(shù)據(jù)單元的第二已壓縮數(shù)據(jù)塊 來替代包括待刪除數(shù)據(jù)單元的第一已壓縮數(shù)據(jù)塊,并將與所述已刪除數(shù)據(jù)單元有關的信息 存儲在對應于所述第二已壓縮數(shù)據(jù)塊的歷史信息中。
[0034] 所述第一讀取操作解壓縮一特定的已壓縮數(shù)據(jù)塊以恢復一已解壓縮數(shù)據(jù)單元集 合,并至少部分基于對應于該特定的已壓縮數(shù)據(jù)塊的所述歷史信息在距一參考位置特定的 偏移量處檢索所述待讀取數(shù)據(jù)單元。
[0035] 所述第一讀取操作確定所述歷史信息是否包括與一個或多個先前已刪除數(shù)據(jù)單 元有關的信息。
[0036] 如果所述歷史信息包括與一個或多個先前已刪除數(shù)據(jù)單元有關的信息,所述第一 讀取操作基于對所述特定的偏移量和歷史信息中的值的比較來確定是否調(diào)整所述特定的 偏移量,所述歷史信息指出至少一個先前已刪除數(shù)據(jù)單元的偏移量。
[0037] 如果要調(diào)整所述特定的偏移量,所述第一讀取操作基于一個或多個先前已刪除數(shù) 據(jù)單元的偏移量和大小來調(diào)整所述特定的偏移量。
[0038] 所述刪除操作對所述第二已壓縮數(shù)據(jù)塊的存儲大小進行擴展,以負責所述第二已 壓縮數(shù)據(jù)塊和所述第一已壓縮數(shù)據(jù)塊之間的大小差異。
[0039] 所述第二已壓縮數(shù)據(jù)塊的存儲大小通過存儲除對應于所述第二已壓縮數(shù)據(jù)塊的 歷史信息之外的與所述第二已壓縮數(shù)據(jù)塊相關聯(lián)的附加信息來進行擴展。
[0040] 所述刪除操作存儲與所述第二已壓縮數(shù)據(jù)塊相關聯(lián)的新檢錯碼以替代與所述第 一已壓縮數(shù)據(jù)塊相關聯(lián)的檢錯碼。
[0041] 所述操作包括添加操作,該添加操作存儲與一最近添加的數(shù)據(jù)單元集合相關聯(lián)的 待添加數(shù)據(jù)單元。
[0042] 所述處理器還被配置為將所述最近添加的數(shù)據(jù)單元集合壓縮為存儲在所述存儲 介質(zhì)中的已壓縮數(shù)據(jù)塊。
[0043] 所述操作包括第二讀取操作,與所述第一讀取操作不同,所述第二讀取操作解壓 縮一個或多個已壓縮數(shù)據(jù)塊并相繼讀取多個已解壓縮數(shù)據(jù)單元。
[0044] 所述操作包括第三讀取操作,與所述第一讀取操作和所述第二讀取操作不同,該 第三讀取操作解壓縮由索引指出為包括具有特定標