用于數(shù)據(jù)管理的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種用于數(shù)據(jù)管理的方法和系統(tǒng)。該方法包括:計算下列特征值中的一個或多個:第一格式的第一數(shù)據(jù)的特征值、和所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值,所述特征值唯一地表示具體格式的數(shù)據(jù)的至少一部分比特的排列特征;以及響應(yīng)于所計算的所述一個或多個特征值中的一個與已存儲的對應(yīng)于第二數(shù)據(jù)的特征值相同,存儲所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的一個。通過本發(fā)明的實施例,能夠?qū)τ趤碜酝辉磾?shù)據(jù)的數(shù)據(jù)文件進行去重。
【專利說明】用于數(shù)據(jù)管理的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種用于數(shù)據(jù)管理的方法和系統(tǒng),且更具體地,涉及一種能夠?qū)Υ鎯?器中的來自同一源數(shù)據(jù)的數(shù)據(jù)文件進行去重的數(shù)據(jù)去重(data de-duplication)方法和系 統(tǒng)。
【背景技術(shù)】
[0002] 隨著存儲內(nèi)容的數(shù)據(jù)量的不斷增加以及云存儲器的出現(xiàn),越來越需要合理地管理 存儲空間中的數(shù)據(jù)以滿足日益增長的數(shù)據(jù)存儲需求。有時,用戶在存儲數(shù)據(jù)的過程中可能 存儲了許多相同或?qū)嵸|(zhì)上相同的數(shù)據(jù),因此,提出數(shù)據(jù)去重技術(shù)來消除冗余數(shù)據(jù),以便改進 存儲利用率并減少網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)呢摀?dān)。
[0003] 例如,已知的數(shù)據(jù)去重技術(shù)通常通過逐個二進制比特地比較兩個數(shù)據(jù)文件的內(nèi)容 來去除具有相同比特的冗余數(shù)據(jù)文件。然而,對于二進制比特串不同的兩個數(shù)據(jù)文件,則一 般無法進行數(shù)據(jù)去重。
【發(fā)明內(nèi)容】
[0004] 現(xiàn)實中,往往存在來自相同源的具有不同二進制比特串的數(shù)據(jù)文件,但其是實質(zhì) 上相同的數(shù)據(jù)。例如,來自同一源文件的不同文件壓縮格式,例如rar、zip、7z文件等,但是 由于不同文件壓縮格式壓縮后的文件的二進制比特串是不同的,因此僅通過二進制比特比 較的方式無法將它們?nèi)ブ亍?br>
[0005] 鑒于上述問題,提出本發(fā)明。本發(fā)明的一個目的在于提供一種能夠?qū)τ趤碜酝?源數(shù)據(jù)的數(shù)據(jù)文件進行去重的方法和系統(tǒng)。本發(fā)明的另一目的在于提供一種能夠在保持良 好用戶體驗的情況下減少存儲的數(shù)據(jù)量的方法和系統(tǒng)。本發(fā)明的另一目的在于提供一種能 夠在較少計算量和處理量的情況下來減少存儲的數(shù)據(jù)量的方法和系統(tǒng)。
[0006] 根據(jù)本發(fā)明的一個方面,提供了一種用于數(shù)據(jù)管理的方法,包括:計算下列特征值 中的一個或多個:第一格式的第一數(shù)據(jù)的特征值、和所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個 第二格式的數(shù)據(jù)的特征值,所述特征值唯一地表示具體格式的數(shù)據(jù)的至少一部分比特的排 列特征;以及響應(yīng)于所計算的各個特征值中的一個與已存儲的對應(yīng)于第二數(shù)據(jù)的特征值相 同,存儲所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的一個。
[0007] 根據(jù)本發(fā)明的另一個方面,提供了一種用于數(shù)據(jù)管理的系統(tǒng),包括:計算單元,被 配置為計算下列特征值中的一個或多個:第一格式的第一數(shù)據(jù)的特征值、和所述第一數(shù)據(jù) 能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值,所述特征值唯一地表示具體格式的數(shù)據(jù) 的至少一部分比特的排列特征;以及管理單元,被配置為響應(yīng)于所計算的各個特征值中的 一個與已存儲的對應(yīng)于第二數(shù)據(jù)的特征值相同,存儲所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的一 個。
[0008] 根據(jù)本發(fā)明的各個方面,通過將數(shù)據(jù)的特征值和該數(shù)據(jù)所能轉(zhuǎn)換為的各種其他格 式的數(shù)據(jù)的特征值中的一個或多個與元數(shù)據(jù)庫中已存儲的特征值相比較,能夠通過相同的 特征值確定來自同一源數(shù)據(jù)的數(shù)據(jù)文件,從而對于來自同一源數(shù)據(jù)的數(shù)據(jù)文件進行去重。 根據(jù)本發(fā)明的各個實施例,還能在不實質(zhì)上影響用戶體驗的情況下減少存儲的數(shù)據(jù)量,同 時能較少計算量和處理量。
【專利附圖】
【附圖說明】
[0009] 通過結(jié)合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述以及其 它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標號 通常代表相同部件。
[0010] 圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務(wù)器12的框 圖。
[0011] 圖2示出根據(jù)本發(fā)明的一個實施例的用于數(shù)據(jù)管理的方法的示例流程圖。
[0012] 圖3示出用于說明圖2所示的根據(jù)本發(fā)明的一個實施例的用于數(shù)據(jù)管理的方法的 示意圖。
[0013] 圖4A-4B示出根據(jù)本發(fā)明實施例的元數(shù)據(jù)庫以及轉(zhuǎn)換策略庫的例子,其中,圖4A 示出元數(shù)據(jù)庫的示例實施例,圖4B示出轉(zhuǎn)換策略庫的示例實施例。
[0014] 圖5A示出根據(jù)本發(fā)明的另一實施例的用于數(shù)據(jù)管理的方法的示例流程圖,圖5B 示出了用于說明圖5A的方法的示意圖。
[0015] 圖6A示出根據(jù)本發(fā)明的另一實施例的用于數(shù)據(jù)管理的方法的示例流程圖,圖6B 示出了用于說明圖6A的方法的示意圖。
[0016] 圖7A示出根據(jù)本發(fā)明的另一實施例的用于數(shù)據(jù)管理的方法的示例流程圖,圖7B 和7C示出了用于說明圖7A的方法的示意圖。
[0017] 圖8示出根據(jù)本發(fā)明的另一實施例的用于數(shù)據(jù)管理的方法在提取數(shù)據(jù)時的處理 的示例流程圖。
[0018] 圖9示出根據(jù)本發(fā)明另一實施例的用于數(shù)據(jù)管理的系統(tǒng)的示例方框圖。
[0019] 圖10示出用于說明根據(jù)本發(fā)明的另一實施例的用于數(shù)據(jù)管理的系統(tǒng)的處理的示 意圖。
【具體實施方式】
[0020] 下面將參照附圖更詳細地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開 的優(yōu)選實施方式,然而應(yīng)該理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施方 式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的 范圍完整地傳達給本領(lǐng)域的技術(shù)人員。
[0021] 所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。 因此,本公開可以具體實現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括 固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為"電路"、"模 塊"或"系統(tǒng)"。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機可讀介質(zhì) 中的計算機程序產(chǎn)品的形式,該計算機可讀介質(zhì)中包含計算機可讀的程序代碼。
[0022] 可以采用一個或多個計算機可讀的介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計 算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是--但不 限于一電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計 算機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:一個或多個導(dǎo)線的電連接、便攜 式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器 (EPROM或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或 者上述的任意合適的組合。在本文件中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程序 的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0023] 計算機可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號, 其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括--但 不限于--電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質(zhì)還可以是 計算機可讀存儲介質(zhì)以外的任何計算機可讀介質(zhì),該計算機可讀介質(zhì)可以發(fā)送、傳播或者 傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0024] 計算機可讀介質(zhì)上包含的程序代碼可以用任何適當?shù)慕橘|(zhì)傳輸,包括--但不限 于--無線、電線、光纜、RF等等,或者上述的任意合適的組合。
[0025] 可以以一種或多種程序設(shè)計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機 程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、Smalltalk、C++, 還包括常規(guī)的過程式程序設(shè)計語言一諸如" C"語言或類似的程序設(shè)計語言。程序代碼可以 完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部 分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務(wù)器上執(zhí)行。在 涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡(luò)--包括局域網(wǎng)(LAN)或 廣域網(wǎng)(WAN)-連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務(wù)提 供商來通過因特網(wǎng)連接)。
[0026] 下面將參照本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的示例流程圖和 /或框圖描述本發(fā)明。應(yīng)當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中 各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算 機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,這些計算機程 序指令通過計算機或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的方 框中規(guī)定的功能/操作的裝置。
[0027] 也可以把這些計算機程序指令存儲在能使得計算機或其它可編程數(shù)據(jù)處理裝置 以特定方式工作的計算機可讀介質(zhì)中,這樣,存儲在計算機可讀介質(zhì)中的指令就產(chǎn)生出一 個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instruction means)的制造品(manufacture)。
[0028] 也可以把計算機程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備 上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計 算機實現(xiàn)的過程,從而使得在計算機或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖 和/或框圖中的方框中規(guī)定的功能/操作的過程。
[0029] 圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務(wù)器12的框 圖。圖1顯示的計算機系統(tǒng)/服務(wù)器12僅僅是一個示例,不應(yīng)對本發(fā)明實施例的功能和使 用范圍帶來任何限制。
[0030] 如圖1所示,計算機系統(tǒng)/服務(wù)器12以通用計算設(shè)備的形式表現(xiàn)。計算機系統(tǒng) /服務(wù)器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器 28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
[0031] 總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器, 外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉 例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標準體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC) 總線,增強型ISA總線、視頻電子標準協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。
[0032] 計算機系統(tǒng)/服務(wù)器12典型地包括多種計算機系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是 任何能夠被計算機系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動 的和不可移動的介質(zhì)。
[0033] 系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機系統(tǒng)可讀介質(zhì),例如隨機存 取存儲器(RAM)30和/或高速緩存存儲器32。計算機系統(tǒng)/服務(wù)器12可以進一步包括其 它可移動/不可移動的、易失性/非易失性計算機系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34 可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未顯示,通常稱為"硬盤驅(qū)動器")。盡管圖 1中未示出,可以提供用于對可移動非易失性磁盤(例如"軟盤")讀寫的磁盤驅(qū)動器,以及對 可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動器。在這些 情況下,每個驅(qū)動器可以通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28可以 包括至少一個程序產(chǎn)品,該程序產(chǎn)品一組(例如至少一個)程序模塊,這些程序模塊被配置 以執(zhí)行本發(fā)明各實施例的功能。
[0034] 一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器28中, 這樣的程序模塊42包括--但不限于--操作系統(tǒng)、一個或者多個應(yīng)用程序、其它程序模 塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。程序模塊 42通常執(zhí)行本發(fā)明所描述的實施例中的功能和/或方法。
[0035] 計算機系統(tǒng)/服務(wù)器12也可以與一個或多個外部設(shè)備14 (例如鍵盤、指向設(shè)備、 顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機系統(tǒng)/服務(wù)器12交互的設(shè) 備通信,和/或與使得該計算機系統(tǒng)/服務(wù)器12能與一個或多個其它計算設(shè)備進行通信的 任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22 進行。并且,計算機系統(tǒng)/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個或者多個網(wǎng)絡(luò)(例如 局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20 通過總線18與計算機系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當明白,盡管圖中未示出,可以 結(jié)合計算機系統(tǒng)/服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū) 動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)等。
[0036] 圖2示出了根據(jù)本發(fā)明的一個實施例的用于數(shù)據(jù)管理的方法200的示例流程圖。 在圖2中,根據(jù)本發(fā)明的一個實施例的方法200包括:步驟S201,計算下列特征值中的一個 或多個:第一格式的第一數(shù)據(jù)的特征值、和所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式 的數(shù)據(jù)的特征值,所述特征值唯一地表示具體格式的數(shù)據(jù)的至少一部分比特的排列特征; 以及步驟S202,響應(yīng)于所計算的各個特征值中的一個與已存儲的對應(yīng)于第二數(shù)據(jù)的特征值 相同,存儲所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的一個。
[0037] 根據(jù)一個實施例,該數(shù)據(jù)管理的方法200可以響應(yīng)于用戶要(向例如存儲器中)存 儲數(shù)據(jù)而發(fā)生,也可以響應(yīng)于(在例如存儲器中)已經(jīng)存儲了許多數(shù)據(jù)的情況下用戶想要整 理(存儲器中的)冗余數(shù)據(jù)而發(fā)生。本公開說明書對于該方法200的發(fā)生時間或條件并不限 制,該方法200可以實時、定時、響應(yīng)于用戶的請求或自動來進行數(shù)據(jù)管理的處理。
[0038] 根據(jù)一個實施例,步驟S201可以包括:步驟S2011,計算第一格式的第一數(shù)據(jù)的特 征值(圖中未示出);以及步驟S2012,至少根據(jù)不同格式之間的轉(zhuǎn)換策略,確定是否計算所 述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值(圖中未示出)。
[0039] 具體地,在上述步驟S2012中,確定是否計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多 個第二格式的數(shù)據(jù)的特征值的步驟可以通過至少根據(jù)不同格式之間的轉(zhuǎn)換策略(以后將結(jié) 合圖4-7進一步說明)來進行??梢杂棉D(zhuǎn)換策略庫來存儲這些不同格式之間的轉(zhuǎn)換策略。 當然,該用于存儲不同格式之間的轉(zhuǎn)換策略的轉(zhuǎn)換策略庫僅是示例而非限制,其他可用于 指示是否計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的信息都是可能的。
[0040] 通常,該計算第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值的步驟也 可以包括根據(jù)從第一格式轉(zhuǎn)換到一個或多個第二格式的轉(zhuǎn)換策略,將第一格式的第一數(shù)據(jù) 轉(zhuǎn)換為一個或多個第二格式的數(shù)據(jù),且計算該一個或多個第二格式的數(shù)據(jù)的特征值。當然, 該計算第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值的步驟還可以包括參考 對應(yīng)表來直接計算第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值,而不需要將 第一格式的第一數(shù)據(jù)轉(zhuǎn)換為一個或多個第二格式的數(shù)據(jù)的步驟。
[0041] 在步驟S201中,根據(jù)一個實施例,數(shù)據(jù)的不同格式(例如,第一格式、第二格式)可 以根據(jù)關(guān)于該數(shù)據(jù)的信息、例如擴展名信息、數(shù)據(jù)的版本信息、分辨率信息、壓縮率信息、壓 縮方式信息、編碼方式信息等中的一種或多種來區(qū)分。例如但不作為限制,不同的文件壓縮 格式:2丨口、四1'、72、七82、七2、丨80等;不同的音頻格式:3口6、《^¥、碰3、115)3、3(^、麗?、六]\?、]\14八、 1\141?、066、]\^ :>2、1¥等;不同的視頻格式或編碼格式:3¥;[、1]1〇¥、115)4、'\¥111¥、1'111¥13、冊、]\^ :>6、]\0^6、 FLV、3GP、MP4、SWF、ASF、DIVX、XVID、3GP2、FLV1、MPEG 1、MPEG2、MPEG3、MPEG4、H264 等;不同 的分辨率格式:720p、1080p的視頻數(shù)據(jù)、64kbps和192kbps的音頻文件等;不同的圖片格 式:PCX、TIFF、BMP、JPEG、PNG、ICO等;不同的文本格式或不同的版本格式:doc、docx,ppt、 pptx、RTF、txt、lrc、pdf、doc、ppt、jar、doc、txt、pdf、umd、chm、odt 等;不同的編程格式: HTML、ASP等。注意,此處的術(shù)語"一個或多個第二格式"可以指代與第一格式不同的一個或 多個相互不同的格式。
[0042] 在步驟S201中,根據(jù)本發(fā)明的一個實施例,該唯一地表示具體格式的數(shù)據(jù)的至少 一部分比特的排列特征的特征值可以是哈希(HASH,或稱散列)值。哈希值可以唯一地表示 一定長度的比特的排列特征。計算哈希值得到的數(shù)據(jù)量往往比原始數(shù)據(jù)的數(shù)據(jù)量要小,而 計算的哈希值又可以唯一地表示原始數(shù)據(jù)的比特排列特征。因此,通過比較哈希值,可以減 少比較的數(shù)據(jù)量,增加比較的效率。且通過比較哈希值是否相同可以確定原始比特串是否 相同。已知的哈希值存在多種算法,例如MD5 (Message Digest Algorithm5 (消息摘要算 法第五版))、SHA1 (Secure Hash Algorithml (安全哈希算法))等等。哈希算法可能存在 沖突問題,但沖突的概率很小,在此不重點考慮,且為節(jié)省篇幅不詳細介紹哈希算法。當然, 該特征值除了可以是哈希值以外,還可以是其他能夠唯一地表示一定長度的比特的排列特 征的值。在此也不一一舉例。以下為了示例而非限制,一般用哈希值作為特征值的例子來 描述本發(fā)明的各個實施例。
[0043] 在步驟S201中,根據(jù)一個實施例,可以計算表示數(shù)據(jù)的至少一個部分比特的排列 特征的哈希值,這可以包括計算數(shù)據(jù)的一部分比特的哈希值和計算數(shù)據(jù)的全部比特的哈希 值。例如,存在兩個分辨率不同(例如,第一分辨率和第二分辨率)的視頻文件,其大部分內(nèi) 容都是相同的,而僅片頭或片尾或中間一段部分(例如廣告部分)是不同的。在這種情況下, 可以計算將第一分辨率的視頻文件轉(zhuǎn)換為第二分辨率之后的該大部分內(nèi)容(即,一部分比 特)的哈希值,并與原始的第二分辨率的視頻文件的該大部分內(nèi)容的哈希值比較,如果計算 的兩個哈希值相同,也可以認為這兩個視頻文件的大部分內(nèi)容是來自于同一源的互相冗余 的數(shù)據(jù),因此也可以通過根據(jù)本發(fā)明的實施例的方法來獲得良好的去重效果?;蛘?,在數(shù)據(jù) 已經(jīng)是經(jīng)過適當切割以保留重點比較部分的數(shù)據(jù)的情況下,也可以對數(shù)據(jù)的全部比特計算 哈希值。
[0044] 在此,在步驟S202中的術(shù)語"存儲"(第一數(shù)據(jù)和第二數(shù)據(jù)中的一個)可以包括(在 要從外部向存儲器存儲數(shù)據(jù)的情況下)(從外部向存儲器的)存儲動作、或(在整理存儲器中 已經(jīng)存儲的數(shù)據(jù)的情況下)(在存儲器中)保留存儲的狀態(tài)。類似地,在本公開中提到的術(shù) 語"不存儲"也可以包括(在要從外部向存儲器存儲數(shù)據(jù)的情況下)不(向存儲器)存儲、或 (在整理存儲器中已經(jīng)存儲的數(shù)據(jù)的情況下)(從存儲器中)刪除。
[0045] 當然,在步驟S202中,可以根據(jù)預(yù)定規(guī)則來選擇存儲第一數(shù)據(jù)和第二數(shù)據(jù)中的哪 一個。例如,可以基于數(shù)據(jù)量大小來選擇存儲第一數(shù)據(jù)和第二數(shù)據(jù)中的數(shù)據(jù)量較小的那個。 例如,在視頻或音頻數(shù)據(jù)的情況下,還可以基于分辨率大小來選擇存儲第一數(shù)據(jù)和第二數(shù) 據(jù)中的分辨率較低或較高的那個(可以基于用戶喜好)。再例如,可以基于存儲的時間先后 來選擇存儲第一數(shù)據(jù)和第二數(shù)據(jù)中的先來的那個。當然,還可構(gòu)想很多其他的預(yù)定規(guī)則,在 此不--舉例。
[0046] 通過如上所述的用于數(shù)據(jù)管理的方法200,在對輸入數(shù)據(jù)所計算的各個特征值中 的一個與已存儲的某個具體特征值相同的情況下,能夠確定該輸入數(shù)據(jù)與該具體特征值對 應(yīng)的數(shù)據(jù)來自同一源,從而僅存儲來自同一源數(shù)據(jù)的兩個文件之一,從而實現(xiàn)對于來自同 一源數(shù)據(jù)的數(shù)據(jù)文件的去重,減少了存儲器中的數(shù)據(jù)量。
[0047] 注意,本公開中的"來自同一源數(shù)據(jù)的數(shù)據(jù)文件"可以包括該同一源數(shù)據(jù)以及從該 同一源數(shù)據(jù)進行格式轉(zhuǎn)換得到的各種數(shù)據(jù)文件,也可以僅包括從該同一源數(shù)據(jù)進行格式轉(zhuǎn) 換得到的各種數(shù)據(jù)文件。
[0048] 下面,結(jié)合圖3的示意圖來進一步舉例說明圖2的用于數(shù)據(jù)管理的方法200的過 程和該方法200的各個實施例。
[0049] 參考圖3,例如,輸入a. F1的數(shù)據(jù),其格式為F1。在圖2的方法200的步驟S201 中,計算輸入的數(shù)據(jù)a. F1的哈希值,例如a. FI. HASH。假設(shè),例如,該格式F1能被轉(zhuǎn)換為格 式F2,則在步驟S201中,還可以計算a. F1能被轉(zhuǎn)換為格式F2的數(shù)據(jù)a. F2的哈希值,例如 a. F2. HASH。如此,計算得到了兩個哈希值a. FI. HASH和a. F2. HASH。而假設(shè),在用于存儲 哈希值的元數(shù)據(jù)庫中,例如,存儲了與b. F2的數(shù)據(jù)對應(yīng)的哈希值,例如b. F2. HASH,則在步 驟S202中,響應(yīng)于計算的哈希值a. F2. HASH與元數(shù)據(jù)庫中存儲的哈希值b. F2. HASH相同, 可以確定a.Fl和b.F2來自同一源數(shù)據(jù),則可以存儲數(shù)據(jù)a.Fl和b.F2中的一個,例如,僅 存儲數(shù)據(jù)a. F1,從而可以去除來自同一源數(shù)據(jù)的冗余數(shù)據(jù),并可以在不減少實質(zhì)內(nèi)容和保 持良好的用戶體驗的情況下減少數(shù)據(jù)存儲量。
[0050] 在上述實施例中,對于步驟S201中的計算下列特征值中的一個或多個:第一格式 的第一數(shù)據(jù)的特征值、和所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值, 計算了數(shù)據(jù)a. F1的哈希值以及a. F1能被轉(zhuǎn)換為格式F2的數(shù)據(jù)a. F2的哈希值兩者,但是 這僅是示例而非限制。在一些實施例中,可以根據(jù)情況僅計算輸入的數(shù)據(jù)的哈希值,或僅計 算輸入的數(shù)據(jù)能被轉(zhuǎn)換為的其他格式的數(shù)據(jù)的哈希值的一個或多個,或計算前述哈希值中 的一個或多個。雖然本說明書的以下描述以首先計算輸入的數(shù)據(jù)的哈希值為例進行,但這 不是限制。
[0051] 根據(jù)一個實施例,在步驟S202中選擇僅存儲例如數(shù)據(jù)a. F1的情況下,對于數(shù)據(jù) b. F2,可以不存儲數(shù)據(jù)b. F2或(在已經(jīng)存儲了數(shù)據(jù)b. F2的情況下)從存儲器刪除數(shù)據(jù)b. F2, 從而僅保留存儲一個數(shù)據(jù)a. F1。例如,有時用戶在存儲器中存儲了多種分辨率的同一內(nèi)容 的電視劇,而用戶只想保留某種分辨率的該電視劇,并不想要其他分辨率的視頻文件,則可 以刪除其他分辨率的視頻文件。
[0052] 根據(jù)一個實施例,在另一情況下,對于數(shù)據(jù)b. F2,用戶可能日后還想提取該數(shù)據(jù) b. F2,則該方法200還可以包括:響應(yīng)于存儲所述第一數(shù)據(jù)a. F1和所述第二數(shù)據(jù)b. F2中的 一個(在此例中,a. F1),可以不存儲所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的另一個(在此例中, b. F2 ),而僅存儲指向所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的所述一個(在此例中,a. F1)的指示 符。也就是說,例如,參考圖3的例子,選擇僅存儲數(shù)據(jù)a. F1,則對于數(shù)據(jù)b. F2,可以不存儲 該數(shù)據(jù)b. F2本身(S卩,不存儲或刪除該數(shù)據(jù)b. F2本身),而存儲指向數(shù)據(jù)a. F1的指示符(例 如,指針)。該指向數(shù)據(jù)a. F1的指示符可以與該數(shù)據(jù)b. F2的文件名"b. F2"相對應(yīng)地存儲, 以便以后用戶想要提取數(shù)據(jù)b. F2,可以通過文件名"b. F2"來找到該指向數(shù)據(jù)a. F1的指示 符,從而根據(jù)該指示符來找到數(shù)據(jù)a. F1。此時,找到的數(shù)據(jù)a. F1的格式是F1,與b. F2的格 式F2不同,但由于如上所述F1格式能夠轉(zhuǎn)換為F2格式,因此可以將數(shù)據(jù)a. F1轉(zhuǎn)換為數(shù)據(jù) a. F2,并提供該轉(zhuǎn)換后的數(shù)據(jù)a. F2作為要提取的數(shù)據(jù)b. F2。當然,該提取過程僅是一個例 子,以下還將結(jié)合圖8詳細描述該提取過程的其他例子。從而,取代未存儲的冗余數(shù)據(jù)而存 儲指向來自同一源數(shù)據(jù)的數(shù)據(jù)的指示符并非本公開必要的,但是通過取代未存儲的冗余數(shù) 據(jù)而存儲指向來自同一源數(shù)據(jù)的數(shù)據(jù)的指示符,使得用戶可以在日后提取該未存儲的冗余 數(shù)據(jù)時,通過查找該指針來找到該來自同一源數(shù)據(jù)的數(shù)據(jù)作為要提取的數(shù)據(jù)、或通過格式 轉(zhuǎn)換該來自同一源數(shù)據(jù)的數(shù)據(jù)來得到要提取的數(shù)據(jù)。如此,可以使用戶感覺不到?jīng)]有存儲 該數(shù)據(jù),因為用戶想要提取該數(shù)據(jù)時可以隨時提取到與該數(shù)據(jù)相同的數(shù)據(jù),這得到了更好 的用戶體驗。
[0053] 根據(jù)一個實施例,該方法200還可以包括:響應(yīng)于所計算的每個特征值與已存儲 的特征值都不相同,則存儲所述第一數(shù)據(jù)。也就是說,參考圖3的例子,如果所計算的每個 特征值、例如哈希值a. FI. HASH和a. F2. HASH都與已存儲的特征值不相同,這可以說明沒有 存儲過與該數(shù)據(jù)a. F1相同的數(shù)據(jù)或與a. F1來自同一源數(shù)據(jù)的數(shù)據(jù),那么可以直接存儲該 數(shù)據(jù)a. F1本身。
[0054] 根據(jù)一個實施例,該方法200還可以包括:以對應(yīng)于所述第一數(shù)據(jù)的方式,存儲所 計算的各個特征值??梢栽谟糜诖鎯μ卣髦档脑獢?shù)據(jù)庫中存儲對應(yīng)于第一數(shù)據(jù)的所計算的 各個特征值。例如參考圖3的例子,可以在元數(shù)據(jù)庫中存儲對應(yīng)于該數(shù)據(jù)a. F1的哈希值 a. FI. HASH和a. F2. HASH,從而擴充元數(shù)據(jù)庫以用于以后的特征值比較。此處,用元數(shù)據(jù)庫 來統(tǒng)一存儲各種特征值,可以使得該元數(shù)據(jù)庫在每次計算新的特征值之后進行擴展,以不 斷完善地適應(yīng)后來的特征值比較。當然使用元數(shù)據(jù)庫僅是一個例子,而非限制,還可以構(gòu)想 其他存儲特征值的方式。另外,注意,在該實施例中,一般不存儲從原數(shù)據(jù)a. F1轉(zhuǎn)換為的轉(zhuǎn) 換數(shù)據(jù)a. F2,而僅僅存儲轉(zhuǎn)換數(shù)據(jù)的特征值a. F2. HASH,從而可以減少存儲轉(zhuǎn)換數(shù)據(jù)的存 儲量。而且,在該實施例中,轉(zhuǎn)換數(shù)據(jù)的特征值a. F2. HASH的存儲是對應(yīng)于原始的輸入數(shù)據(jù) a. F1、而非轉(zhuǎn)換數(shù)據(jù)a. F2的,這使得在日后發(fā)現(xiàn)該特征值a. F2. HASH與某一特征值相同的 情況下,可以得知其所對應(yīng)的原始輸入數(shù)據(jù)a. F1是與該某一特征值所對應(yīng)的其原始輸入 數(shù)據(jù)是來自同一源的。
[0055] 通過上述實施例,能在不減少實質(zhì)內(nèi)容和保持良好用戶體驗的情況下減少數(shù)據(jù)存 儲量。
[0056] 圖4A示出了上述可用于存儲特征值的元數(shù)據(jù)庫的示意例子。根據(jù)本發(fā)明的一個 實施例,元數(shù)據(jù)庫還可以存儲除了諸如哈希值的特征值以外的與數(shù)據(jù)文件對應(yīng)的其他元數(shù) 據(jù),例如文件名、文件格式、版本信息、文件大小、屬性、存儲位置、可轉(zhuǎn)換的格式、以及其他 已知的可用作元數(shù)據(jù)的信息。一個數(shù)據(jù)文件a. F1對應(yīng)于與其相關(guān)的元數(shù)據(jù)庫。參考圖3提 到的指向數(shù)據(jù)a. F1的指示符也可以被存儲在與數(shù)據(jù)文件b. F2對應(yīng)的元數(shù)據(jù)庫中。當然, 該指向數(shù)據(jù)a. F1的指示符也可以存儲在存儲器中或別處。本公開對于指示符(例如指針) 的存儲位置并無限制。注意,如此配置的元數(shù)據(jù)庫可以是可擴展的且自增加的,因為元數(shù)據(jù) 庫可以不斷存儲新的計算的特征值、或指示符、或其他各種元數(shù)據(jù),以便用于以后的哈希值 比較、或數(shù)據(jù)提取等等。
[0057] 圖4B示出了上述可用于存儲不同格式之間的轉(zhuǎn)換策略的轉(zhuǎn)換策略庫的示例實施 方式。圖4B示出了以列表形式存儲不同格式(例如,F(xiàn)1、F2、F3)之間的轉(zhuǎn)換策略的示例轉(zhuǎn) 換策略庫,該列表形式可以節(jié)省空間,也適合于擴展新的轉(zhuǎn)換策略。當然,還可以構(gòu)想轉(zhuǎn)換 策略庫的其他形式來存儲不同格式之間的轉(zhuǎn)換策略,例如矩陣形式等。
[0058] 根據(jù)本發(fā)明的一個實施例,該轉(zhuǎn)換策略庫中存儲的轉(zhuǎn)換策略可以是預(yù)先設(shè)定的。 在另一個實施例中,該轉(zhuǎn)換策略庫可以是動態(tài)可擴展的,即可以刪除、更改、或添加轉(zhuǎn)換策 略(例如未來出現(xiàn)的新的格式轉(zhuǎn)換策略)。
[0059] 轉(zhuǎn)換策略可以是單向轉(zhuǎn)換或雙向轉(zhuǎn)換。例如圖4B中,F(xiàn)1格式可以無損地轉(zhuǎn)換為 F2格式,且F2格式也可以無損地轉(zhuǎn)換為F1格式,則稱這種轉(zhuǎn)換為雙向轉(zhuǎn)換。而如果只能從 一個格式無損地轉(zhuǎn)換為另一格式,但反之不成立,則稱這種轉(zhuǎn)換為單向轉(zhuǎn)換。
[0060] 通過利用轉(zhuǎn)換策略,可以使得來自同一源數(shù)據(jù)的各個不同格式的數(shù)據(jù)文件之間可 以直接進行格式轉(zhuǎn)換,而不需要將一個格式的數(shù)據(jù)文件還原為該同一源數(shù)據(jù)、以及再將該 同一源數(shù)據(jù)轉(zhuǎn)換為另一格式,因此可以減少還原為該同一源數(shù)據(jù)和將該同一源數(shù)據(jù)轉(zhuǎn)換為 另一格式的計算量和處理量。
[0061] 順帶提及,上述的元數(shù)據(jù)庫和轉(zhuǎn)換策略庫也可以與存儲器分離地存儲,或可以被 存儲在存儲器中或別處。也就是說,本發(fā)明的公開對于數(shù)據(jù)本身、特征值、其他元數(shù)據(jù)、元 數(shù)據(jù)庫、指示符、轉(zhuǎn)換策略或轉(zhuǎn)換策略庫的存儲位置并無限制,只要關(guān)于同一數(shù)據(jù)的數(shù)據(jù)本 身、特征值、其他元數(shù)據(jù)、指示符、和/或關(guān)于該數(shù)據(jù)的格式的轉(zhuǎn)換策略等等的相關(guān)信息能 夠相互對應(yīng)地存儲,使得通過數(shù)據(jù)的文件名等能夠查找到這些相關(guān)信息即可。
[0062] 另外,如上所述,根據(jù)一個實施例,在步驟S201中的確定是否計算所述第一數(shù)據(jù) 能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值的步驟可以通過至少根據(jù)不同格式之間 的轉(zhuǎn)換策略來進行。下面將結(jié)合圖5-7來舉例說明至少根據(jù)不同格式之間的轉(zhuǎn)換策略進行 確定是否計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值的步驟的各 個實施例。
[0063] 圖5A示出了根據(jù)本發(fā)明的另一實施例的用于數(shù)據(jù)管理的方法500的示例流程圖。 該方法500包括:步驟S501,計算第一格式的第一數(shù)據(jù)的特征值、和響應(yīng)于存在從所述第 一格式向一個或多個第二格式的轉(zhuǎn)換策略,則根據(jù)所述轉(zhuǎn)換策略,計算所述第一數(shù)據(jù)能轉(zhuǎn) 換為的一個或多個第二格式的數(shù)據(jù)的特征值;步驟S502,響應(yīng)于所計算的各個特征值中的 一個與已存儲的對應(yīng)于第二數(shù)據(jù)的特征值相同,存儲所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的一 個。
[0064] 注意,響應(yīng)于沒有從第一格式轉(zhuǎn)換為一個或多個第二格式的轉(zhuǎn)換策略,也可以不 將第一格式的第一數(shù)據(jù)轉(zhuǎn)換為一個或多個第二格式,也不計算這種一個或多個第二格式的 數(shù)據(jù)的特征值。
[0065] 結(jié)合圖5B來舉例說明圖5A的方法的流程。圖5B說明了要存儲例如a. ZIP、b. RAR 和c. 7Z的情況下進行的處理。在圖5B中,例如在轉(zhuǎn)換策略庫中存在ZIP、RAR、7Z的三種 不同格式之間的轉(zhuǎn)換策略,具體地,見圖5B中間所示,例如,存在從ZIP到RAR的轉(zhuǎn)換策略 T12,存在從ZIP到7Z的轉(zhuǎn)換策略T13,存在從RAR到ZIP的轉(zhuǎn)換策略T21,存在從RAR到7Z 的轉(zhuǎn)換策略T23,存在從7Z到ZIP的轉(zhuǎn)換策略T31,以及存在從7Z到RAR的轉(zhuǎn)換策略T32。 這種轉(zhuǎn)換策略是本領(lǐng)域已知的,目前也有一些已知軟件可以實現(xiàn)某些不同格式之間的文件 的轉(zhuǎn)換,因此在此不詳細介紹具體的轉(zhuǎn)換策略。
[0066] 參考圖5B,例如,首先輸入數(shù)據(jù)a. ZIP。假設(shè)當前在元數(shù)據(jù)庫中還未存儲任何哈 希值。根據(jù)圖5A的方法500,計算輸入的數(shù)據(jù)a. ZIP的哈希值a. ZIP. HASH、和響應(yīng)于在轉(zhuǎn) 換策略庫中存在從ZIP格式向RAR格式和7Z格式的轉(zhuǎn)換策略,則根據(jù)該轉(zhuǎn)換策略,將數(shù)據(jù) a. ZIP轉(zhuǎn)換為數(shù)據(jù)a. RAR和數(shù)據(jù)a. 7Z、并計算數(shù)據(jù)a. RAR和數(shù)據(jù)a. 7Z的哈希值a. RAR. HASH 和a. 7Z. HASH。此時,由于元數(shù)據(jù)庫中不存在已經(jīng)存儲的任何哈希值,因此,確定在元數(shù)據(jù) 庫中不存在與所計算的哈希值相同的哈希值,可以直接存儲該數(shù)據(jù)a. ZIP。另外,可以在元 數(shù)據(jù)庫中,以對應(yīng)于數(shù)據(jù)a. ZIP的方式,存儲所計算的各個哈希值a. ZIP. HASH、a. RAR. HASH 和a. 7Z. HASH,以擴展元數(shù)據(jù)庫。注意,在此可以不存儲數(shù)據(jù)a. ZIP被轉(zhuǎn)換為的數(shù)據(jù)a. RAR 和a. 7Z,而僅以存儲這些數(shù)據(jù)的哈希值a. RAR. HASH和a. 7Z. HASH,以節(jié)省空間。
[0067] 接下來,輸入數(shù)據(jù)b. RAR。根據(jù)圖5A的方法500,計算輸入的數(shù)據(jù)b. RAR的哈希值 b. RAR. HASH、和響應(yīng)于在轉(zhuǎn)換策略庫中存在從RAR格式向ZIP格式和7Z格式的轉(zhuǎn)換策略, 則根據(jù)該轉(zhuǎn)換策略,將數(shù)據(jù)b. RAR轉(zhuǎn)換為數(shù)據(jù)b. ZIP和數(shù)據(jù)b. 7Z、并計算數(shù)據(jù)b. ZIP和數(shù)據(jù) b. 7Z的哈希值b. ZIP. HASH和b. 7Z. HASH。此時,由于元數(shù)據(jù)庫中已經(jīng)存儲了哈希值a. ZIP. HASH、a. RAR. HASH和a. 7Ζ· HASH,因此,響應(yīng)于發(fā)現(xiàn)所計算的原始輸入數(shù)據(jù)的哈希值b. RAR. HASH==元數(shù)據(jù)庫中存儲的a. RAR. HASH (如圖5B所示),則可以保持)存儲a. ZIP和b. RAR 中的一個。例如,由于已經(jīng)已經(jīng)存儲了數(shù)據(jù)a. ZIP,則為了節(jié)省存儲空間,可以不存儲數(shù)據(jù) b. RAR。在一個實施例中,可以不存儲數(shù)據(jù)b. RAR (S卩,不存儲數(shù)據(jù)b. RAR),還可以存儲指向 數(shù)據(jù)a. ZIP的指針。該指針的存儲位置也可以與數(shù)據(jù)b. RAR的文件名"b. RAR"相對應(yīng)地存 儲在元數(shù)據(jù)庫中。另外,在一個實施例中,在元數(shù)據(jù)庫中,以對應(yīng)于數(shù)據(jù)b. RAR的方式,存儲 所計算的各個哈希值b. RAR. HASH、b. ZIP. HASH和b. 7Z. HASH,以擴展元數(shù)據(jù)庫。
[0068] 在另一實施例中,可以根據(jù)預(yù)定規(guī)則來選擇存儲a. ZIP和b. RAR中的一個,例如, 如果b. RAR的數(shù)據(jù)量比已經(jīng)存儲的a. ZIP的數(shù)據(jù)量更小,也可以選擇存儲b. RAR,而刪除已 經(jīng)存儲的數(shù)據(jù)a. ZIP。另外,取代刪除的數(shù)據(jù)a. ZIP,可以將其存儲為指向b.RAR的指針。當 然,選擇存儲a. ZIP和b. RAR中的一個的預(yù)定規(guī)則也可以是其他規(guī)則。
[0069] 接下來,輸入數(shù)據(jù)c. 7Z。根據(jù)圖5A的方法500,計算輸入的數(shù)據(jù)c. 7Z的哈希值 c. 7Z. HASH、和響應(yīng)于在轉(zhuǎn)換策略庫中存在從7Z向ZIP和RAR的轉(zhuǎn)換策略,則根據(jù)該轉(zhuǎn)換策 略,將數(shù)據(jù)c. 7Z轉(zhuǎn)換為數(shù)據(jù)c. ZIP和數(shù)據(jù)c. RAR、并計算數(shù)據(jù)c. ZIP和數(shù)據(jù)c. RAR的哈希值 c. ZIP. HASH和c. RAR. HASH。此時,由于元數(shù)據(jù)庫中已經(jīng)存儲了哈希值a. ZIP. HASH、a. RAR. HASH和a. 7Z. HASH和b. RAR. HASH、b. ZIP. HASH和b. 7Z. HASH,因此,將計算的哈希值和元數(shù) 據(jù)庫中存儲的這些哈希值相比較(逐個比較或僅相同格式的哈希值之間比較),如果發(fā)現(xiàn)原 始輸入數(shù)據(jù)的哈希值c. 7Z. HASH與元數(shù)據(jù)庫中存儲的哈希值a. 7Z. HASH和b. 7Z. HASH都不 相同(例如,c. 7Z.HASH 關(guān) a. 7Z.HASH,c. 7Z.HASH 關(guān) b. 7Z.HASH),則可以存儲數(shù)據(jù) c. 7Z。另 夕卜,在一個實施例中,在元數(shù)據(jù)庫中以對應(yīng)于數(shù)據(jù)c. 7Z的方式,存儲所計算的各個哈希值 c. 7Z. HASH、c. ZIP. HASH 和 c. RAR. HASH。
[0070] 根據(jù)該圖5A和圖5B的方法500的處理,在比較對于輸入的數(shù)據(jù)和能轉(zhuǎn)換的格式 的數(shù)據(jù)計算的哈希值和已存儲了的哈希值之后,可以確定來自同一源數(shù)據(jù)的兩個數(shù)據(jù),并 選擇性地存儲來自同一源數(shù)據(jù)的兩個數(shù)據(jù)之一,從而在減少比較的數(shù)據(jù)量的情況下減少數(shù) 據(jù)存儲量。該方法500的處理還可以不被選擇為不存儲的另一數(shù)據(jù)而存儲指向選擇存儲的 數(shù)據(jù)的指針,從而便于用戶日后提取該未存儲的另一數(shù)據(jù),保持良好的用戶體驗。該方法 500的處理還可以在元數(shù)據(jù)庫中存儲所計算的原始輸入的數(shù)據(jù)和轉(zhuǎn)換后的數(shù)據(jù)的哈希值, 以便于以后的哈希值的比較。
[0071] 然而,在某些情況下,例如,對于數(shù)據(jù)b.RAR,由于元數(shù)據(jù)庫中已經(jīng)存儲了與輸入的 數(shù)據(jù)b. RAR相同的格式的數(shù)據(jù)的哈希值a. RAR. HASH,因此,實際上有時可以不需要計算它 們能轉(zhuǎn)換為的數(shù)據(jù)的哈希值(例如,b. ZIP. HASH和b. 7Z. HASH),因此,為了減少計算哈希值 的計算量和比較各個哈希值的比較的時間和成本,根據(jù)一個實施例的用于數(shù)據(jù)管理的方法 可以不僅根據(jù)轉(zhuǎn)換策略,還可以根據(jù)已經(jīng)存儲了的各種哈希值,來確定是否計算輸入的數(shù) 據(jù)能轉(zhuǎn)換為的數(shù)據(jù)的哈希值。以下將參考圖6A和6B詳細描述該實施例。
[0072] 圖6A示出根據(jù)本發(fā)明另一實施例的用于數(shù)據(jù)管理的方法600的示例流程圖,圖6B 示出了用于說明圖6A的方法的示意圖。圖6A所示的該方法600包括:步驟S601,計算第 一格式的第一數(shù)據(jù)的特征值、和響應(yīng)于未存儲與所計算的第一格式的第一數(shù)據(jù)的特征值相 同的該第一格式的其他數(shù)據(jù)的特征值、且存在從該第一格式向一個或多個第二格式的轉(zhuǎn)換 策略,則根據(jù)該轉(zhuǎn)換策略,計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特 征值;以及步驟S602,響應(yīng)于所計算的各個特征值中的一個與已存儲的對應(yīng)于第二數(shù)據(jù)的 特征值相同,存儲該第一數(shù)據(jù)和該第二數(shù)據(jù)中的一個。
[0073] 參考圖6B,例如,首先輸入數(shù)據(jù)a. ZIP。假設(shè)元數(shù)據(jù)庫中還未存儲任何哈希值。根 據(jù)圖6A的方法600,在步驟S601中,計算輸入的數(shù)據(jù)a. ZIP的哈希值a. ZIP. HASH、和響應(yīng)于 在元數(shù)據(jù)庫中未存儲與哈希值a. ZIP. HASH相同的ZIP格式的其他數(shù)據(jù)的哈希值、且確定在 轉(zhuǎn)換策略庫中存在從ZIP向RAR和7Z的轉(zhuǎn)換策略,則根據(jù)該轉(zhuǎn)換策略,將數(shù)據(jù)a. ZIP轉(zhuǎn)換 為數(shù)據(jù)a. RAR和數(shù)據(jù)a. 7Z、并計算數(shù)據(jù)a. RAR和數(shù)據(jù)a. 7Z的哈希值a. RAR. HASH和a. 7Ζ· HASH。此時,由于元數(shù)據(jù)庫中不存在已存儲的任何哈希值,因此,在步驟S602中,確定在元 數(shù)據(jù)庫中不存在與所計算的哈希值相同的哈希值,可以直接存儲該數(shù)據(jù)a. ZIP。另外,可以 在元數(shù)據(jù)庫中,以對應(yīng)于數(shù)據(jù)a. ZIP的方式,存儲所計算的各個哈希值a. ZIP. HASH、a. RAR. HASH 和 a. 7Ζ· HASH。
[0074] 接下來,輸入數(shù)據(jù)b. RAR。根據(jù)圖6A的方法600,在步驟S601中,計算輸入的數(shù)據(jù) b. RAR的哈希值b. RAR. HASH、和確定在元數(shù)據(jù)庫中已經(jīng)存儲了 RAR格式的其他數(shù)據(jù)的特征 值a. RAR. HASH==所計算的原始輸入數(shù)據(jù)的哈希值b. RAR. HASH (不滿足確定在所述元數(shù)據(jù) 庫中未存儲與所計算的第一格式的第一數(shù)據(jù)的特征值相同的所述第一格式的其他數(shù)據(jù)的 特征值的條件),則可以不將數(shù)據(jù)b. RAR轉(zhuǎn)換為數(shù)據(jù)b. ZIP和數(shù)據(jù)b. 7Z、也不計算數(shù)據(jù)b. ZIP 和數(shù)據(jù)b. 7Z的哈希值b. ZIP. HASH和b. 7Z. HASH。此時,在步驟S602中,由于如上所述確 定了在元數(shù)據(jù)庫中存儲的特征值a. RAR. HASH==所計算的原始輸入數(shù)據(jù)的哈希值b. RAR. HASH,因此,可以存儲a. RAR. HASH所對應(yīng)的數(shù)據(jù)a. ZIP和數(shù)據(jù)b. RAR中的一個。例如,由于 已經(jīng)已經(jīng)存儲了數(shù)據(jù)a. ZIP,則為了節(jié)省存儲空間,可以不存儲數(shù)據(jù)b. RAR。在一個實施例 中,可以不存儲數(shù)據(jù)b. RAR,但可以存儲指向數(shù)據(jù)a. ZIP的指針。另外,在一個實施例中,由 于沒有計算數(shù)據(jù)b. RAR轉(zhuǎn)換為的數(shù)據(jù)的哈希值,只計算了哈希值b. RAR. HASH,因此在元數(shù) 據(jù)庫中,以對應(yīng)于數(shù)據(jù)b. RAR的方式,存儲所計算的一個哈希值b. RAR. HASH。在該情況下, 僅比較了一個哈希值b. RAR. HASH與元數(shù)據(jù)庫中的所有哈希值,在發(fā)現(xiàn)元數(shù)據(jù)庫中存在與 輸入數(shù)據(jù)的哈希值b. RAR. HASH相同的哈希值,則可以不進行格式轉(zhuǎn)換和哈希值計算,從而 減少了格式轉(zhuǎn)換和比較哈希值的處理量。
[0075] 接下來,輸入數(shù)據(jù)c.7Z。根據(jù)圖6A的方法600,在步驟S601中,計算輸入的數(shù)據(jù) c. 7Z的哈希值c. 7Z. HASH、和響應(yīng)于c. 7Z. HASH關(guān)a. 7Z. HASH且如上所述存在從7Z格式向 RAR格式和ZIP格式的轉(zhuǎn)換策略(S卩,滿足確定在所述元數(shù)據(jù)庫中未存儲與所計算的第一格 式的第一數(shù)據(jù)的特征值相同的所述第一格式的其他數(shù)據(jù)的特征值、且確定在用于存儲不同 格式之間的轉(zhuǎn)換策略的轉(zhuǎn)換策略庫中存在從所述第一格式向一個或多個第二格式的轉(zhuǎn)換 策略的條件),則根據(jù)該轉(zhuǎn)換策略,將數(shù)據(jù)c. 7Z轉(zhuǎn)換為數(shù)據(jù)c. RAR和數(shù)據(jù)c. ZIP、并計算數(shù)據(jù) c. RAR 和數(shù)據(jù) c. ZIP 的哈希值 c. RAR. HASH 和 c. ZIP. HASH。由于 c. 7Z. HASH 關(guān) a. 7Z. HASH, 則存儲數(shù)據(jù)c. 7Z本身。另外,在一個實施例中,在元數(shù)據(jù)庫中,以對應(yīng)于數(shù)據(jù)c. 7Z的方式, 存儲所計算的各個哈希值c. 7Z. HASH、c. ZIP. HASH和c. RAR. HASH。
[0076] 根據(jù)圖6A和6B的方法600的處理,能在減少格式轉(zhuǎn)換和計算哈希值的計算量以 及減少比較各個哈希值的時間和成本的情況下,減少存儲的數(shù)據(jù)量。
[0077] 但是,在某些情況下,在轉(zhuǎn)換策略庫中可能存在從第一格式轉(zhuǎn)換到至少一個第二 格式的轉(zhuǎn)換策略、而不存在從至少一個第二格式轉(zhuǎn)換到第一格式的轉(zhuǎn)換策略,在該情況下, 如果根據(jù)圖6A和6B的方法600確定所計算的原始輸入數(shù)據(jù)的哈希值等于元數(shù)據(jù)庫中已 經(jīng)存儲的哈希值、則不計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的至少一個第二格式的數(shù)據(jù)的特征值的 話,則有可能無法通過比較第二格式的數(shù)據(jù)的哈希值來確定以后要存儲進來的第二格式的 其他數(shù)據(jù)是否與該第一格式的第一數(shù)據(jù)來自同一源,因為該第二格式無法(無損地)轉(zhuǎn)換為 第一格式。因此,在該情況下,可能存在從第一格式轉(zhuǎn)換到至少一個第二格式的轉(zhuǎn)換策略、 而不存在從至少一個第二格式轉(zhuǎn)換到第一格式的轉(zhuǎn)換策略的情況下,則可以規(guī)定要計算所 述第一數(shù)據(jù)能轉(zhuǎn)換為的至少一個第二格式的數(shù)據(jù)的特征值。接下來,結(jié)合圖7A和7B的方 法700來說明能解決上述問題的實施例。
[0078] 圖7A示出了根據(jù)本發(fā)明的另一實施例的用于數(shù)據(jù)管理的方法700的示例流程圖, 圖7B和7C示出了用于說明圖7A的方法的示意圖。如圖7A所示,該方法700包括:步驟 S701,計算第一格式的第一數(shù)據(jù)的特征值、和響應(yīng)于存在從第一格式轉(zhuǎn)換到至少一個第二 格式的轉(zhuǎn)換策略、而不存在從至少一個第二格式轉(zhuǎn)換到第一格式的轉(zhuǎn)換策略,則根據(jù)所述 轉(zhuǎn)換策略,計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的至少一個第二格式的數(shù)據(jù)的特征值;S702,響應(yīng)于 所計算的各個特征值中的一個與已存儲的對應(yīng)于第二數(shù)據(jù)的特征值相同,存儲所述第一數(shù) 據(jù)和所述第二數(shù)據(jù)中的一個。
[0079] 如圖7B和圖7C中所示,轉(zhuǎn)換策略庫中只存在RTF格式向TXT格式的轉(zhuǎn)換策略,而 不存在從TXT格式向RTF格式的轉(zhuǎn)換策略,即在兩個格式之間只存在單向轉(zhuǎn)換。本公開中 的"單向轉(zhuǎn)換"可以指的是非雙向無損轉(zhuǎn)換。例如,從1080p分辨率的視頻文件轉(zhuǎn)換為720p 分辨率是可以進行無損轉(zhuǎn)換的,而從720p分辨率的視頻文件轉(zhuǎn)換為1080p分辨率時,雖然 也能轉(zhuǎn)換,但從720p轉(zhuǎn)換的1080p的文件與原始1080p的文件相比是有損失的,則可以認 為該1080p和720p的格式轉(zhuǎn)換為單向轉(zhuǎn)換,且從RTF格式向TXT格式的轉(zhuǎn)換也是這種單向 轉(zhuǎn)換。
[0080] 圖7B示出了先輸入數(shù)據(jù)a. RTF再輸入數(shù)據(jù)b.TXT的情況。如圖7B所示,如果先輸 入數(shù)據(jù)a. RTF,根據(jù)圖7A的方法,在步驟S701中,計算輸入的數(shù)據(jù)a. RTF的哈希值a. RTF. HASH、和響應(yīng)于在轉(zhuǎn)換策略庫中存在從RTF格式轉(zhuǎn)換到TXT格式的轉(zhuǎn)換策略、而不存在從 TXT格式轉(zhuǎn)換到RTF格式的轉(zhuǎn)換策略,則根據(jù)所述轉(zhuǎn)換策略,將a. RTF轉(zhuǎn)換為TXT格式的數(shù) 據(jù)a. TXT、并計算數(shù)據(jù)a. TXT的哈希值a. TXT. HASH,而不管在元數(shù)據(jù)庫中是否存在與輸入數(shù) 據(jù)的哈希值a. RTF. HASH相同的哈希值。也就是說,不像圖6A和6B的方法600所述的那樣, 在元數(shù)據(jù)庫中存在與輸入數(shù)據(jù)的哈希值a. RTF. HASH相同的RTF格式的哈希值,就不進行轉(zhuǎn) 換和計算哈希值了。接下來,如果在元數(shù)據(jù)庫中事先沒有存儲任何哈希值,則所計算的各個 哈希值a. RTF. HASH和a. TXT. HASH都與元數(shù)據(jù)庫中存儲的哈希值不相同,存儲數(shù)據(jù)a. RTF。 另外,可以在元數(shù)據(jù)庫中存儲所計算的各個哈希值,a. RTF. HASH和a. TXT. HASH。
[0081] 在這種情況下,與圖6A和6B所示的情況相比,圖7A的方法不管該數(shù)據(jù)a. RTF的 哈希值a. RTF. HASH是否與在元數(shù)據(jù)庫中事先存儲的RTF格式的數(shù)據(jù)的哈希值相同,都根 據(jù)轉(zhuǎn)換策略,將a. RTF轉(zhuǎn)換為TXT格式的數(shù)據(jù)a. TXT、并計算數(shù)據(jù)a. TXT的哈希值a. TXT. HASH。而如圖7A的方法,規(guī)定了在轉(zhuǎn)換策略庫中存在從RTF格式轉(zhuǎn)換到TXT格式的轉(zhuǎn)換策 略、而不存在從TXT格式轉(zhuǎn)換到RTF格式的轉(zhuǎn)換策略的情況下,將a. RTF轉(zhuǎn)換為TXT格式的 數(shù)據(jù)a. TXT、并計算數(shù)據(jù)a. TXT的哈希值a. TXT. HASH,那么在將來輸入了一個與a. RTF來自 同一源數(shù)據(jù)的b. TXT數(shù)據(jù),可以通過計算b. TXT數(shù)據(jù)本身的哈希值b. TXT. HASH,就可以通過 a. TXT. HASH和b. TXT. HASH是否相同來確定a. RTF和b. TXT數(shù)據(jù)是否來自同一源。
[0082] 具體地,如圖7B的例子所示,接下來,輸入數(shù)據(jù)b. TXT,計算數(shù)據(jù)b. TXT的哈希值 b. TXT. HASH,則此時,因為在轉(zhuǎn)換策略庫中不存在從TXT格式轉(zhuǎn)換到RTF格式的轉(zhuǎn)換策略, 則不將b. TXT轉(zhuǎn)換為b. RTF,也不計算其哈希值。而響應(yīng)于b. TXT. HASH==在元數(shù)據(jù)庫中存 儲的哈希值a. TXT. HASH,則可以不存儲b. TXT,而用指向a. RTF的指針來取代。
[0083] 圖7C示出了首先輸入數(shù)據(jù)b. TXT再輸入數(shù)據(jù)a. RTF的情況。例如,如圖7C所示, 如果先輸入數(shù)據(jù)b. TXT,計算輸入的數(shù)據(jù)b. TXT的哈希值b. TXT. HASH、和響應(yīng)于在轉(zhuǎn)換策 略庫中不存在從TXT格式轉(zhuǎn)換到RTF格式的轉(zhuǎn)換策略,則不將b. TXT轉(zhuǎn)換為b. RTF,也不計 算其哈希值。如果在元數(shù)據(jù)庫中事先沒有存儲任何哈希值,則所計算的各個哈希值b. TXT. HASH都與元數(shù)據(jù)庫中存儲的哈希值不相同,存儲數(shù)據(jù)b.TXT。另外,可以在元數(shù)據(jù)庫中存儲 所計算的各個哈希值,即,b. TXT. HASH。
[0084] 接下來,輸入數(shù)據(jù)a. RTF,計算輸入的數(shù)據(jù)a. RTF的哈希值a. RTF. HASH、和響應(yīng)于 在轉(zhuǎn)換策略庫中存在從RTF格式轉(zhuǎn)換到TXT格式的轉(zhuǎn)換策略、而不存在從TXT格式轉(zhuǎn)換到 RTF格式的轉(zhuǎn)換策略,則根據(jù)所述轉(zhuǎn)換策略,將a. RTF轉(zhuǎn)換為TXT格式的數(shù)據(jù)a. TXT、并計算 數(shù)據(jù)a. TXT的哈希值a. TXT. HASH。
[0085] 在該情況下,圖7A的方法中的步驟S702還可以包括:響應(yīng)于所計算的所述至少 一個第二格式的數(shù)據(jù)的特征值中的一個與已存儲的對應(yīng)于第二數(shù)據(jù)的特征值相同:存儲 所述第一數(shù)據(jù);刪除所述第二數(shù)據(jù);并取代所刪除的第二數(shù)據(jù)而存儲指向所述第一數(shù)據(jù)的 指示符。例如,如圖7C所示,響應(yīng)于所計算的轉(zhuǎn)換后的TXT格式的數(shù)據(jù)a. TXT的哈希值 a. TXT. HASH==在元數(shù)據(jù)庫中存儲的b. TXT. HASH,則可以確定數(shù)據(jù)a. RTF與在元數(shù)據(jù)庫中存 儲的b. TXT. HASH所對應(yīng)的數(shù)據(jù)b. TXT來自同一源,因此此時,如之前所述,由于存儲器中還 存儲了 b.TXT,在一個實施例中,為了避免數(shù)據(jù)冗余,可以從存儲器中刪除先前存儲的數(shù)據(jù) b. TXT,且取代所刪除的數(shù)據(jù)b. TXT而存儲指向數(shù)據(jù)a. RTF的指針(如圖7C所示)。另外,可 以在元數(shù)據(jù)庫中存儲所計算的各個哈希值,a. RTF. HASH和a. TXT. HASH (如圖7C所示)。
[0086] 如此,即使在先輸入且存儲了不能轉(zhuǎn)換的b. TXT、后輸入來自同一源數(shù)據(jù)的能轉(zhuǎn)換 的a. RTF的情況下,也能夠發(fā)現(xiàn)該來自同一源數(shù)據(jù)的b. TXT,并通過刪除先前存儲的b. TXT, 用指向該a. RTF的指針來取代刪除的b. TXT,并存儲a. RTF本身,從而達到數(shù)據(jù)去重的目的, 并在日后要提取未存儲的b. TXT時也可以通過該指向該a. RTF的指針來找到a. RTF,以及通 過從RTF格式轉(zhuǎn)換到TXT格式的轉(zhuǎn)換策略,還原a. TXT作為b. TXT(以后還將參考圖8詳細 描述)。
[0087] 根據(jù)圖7A和7B的方法700,即使存在單向轉(zhuǎn)換的數(shù)據(jù)的情況下,也可以在保持良 好的用戶體驗的情況下,減少存儲的數(shù)據(jù)量。
[0088] 以上參考圖2到圖7例示了用于數(shù)據(jù)管理的方法在存儲數(shù)據(jù)或整理已存儲的數(shù)據(jù) 時的一些實施例。
[0089] 圖8示出了根據(jù)本發(fā)明的另一實施例的用于數(shù)據(jù)管理的方法在提取數(shù)據(jù)時的處 理800的示例流程圖。該處理800包括:步驟S801,接收提取該第一格式的第一數(shù)據(jù)的請 求;步驟S802,查找該第一格式的第一數(shù)據(jù)和指向第二數(shù)據(jù)的指示符中的一個;以及步驟 S803,基于該查找的結(jié)果,提供該第一格式的第一數(shù)據(jù)、該指示符所指向的第一格式的第二 數(shù)據(jù)、和根據(jù)不同格式之間的轉(zhuǎn)換策略將該指示符所指向的非第一格式的第二數(shù)據(jù)轉(zhuǎn)換為 的第一格式的數(shù)據(jù)中的一個,作為該第一格式的第一數(shù)據(jù)。
[0090] 如之前圖2-7例示的各個實施例,用于數(shù)據(jù)管理的方法可能得到如下結(jié)果:直接 存儲了數(shù)據(jù)本身;或指向其他數(shù)據(jù)的指針;其他結(jié)果。
[0091] 在直接存儲了數(shù)據(jù)本身的情況下,則在步驟S802中,查找到該第一數(shù)據(jù)本身,如 果要提取該第一數(shù)據(jù),則在步驟S803中,直接提供查找到的該第一數(shù)據(jù)。
[0092] 在存儲了指向其他數(shù)據(jù)的指針的情況下,在步驟S802中,查找到指向其他數(shù)據(jù)的 指針,如果存儲的指針所指向的其他數(shù)據(jù)具有第一格式,則在步驟S803中,不需要轉(zhuǎn)換而 直接提供該指針所指向的該其他數(shù)據(jù)作為第一數(shù)據(jù)。
[0093] 或者,在該指向的其他數(shù)據(jù)可能與要存儲或整理的數(shù)據(jù)具有不同的格式的情況 下,例如,步驟S802中,查找到指向其他數(shù)據(jù)的指針,如果存儲的指針所指向的其他數(shù)據(jù)是 非第一格式的,則在步驟S803中,可以根據(jù)轉(zhuǎn)換策略,來將該指針指向的其他數(shù)據(jù)轉(zhuǎn)換為 第一格式,并提供轉(zhuǎn)換為的第一格式的數(shù)據(jù)作為要提取的第一數(shù)據(jù)。注意,在該實施例中, 在提取數(shù)據(jù)時所參考的轉(zhuǎn)換策略庫可以與在存儲(或整理)數(shù)據(jù)時所參考的轉(zhuǎn)換策略庫相 同,也可以是預(yù)先設(shè)定和/或可擴展的。但是,這不是限制,而在某些情況下,提取和存儲時 的兩個轉(zhuǎn)換策略庫也可以不相同。
[0094] 注意,本公開中的"指向"數(shù)據(jù)可能直接指向一個數(shù)據(jù),也有可能直接指向另一指 針,而該另一指針可能再指向一個數(shù)據(jù),即"指向"數(shù)據(jù)可能間接地指向一個數(shù)據(jù)。因此本 公開中的"指向"數(shù)據(jù)可以包括直接或間接指向數(shù)據(jù)。
[0095] 如此,根據(jù)圖8的方法800,可以在減少了數(shù)據(jù)量的情況下還能使得用戶很好地提 取所想要的數(shù)據(jù),獲得良好的用戶體驗。
[0096] 由此,根據(jù)本發(fā)明的實施例的根據(jù)圖2-圖8的方法,在比較對于輸入的數(shù)據(jù)和能 轉(zhuǎn)換的格式的數(shù)據(jù)計算的哈希值和已存儲了的哈希值之后,可以確定來自同一源數(shù)據(jù)的兩 個數(shù)據(jù),并選擇性地存儲來自同一源數(shù)據(jù)的兩個數(shù)據(jù)之一,從而在減少比較的數(shù)據(jù)量的情 況下減少數(shù)據(jù)存儲量。根據(jù)本發(fā)明的實施例的方法還可以不存儲被選擇為不存儲的另一數(shù) 據(jù)而存儲指向選擇存儲的數(shù)據(jù)的指針,從而便于用戶日后提取該未存儲的另一數(shù)據(jù),保持 良好的用戶體驗。根據(jù)本發(fā)明的實施例的方法還可以在元數(shù)據(jù)庫中存儲所計算的原始輸入 的數(shù)據(jù)和轉(zhuǎn)換后的數(shù)據(jù)的哈希值,以便于以后的哈希值的比較。根據(jù)本發(fā)明的一些實施例 的方法還可以在減少格式轉(zhuǎn)換的計算量、減少計算哈希值的計算量和/或減少比較各個哈 希值的比較的時間和成本的情況下,減少存儲的數(shù)據(jù)量。
[0097] 圖9示出了根據(jù)本發(fā)明的另一實施例的用于數(shù)據(jù)管理的系統(tǒng)900的示例方框圖。 圖9所示的用于數(shù)據(jù)管理的系統(tǒng)900包括:計算單元901,被配置為計算下列特征值中的 一個或多個:第一格式的第一數(shù)據(jù)的特征值、和所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二 格式的數(shù)據(jù)的特征值,所述特征值唯一地表示具體格式的數(shù)據(jù)的至少一部分比特的排列特 征;以及管理單元902,被配置為響應(yīng)于所計算的各個特征值中的一個與已存儲的對應(yīng)于 第二數(shù)據(jù)的特征值相同,存儲所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的一個。根據(jù)一個實施例,該 特征值是哈希值。
[0098] 圖10示出說明圖9的用于數(shù)據(jù)管理的系統(tǒng)900的處理的示意圖。
[0099] 參考圖10,根據(jù)一個實施例,圖9所示的管理單元902還可以被配置為:響應(yīng)于存 儲該第一數(shù)據(jù)和該第二數(shù)據(jù)中的一個(在圖10的例子中,保留存儲第二數(shù)據(jù)),可以不存儲 該第一數(shù)據(jù)和該第二數(shù)據(jù)中的另一個(在圖10的例子中,不存儲第一數(shù)據(jù)),而可以存儲指 向該第一數(shù)據(jù)和該第二數(shù)據(jù)中的該一個的指示符(在圖10的例子中,存儲指向第二數(shù)據(jù)的 指示符)。參考圖10,根據(jù)一個實施例,圖9所示的管理單元902還可以被配置為:響應(yīng)于 所計算的每個特征值與已存儲的特征值都不相同,則存儲該第一數(shù)據(jù)。因此,如圖10所示, 該管理單元902可能存儲第一數(shù)據(jù),或者可選地不存儲第一數(shù)據(jù)而存儲指向第二數(shù)據(jù)的指 示符。
[0100] 參考圖10,根據(jù)一個實施例,圖9所示的管理單元902還可以被配置為:以對應(yīng)于 該第一數(shù)據(jù)的方式,存儲所計算的各個特征值。因此,如圖10所示,管理單元902還可以在 用于存儲特征值的元數(shù)據(jù)庫中,存儲所計算的第一格式的第一數(shù)據(jù)的特征值、和所述第一 數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值。
[0101] 參考圖1〇,根據(jù)一個實施例,圖9所示的計算單元901可以包括第一計算單元(未 示出),被配置為計算第一格式的第一數(shù)據(jù)的特征值;以及第二計算單元(未示出),被配置 為至少根據(jù)不同格式之間的轉(zhuǎn)換策略,確定是否計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個 第二格式的數(shù)據(jù)的特征值。參考圖10,根據(jù)本發(fā)明的一個實施例,可以在轉(zhuǎn)換策略庫中存 儲這些不同格式之間的轉(zhuǎn)換策略,且該轉(zhuǎn)換策略庫中的轉(zhuǎn)換策略可以是預(yù)設(shè)和/或可擴展 的。
[0102] 參考圖10,根據(jù)一個實施例,該第二計算單元(未示出)可以被配置為:響應(yīng)于存在 從該第一格式向一個或多個第二格式的轉(zhuǎn)換策略,則根據(jù)轉(zhuǎn)換策略,計算所述第一數(shù)據(jù)能 轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值。
[0103] 參考圖10,根據(jù)一個實施例,該第二計算單元(未示出)可以被配置為:響應(yīng)于未存 儲與所計算的第一格式的第一數(shù)據(jù)的特征值相同的該第一格式的其他數(shù)據(jù)的特征值、且確 定存在從該第一格式向一個或多個第二格式的轉(zhuǎn)換策略,則計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的 一個或多個第二格式的數(shù)據(jù)的特征值。
[0104] 參考圖10,根據(jù)一個實施例,第二計算單元可以被配置為:響應(yīng)于存在從第一格 式轉(zhuǎn)換到至少一個第二格式的轉(zhuǎn)換策略、而不存在從至少一個第二格式轉(zhuǎn)換到第一格式的 轉(zhuǎn)換策略,則根據(jù)該轉(zhuǎn)換策略,計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的至少一個第二格式的數(shù)據(jù)的 特征值。在該情況下,根據(jù)一個實施例,圖9所示的管理單元901還可以被配置為:響應(yīng)于 所計算的該至少一個第二格式的數(shù)據(jù)的特征值中的一個與已存儲的對應(yīng)于第二數(shù)據(jù)的特 征值相同:存儲該第一數(shù)據(jù);刪除該第二數(shù)據(jù);并存儲指向該第一數(shù)據(jù)的指示符。
[0105] 參考圖10,圖9所示的系統(tǒng)900還可以包括:接收單元(未示出),被配置為接收提 取該第一格式的第一數(shù)據(jù)的請求;查找單元(未示出)被配置為查找該第一格式的第一數(shù)據(jù) 和指向第二數(shù)據(jù)的指示符中的一個;以及提供單元(未示出),被配置為基于該查找的結(jié)果, 提供該第一格式的第一數(shù)據(jù)、該指示符所指向的第一格式的第二數(shù)據(jù)、和根據(jù)不同格式之 間的轉(zhuǎn)換策略將該指示符所指向的非第一格式的第二數(shù)據(jù)轉(zhuǎn)換為的第一格式的數(shù)據(jù)中的 一個,作為該第一格式的第一數(shù)據(jù)。
[0106] 順帶提及,根據(jù)本發(fā)明的實施例的用于數(shù)據(jù)管理的系統(tǒng)900還可以包括用于實現(xiàn) 參考圖2-8所示的上述用于數(shù)據(jù)管理的方法的各個步驟和功能的裝置、模塊、或部件,在此 不一一贅述。
[0107] 根據(jù)本發(fā)明的實施例的該圖9和10所示的系統(tǒng)900,在比較對于輸入的數(shù)據(jù)和能 轉(zhuǎn)換的格式的數(shù)據(jù)計算的哈希值和已存儲了的哈希值之后,可以確定來自同一源數(shù)據(jù)的兩 個數(shù)據(jù),并選擇性地存儲來自同一源數(shù)據(jù)的兩個數(shù)據(jù)之一,從而在減少比較的數(shù)據(jù)量的情 況下減少數(shù)據(jù)存儲量。該系統(tǒng)900還可以不不存儲的另一數(shù)據(jù),而存儲指向存儲的數(shù)據(jù)的 指針,從而便于用戶日后提取該未存儲的另一數(shù)據(jù),保持良好的用戶體驗。該系統(tǒng)900還可 以在元數(shù)據(jù)庫中存儲原始輸入的數(shù)據(jù)和轉(zhuǎn)換后的數(shù)據(jù)的哈希值,以便于以后的哈希值的比 較。系統(tǒng)900的一些實施例還可以在減少格式轉(zhuǎn)換的計算量、減少計算哈希值的計算量和 /或減少比較各個哈希值的比較的時間和成本的情況下,減少存儲的數(shù)據(jù)量。注意,本公開 中提到的優(yōu)點和效果僅是示例而非對本發(fā)明的限制。
[0108] 附圖中的示例流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算 機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可 以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多 個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當注意,在有些作為替換的實現(xiàn)中,方框中 所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可 以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意 的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí) 行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令 的組合來實現(xiàn)。
[0109] 以上已經(jīng)描述了本發(fā)明的各實施例,上述說明是示例性的,并非窮盡性的,并且也 不限于所披露的各實施例。在不偏離所說明的各實施例的范圍和精神的情況下,對于本技 術(shù)領(lǐng)域的普通技術(shù)人員來說許多修改和變更都是顯而易見的。本文中所用術(shù)語的選擇,旨 在最好地解釋各實施例的原理、實際應(yīng)用或?qū)κ袌鲋械募夹g(shù)的技術(shù)改進,或者使本技術(shù)領(lǐng) 域的其它普通技術(shù)人員能理解本文披露的各實施例。
【權(quán)利要求】
1. 一種用于數(shù)據(jù)管理的方法,包括: 計算下列特征值中的一個或多個:第一格式的第一數(shù)據(jù)的特征值、和所述第一數(shù)據(jù)能 轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值,所述特征值唯一地表示具體格式的數(shù)據(jù)的 至少一部分比特的排列特征;以及 響應(yīng)于所計算的各個特征值中的一個與已存儲的對應(yīng)于第二數(shù)據(jù)的特征值相同,存儲 所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的一個。
2. 根據(jù)權(quán)利要求1所述的方法,還包括: 響應(yīng)于存儲所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的一個,存儲指向所述第一數(shù)據(jù)和所述第 二數(shù)據(jù)中的所述一個的指示符。
3. 根據(jù)權(quán)利要求1所述的方法,還包括: 響應(yīng)于所計算的每個特征值與已存儲的特征值都不相同,則存儲所述第一數(shù)據(jù)。
4. 根據(jù)權(quán)利要求1所述的方法,還包括: 以對應(yīng)于所述第一數(shù)據(jù)的方式,存儲所計算的各個特征值。
5. 根據(jù)權(quán)利要求1所述的方法,其中,所述計算第一格式的第一數(shù)據(jù)的特征值和所述 第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值中的一個或多個的步驟包括: 計算第一格式的第一數(shù)據(jù)的特征值;以及 至少根據(jù)不同格式之間的轉(zhuǎn)換策略,確定是否計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多 個第二格式的數(shù)據(jù)的特征值。
6. 根據(jù)權(quán)利要求5所述的方法,其中,所述至少根據(jù)不同格式之間的轉(zhuǎn)換策略,確定是 否計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值的步驟包括: 響應(yīng)于存在從所述第一格式向一個或多個第二格式的轉(zhuǎn)換策略,則根據(jù)所述轉(zhuǎn)換策 略,計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值。
7. 根據(jù)權(quán)利要求6所述的方法,其中,所述響應(yīng)于存在從所述第一格式向一個或多個 第二格式的轉(zhuǎn)換策略,則根據(jù)所述轉(zhuǎn)換策略,計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第 二格式的數(shù)據(jù)的特征值的步驟包括: 響應(yīng)于未存儲與所計算的第一格式的第一數(shù)據(jù)的特征值相同的所述第一格式的其他 數(shù)據(jù)的特征值、且存在從所述第一格式向一個或多個第二格式的轉(zhuǎn)換策略,則根據(jù)所述轉(zhuǎn) 換策略,計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值。
8. 根據(jù)權(quán)利要求5中的所述的方法,其中,所述至少根據(jù)不同格式之間的轉(zhuǎn)換策略,確 定是否計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值的步驟包括: 響應(yīng)于存在從第一格式轉(zhuǎn)換到至少一個第二格式的轉(zhuǎn)換策略、而不存在從至少一個第 二格式轉(zhuǎn)換到第一格式的轉(zhuǎn)換策略,則根據(jù)所述轉(zhuǎn)換策略,計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的 至少一個第二格式的數(shù)據(jù)的特征值。
9. 根據(jù)權(quán)利要求8中的所述的方法,其中,所述響應(yīng)于所計算的各個特征值中的一個 與已存儲的對應(yīng)于第二數(shù)據(jù)的特征值相同,存儲所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的一個的 步驟包括: 響應(yīng)于所計算的所述至少一個第二格式的數(shù)據(jù)的特征值中的一個與已存儲的對應(yīng)于 第二數(shù)據(jù)的特征值相同: 存儲所述第一數(shù)據(jù); 刪除所述第二數(shù)據(jù);以及 存儲指向所述第一數(shù)據(jù)的指示符。
10. 根據(jù)權(quán)利要求2所述的方法,還包括: 接收提取所述第一格式的第一數(shù)據(jù)的請求; 查找所述第一格式的第一數(shù)據(jù)和指向所述第二數(shù)據(jù)的指示符中的一個;以及 基于所述查找的結(jié)果,提供所述第一格式的第一數(shù)據(jù)、所述指示符所指向的第一格式 的第二數(shù)據(jù)、和根據(jù)不同格式之間的轉(zhuǎn)換策略將所述指示符所指向的非第一格式的第二數(shù) 據(jù)轉(zhuǎn)換為的第一格式的數(shù)據(jù)中的一個,作為所述第一格式的第一數(shù)據(jù)。
11. 一種用于數(shù)據(jù)管理的系統(tǒng),包括: 計算單元,被配置為計算下列特征值中的一個或多個:第一格式的第一數(shù)據(jù)的特征值、 和所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值,所述特征值唯一地表示 具體格式的數(shù)據(jù)的至少一部分比特的排列特征;以及 管理單元,被配置為響應(yīng)于所計算的各個特征值中的一個與已存儲的對應(yīng)于第二數(shù)據(jù) 的特征值相同,存儲所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的一個。
12. 根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述管理單元還被配置為: 響應(yīng)于存儲所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的一個,存儲指向所述第一數(shù)據(jù)和所述第 二數(shù)據(jù)中的所述一個的指示符。
13. 根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述管理單元還被配置為: 響應(yīng)于所計算的每個特征值與已存儲的特征值都不相同,則存儲所述第一數(shù)據(jù)。
14. 根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述管理單元還被配置為: 以對應(yīng)于所述第一數(shù)據(jù)的方式,存儲所計算的各個特征值。
15. 根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述計算單元包括: 第一計算單元,被配置為計算第一格式的第一數(shù)據(jù)的特征值;以及 第二計算單元,被配置為至少根據(jù)不同格式之間的轉(zhuǎn)換策略,確定是否計算所述第一 數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值。
16. 根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述第二計算單元被配置為: 響應(yīng)于存在從所述第一格式向一個或多個第二格式的轉(zhuǎn)換策略,則根據(jù)所述轉(zhuǎn)換策 略,計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值。
17. 根據(jù)權(quán)利要求16所述的系統(tǒng),其中,所述第二計算單元被配置為: 響應(yīng)于未存儲與所計算的第一格式的第一數(shù)據(jù)的特征值相同的所述第一格式的其他 數(shù)據(jù)的特征值、且在存在從所述第一格式向一個或多個第二格式的轉(zhuǎn)換策略,則根據(jù)所述 轉(zhuǎn)換策略,將計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的一個或多個第二格式的數(shù)據(jù)的特征值。
18. 根據(jù)權(quán)利要求15中的所述的系統(tǒng),其中,所述第二計算單元被配置為: 響應(yīng)于存在從第一格式轉(zhuǎn)換到至少一個第二格式的轉(zhuǎn)換策略、而不存在從至少一個第 二格式轉(zhuǎn)換到第一格式的轉(zhuǎn)換策略,則根據(jù)所述轉(zhuǎn)換策略,計算所述第一數(shù)據(jù)能轉(zhuǎn)換為的 至少一個第二格式的數(shù)據(jù)的特征值。
19. 根據(jù)權(quán)利要求18中的所述的系統(tǒng),其中,所述管理單元被配置為: 響應(yīng)于所計算的所述至少一個第二格式的數(shù)據(jù)的特征值中的一個與已存儲的對應(yīng)于 第二數(shù)據(jù)的特征值相同: 存儲所述第一數(shù)據(jù); 刪除所述第二數(shù)據(jù);以及 存儲指向所述第一數(shù)據(jù)的指示符。
20.根據(jù)權(quán)利要求12所述的系統(tǒng),還包括: 接收單元,被配置為接收提取所述第一格式的第一數(shù)據(jù)的請求; 查找單元,被配置為查找所述第一格式的第一數(shù)據(jù)和指向第二數(shù)據(jù)的指示符中的一 個;以及 提供單元,被配置為基于所述查找的結(jié)果,提供所述第一格式的第一數(shù)據(jù)、所述指示符 所指向的第一格式的第二數(shù)據(jù)、和根據(jù)不同格式之間的轉(zhuǎn)換策略將所述指示符所指向的非 第一格式的第二數(shù)據(jù)轉(zhuǎn)換為的第一格式的數(shù)據(jù)中的一個,作為所述第一格式的第一數(shù)據(jù)。
【文檔編號】G06F17/30GK104123309SQ201310155895
【公開日】2014年10月29日 申請日期:2013年4月28日 優(yōu)先權(quán)日:2013年4月28日
【發(fā)明者】姜朋慧, 江丕峻, 尹雯, 薛亮, 王夕寧 申請人:國際商業(yè)機器公司