CN104123309B - 用于数据管理的方法和系统 - Google Patents

用于数据管理的方法和系统 Download PDF

Info

Publication number
CN104123309B
CN104123309B CN201310155895.1A CN201310155895A CN104123309B CN 104123309 B CN104123309 B CN 104123309B CN 201310155895 A CN201310155895 A CN 201310155895A CN 104123309 B CN104123309 B CN 104123309B
Authority
CN
China
Prior art keywords
data
characteristic value
switching strategy
hash
calculated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310155895.1A
Other languages
English (en)
Other versions
CN104123309A (zh
Inventor
姜朋慧
江丕峻
尹雯
薛亮
王夕宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201310155895.1A priority Critical patent/CN104123309B/zh
Priority to US14/263,016 priority patent/US9910857B2/en
Publication of CN104123309A publication Critical patent/CN104123309A/zh
Application granted granted Critical
Publication of CN104123309B publication Critical patent/CN104123309B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments

Abstract

本发明公开了一种用于数据管理的方法和系统。该方法包括:计算下列特征值中的一个或多个:第一格式的第一数据的特征值、和所述第一数据能转换为的一个或多个第二格式的数据的特征值,所述特征值唯一地表示具体格式的数据的至少一部分比特的排列特征;以及响应于所计算的所述一个或多个特征值中的一个与已存储的对应于第二数据的特征值相同,存储所述第一数据和所述第二数据中的一个。通过本发明的实施例,能够对于来自同一源数据的数据文件进行去重。

Description

用于数据管理的方法和系统
技术领域
本发明涉及一种用于数据管理的方法和系统,且更具体地,涉及一种能够对存储器中的来自同一源数据的数据文件进行去重的数据去重(data de-duplication)方法和系统。
背景技术
随着存储内容的数据量的不断增加以及云存储器的出现,越来越需要合理地管理存储空间中的数据以满足日益增长的数据存储需求。有时,用户在存储数据的过程中可能存储了许多相同或实质上相同的数据,因此,提出数据去重技术来消除冗余数据,以便改进存储利用率并减少网络数据传输的负担。
例如,已知的数据去重技术通常通过逐个二进制比特地比较两个数据文件的内容来去除具有相同比特的冗余数据文件。然而,对于二进制比特串不同的两个数据文件,则一般无法进行数据去重。
发明内容
现实中,往往存在来自相同源的具有不同二进制比特串的数据文件,但其是实质上相同的数据。例如,来自同一源文件的不同文件压缩格式,例如rar、zip、7z文件等,但是由于不同文件压缩格式压缩后的文件的二进制比特串是不同的,因此仅通过二进制比特比较的方式无法将它们去重。
鉴于上述问题,提出本发明。本发明的一个目的在于提供一种能够对于来自同一源数据的数据文件进行去重的方法和系统。本发明的另一目的在于提供一种能够在保持良好用户体验的情况下减少存储的数据量的方法和系统。本发明的另一目的在于提供一种能够在较少计算量和处理量的情况下来减少存储的数据量的方法和系统。
根据本发明的一个方面,提供了一种用于数据管理的方法,包括:计算下列特征值中的一个或多个:第一格式的第一数据的特征值、和所述第一数据能转换为的一个或多个第二格式的数据的特征值,所述特征值唯一地表示具体格式的数据的至少一部分比特的排列特征;以及响应于所计算的各个特征值中的一个与已存储的对应于第二数据的特征值相同,存储所述第一数据和所述第二数据中的一个。
根据本发明的另一个方面,提供了一种用于数据管理的系统,包括:计算单元,被配置为计算下列特征值中的一个或多个:第一格式的第一数据的特征值、和所述第一数据能转换为的一个或多个第二格式的数据的特征值,所述特征值唯一地表示具体格式的数据的至少一部分比特的排列特征;以及管理单元,被配置为响应于所计算的各个特征值中的一个与已存储的对应于第二数据的特征值相同,存储所述第一数据和所述第二数据中的一个。
根据本发明的各个方面,通过将数据的特征值和该数据所能转换为的各种其他格式的数据的特征值中的一个或多个与元数据库中已存储的特征值相比较,能够通过相同的特征值确定来自同一源数据的数据文件,从而对于来自同一源数据的数据文件进行去重。根据本发明的各个实施例,还能在不实质上影响用户体验的情况下减少存储的数据量,同时能较少计算量和处理量。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
图2示出根据本发明的一个实施例的用于数据管理的方法的示例流程图。
图3示出用于说明图2所示的根据本发明的一个实施例的用于数据管理的方法的示意图。
图4A-4B示出根据本发明实施例的元数据库以及转换策略库的例子,其中,图4A示出元数据库的示例实施例,图4B示出转换策略库的示例实施例。
图5A示出根据本发明的另一实施例的用于数据管理的方法的示例流程图,图5B示出了用于说明图5A的方法的示意图。
图6A示出根据本发明的另一实施例的用于数据管理的方法的示例流程图,图6B示出了用于说明图6A的方法的示意图。
图7A示出根据本发明的另一实施例的用于数据管理的方法的示例流程图,图7B和7C示出了用于说明图7A的方法的示意图。
图8示出根据本发明的另一实施例的用于数据管理的方法在提取数据时的处理的示例流程图。
图9示出根据本发明另一实施例的用于数据管理的系统的示例方框图。
图10示出用于说明根据本发明的另一实施例的用于数据管理的系统的处理的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的示例流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
图2示出了根据本发明的一个实施例的用于数据管理的方法200的示例流程图。在图2中,根据本发明的一个实施例的方法200包括:步骤S201,计算下列特征值中的一个或多个:第一格式的第一数据的特征值、和所述第一数据能转换为的一个或多个第二格式的数据的特征值,所述特征值唯一地表示具体格式的数据的至少一部分比特的排列特征;以及步骤S202,响应于所计算的各个特征值中的一个与已存储的对应于第二数据的特征值相同,存储所述第一数据和所述第二数据中的一个。
根据一个实施例,该数据管理的方法200可以响应于用户要(向例如存储器中)存储数据而发生,也可以响应于(在例如存储器中)已经存储了许多数据的情况下用户想要整理(存储器中的)冗余数据而发生。本公开说明书对于该方法200的发生时间或条件并不限制,该方法200可以实时、定时、响应于用户的请求或自动来进行数据管理的处理。
根据一个实施例,步骤S201可以包括:步骤S2011,计算第一格式的第一数据的特征值(图中未示出);以及步骤S2012,至少根据不同格式之间的转换策略,确定是否计算所述第一数据能转换为的一个或多个第二格式的数据的特征值(图中未示出)。
具体地,在上述步骤S2012中,确定是否计算所述第一数据能转换为的一个或多个第二格式的数据的特征值的步骤可以通过至少根据不同格式之间的转换策略(以后将结合图4-7进一步说明)来进行。可以用转换策略库来存储这些不同格式之间的转换策略。当然,该用于存储不同格式之间的转换策略的转换策略库仅是示例而非限制,其他可用于指示是否计算所述第一数据能转换为的一个或多个第二格式的数据的信息都是可能的。
通常,该计算第一数据能转换为的一个或多个第二格式的数据的特征值的步骤也可以包括根据从第一格式转换到一个或多个第二格式的转换策略,将第一格式的第一数据转换为一个或多个第二格式的数据,且计算该一个或多个第二格式的数据的特征值。当然,该计算第一数据能转换为的一个或多个第二格式的数据的特征值的步骤还可以包括参考对应表来直接计算第一数据能转换为的一个或多个第二格式的数据的特征值,而不需要将第一格式的第一数据转换为一个或多个第二格式的数据的步骤。
在步骤S201中,根据一个实施例,数据的不同格式(例如,第一格式、第二格式)可以根据关于该数据的信息、例如扩展名信息、数据的版本信息、分辨率信息、压缩率信息、压缩方式信息、编码方式信息等中的一种或多种来区分。例如但不作为限制,不同的文件压缩格式:zip、rar、7z、tgz、tz、iso等;不同的音频格式:ape、wav、wma、mp3、acc、MMF、AMR、M4A、M4R、OGG、MP2、WV等;不同的视频格式或编码格式:avi、mov、mp4、wmv、rmvb、RM、MPG、MPEG、FLV、3GP、MP4、SWF、ASF、DIVX、XVID、3GP2、FLV1、MPEG1、MPEG2、MPEG3、MPEG4、H264等;不同的分辨率格式:720p、1080p的视频数据、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等。注意,此处的术语“一个或多个第二格式”可以指代与第一格式不同的一个或多个相互不同的格式。
在步骤S201中,根据本发明的一个实施例,该唯一地表示具体格式的数据的至少一部分比特的排列特征的特征值可以是哈希(HASH,或称散列)值。哈希值可以唯一地表示一定长度的比特的排列特征。计算哈希值得到的数据量往往比原始数据的数据量要小,而计算的哈希值又可以唯一地表示原始数据的比特排列特征。因此,通过比较哈希值,可以减少比较的数据量,增加比较的效率。且通过比较哈希值是否相同可以确定原始比特串是否相同。已知的哈希值存在多种算法,例如MD5(Message Digest Algorithm5(消息摘要算法第五版))、SHA1(Secure Hash Algorithm1(安全哈希算法))等等。哈希算法可能存在冲突问题,但冲突的概率很小,在此不重点考虑,且为节省篇幅不详细介绍哈希算法。当然,该特征值除了可以是哈希值以外,还可以是其他能够唯一地表示一定长度的比特的排列特征的值。在此也不一一举例。以下为了示例而非限制,一般用哈希值作为特征值的例子来描述本发明的各个实施例。
在步骤S201中,根据一个实施例,可以计算表示数据的至少一个部分比特的排列特征的哈希值,这可以包括计算数据的一部分比特的哈希值和计算数据的全部比特的哈希值。例如,存在两个分辨率不同(例如,第一分辨率和第二分辨率)的视频文件,其大部分内容都是相同的,而仅片头或片尾或中间一段部分(例如广告部分)是不同的。在这种情况下,可以计算将第一分辨率的视频文件转换为第二分辨率之后的该大部分内容(即,一部分比特)的哈希值,并与原始的第二分辨率的视频文件的该大部分内容的哈希值比较,如果计算的两个哈希值相同,也可以认为这两个视频文件的大部分内容是来自于同一源的互相冗余的数据,因此也可以通过根据本发明的实施例的方法来获得良好的去重效果。或者,在数据已经是经过适当切割以保留重点比较部分的数据的情况下,也可以对数据的全部比特计算哈希值。
在此,在步骤S202中的术语“存储”(第一数据和第二数据中的一个)可以包括(在要从外部向存储器存储数据的情况下)(从外部向存储器的)存储动作、或(在整理存储器中已经存储的数据的情况下)(在存储器中)保留存储的状态。类似地,在本公开中提到的术语“不存储”也可以包括(在要从外部向存储器存储数据的情况下)不(向存储器)存储、或(在整理存储器中已经存储的数据的情况下)(从存储器中)删除。
当然,在步骤S202中,可以根据预定规则来选择存储第一数据和第二数据中的哪一个。例如,可以基于数据量大小来选择存储第一数据和第二数据中的数据量较小的那个。例如,在视频或音频数据的情况下,还可以基于分辨率大小来选择存储第一数据和第二数据中的分辨率较低或较高的那个(可以基于用户喜好)。再例如,可以基于存储的时间先后来选择存储第一数据和第二数据中的先来的那个。当然,还可构想很多其他的预定规则,在此不一一举例。
通过如上所述的用于数据管理的方法200,在对输入数据所计算的各个特征值中的一个与已存储的某个具体特征值相同的情况下,能够确定该输入数据与该具体特征值对应的数据来自同一源,从而仅存储来自同一源数据的两个文件之一,从而实现对于来自同一源数据的数据文件的去重,减少了存储器中的数据量。
注意,本公开中的“来自同一源数据的数据文件”可以包括该同一源数据以及从该同一源数据进行格式转换得到的各种数据文件,也可以仅包括从该同一源数据进行格式转换得到的各种数据文件。
下面,结合图3的示意图来进一步举例说明图2的用于数据管理的方法200的过程和该方法200的各个实施例。
参考图3,例如,输入a.F1的数据,其格式为F1。在图2的方法200的步骤S201中,计算输入的数据a.F1的哈希值,例如a.F1.HASH。假设,例如,该格式F1能被转换为格式F2,则在步骤S201中,还可以计算a.F1能被转换为格式F2的数据a.F2的哈希值,例如a.F2.HASH。如此,计算得到了两个哈希值a.F1.HASH和a.F2.HASH。而假设,在用于存储哈希值的元数据库中,例如,存储了与b.F2的数据对应的哈希值,例如b.F2.HASH,则在步骤S202中,响应于计算的哈希值a.F2.HASH与元数据库中存储的哈希值b.F2.HASH相同,可以确定a.F1和b.F2来自同一源数据,则可以存储数据a.F1和b.F2中的一个,例如,仅存储数据a.F1,从而可以去除来自同一源数据的冗余数据,并可以在不减少实质内容和保持良好的用户体验的情况下减少数据存储量。
在上述实施例中,对于步骤S201中的计算下列特征值中的一个或多个:第一格式的第一数据的特征值、和所述第一数据能转换为的一个或多个第二格式的数据的特征值,计算了数据a.F1的哈希值以及a.F1能被转换为格式F2的数据a.F2的哈希值两者,但是这仅是示例而非限制。在一些实施例中,可以根据情况仅计算输入的数据的哈希值,或仅计算输入的数据能被转换为的其他格式的数据的哈希值的一个或多个,或计算前述哈希值中的一个或多个。虽然本说明书的以下描述以首先计算输入的数据的哈希值为例进行,但这不是限制。
根据一个实施例,在步骤S202中选择仅存储例如数据a.F1的情况下,对于数据b.F2,可以不存储数据b.F2或(在已经存储了数据b.F2的情况下)从存储器删除数据b.F2,从而仅保留存储一个数据a.F1。例如,有时用户在存储器中存储了多种分辨率的同一内容的电视剧,而用户只想保留某种分辨率的该电视剧,并不想要其他分辨率的视频文件,则可以删除其他分辨率的视频文件。
根据一个实施例,在另一情况下,对于数据b.F2,用户可能日后还想提取该数据b.F2,则该方法200还可以包括:响应于存储所述第一数据a.F1和所述第二数据b.F2中的一个(在此例中,a.F1),可以不存储所述第一数据和所述第二数据中的另一个(在此例中,b.F2),而仅存储指向所述第一数据和所述第二数据中的所述一个(在此例中,a.F1)的指示符。也就是说,例如,参考图3的例子,选择仅存储数据a.F1,则对于数据b.F2,可以不存储该数据b.F2本身(即,不存储或删除该数据b.F2本身),而存储指向数据a.F1的指示符(例如,指针)。该指向数据a.F1的指示符可以与该数据b.F2的文件名“b.F2”相对应地存储,以便以后用户想要提取数据b.F2,可以通过文件名“b.F2”来找到该指向数据a.F1的指示符,从而根据该指示符来找到数据a.F1。此时,找到的数据a.F1的格式是F1,与b.F2的格式F2不同,但由于如上所述F1格式能够转换为F2格式,因此可以将数据a.F1转换为数据a.F2,并提供该转换后的数据a.F2作为要提取的数据b.F2。当然,该提取过程仅是一个例子,以下还将结合图8详细描述该提取过程的其他例子。从而,取代未存储的冗余数据而存储指向来自同一源数据的数据的指示符并非本公开必要的,但是通过取代未存储的冗余数据而存储指向来自同一源数据的数据的指示符,使得用户可以在日后提取该未存储的冗余数据时,通过查找该指针来找到该来自同一源数据的数据作为要提取的数据、或通过格式转换该来自同一源数据的数据来得到要提取的数据。如此,可以使用户感觉不到没有存储该数据,因为用户想要提取该数据时可以随时提取到与该数据相同的数据,这得到了更好的用户体验。
根据一个实施例,该方法200还可以包括:响应于所计算的每个特征值与已存储的特征值都不相同,则存储所述第一数据。也就是说,参考图3的例子,如果所计算的每个特征值、例如哈希值a.F1.HASH和a.F2.HASH都与已存储的特征值不相同,这可以说明没有存储过与该数据a.F1相同的数据或与a.F1来自同一源数据的数据,那么可以直接存储该数据a.F1本身。
根据一个实施例,该方法200还可以包括:以对应于所述第一数据的方式,存储所计算的各个特征值。可以在用于存储特征值的元数据库中存储对应于第一数据的所计算的各个特征值。例如参考图3的例子,可以在元数据库中存储对应于该数据a.F1的哈希值a.F1.HASH和a.F2.HASH,从而扩充元数据库以用于以后的特征值比较。此处,用元数据库来统一存储各种特征值,可以使得该元数据库在每次计算新的特征值之后进行扩展,以不断完善地适应后来的特征值比较。当然使用元数据库仅是一个例子,而非限制,还可以构想其他存储特征值的方式。另外,注意,在该实施例中,一般不存储从原数据a.F1转换为的转换数据a.F2,而仅仅存储转换数据的特征值a.F2.HASH,从而可以减少存储转换数据的存储量。而且,在该实施例中,转换数据的特征值a.F2.HASH的存储是对应于原始的输入数据a.F1、而非转换数据a.F2的,这使得在日后发现该特征值a.F2.HASH与某一特征值相同的情况下,可以得知其所对应的原始输入数据a.F1是与该某一特征值所对应的其原始输入数据是来自同一源的。
通过上述实施例,能在不减少实质内容和保持良好用户体验的情况下减少数据存储量。
图4A示出了上述可用于存储特征值的元数据库的示意例子。根据本发明的一个实施例,元数据库还可以存储除了诸如哈希值的特征值以外的与数据文件对应的其他元数据,例如文件名、文件格式、版本信息、文件大小、属性、存储位置、可转换的格式、以及其他已知的可用作元数据的信息。一个数据文件a.F1对应于与其相关的元数据库。参考图3提到的指向数据a.F1的指示符也可以被存储在与数据文件b.F2对应的元数据库中。当然,该指向数据a.F1的指示符也可以存储在存储器中或别处。本公开对于指示符(例如指针)的存储位置并无限制。注意,如此配置的元数据库可以是可扩展的且自增加的,因为元数据库可以不断存储新的计算的特征值、或指示符、或其他各种元数据,以便用于以后的哈希值比较、或数据提取等等。
图4B示出了上述可用于存储不同格式之间的转换策略的转换策略库的示例实施方式。图4B示出了以列表形式存储不同格式(例如,F1、F2、F3)之间的转换策略的示例转换策略库,该列表形式可以节省空间,也适合于扩展新的转换策略。当然,还可以构想转换策略库的其他形式来存储不同格式之间的转换策略,例如矩阵形式等。
根据本发明的一个实施例,该转换策略库中存储的转换策略可以是预先设定的。在另一个实施例中,该转换策略库可以是动态可扩展的,即可以删除、更改、或添加转换策略(例如未来出现的新的格式转换策略)。
转换策略可以是单向转换或双向转换。例如图4B中,F1格式可以无损地转换为F2格式,且F2格式也可以无损地转换为F1格式,则称这种转换为双向转换。而如果只能从一个格式无损地转换为另一格式,但反之不成立,则称这种转换为单向转换。
通过利用转换策略,可以使得来自同一源数据的各个不同格式的数据文件之间可以直接进行格式转换,而不需要将一个格式的数据文件还原为该同一源数据、以及再将该同一源数据转换为另一格式,因此可以减少还原为该同一源数据和将该同一源数据转换为另一格式的计算量和处理量。
顺带提及,上述的元数据库和转换策略库也可以与存储器分离地存储,或可以被存储在存储器中或别处。也就是说,本发明的公开对于数据本身、特征值、其他元数据、元数据库、指示符、转换策略或转换策略库的存储位置并无限制,只要关于同一数据的数据本身、特征值、其他元数据、指示符、和/或关于该数据的格式的转换策略等等的相关信息能够相互对应地存储,使得通过数据的文件名等能够查找到这些相关信息即可。
另外,如上所述,根据一个实施例,在步骤S201中的确定是否计算所述第一数据能转换为的一个或多个第二格式的数据的特征值的步骤可以通过至少根据不同格式之间的转换策略来进行。下面将结合图5-7来举例说明至少根据不同格式之间的转换策略进行确定是否计算所述第一数据能转换为的一个或多个第二格式的数据的特征值的步骤的各个实施例。
图5A示出了根据本发明的另一实施例的用于数据管理的方法500的示例流程图。该方法500包括:步骤S501,计算第一格式的第一数据的特征值、和响应于存在从所述第一格式向一个或多个第二格式的转换策略,则根据所述转换策略,计算所述第一数据能转换为的一个或多个第二格式的数据的特征值;步骤S502,响应于所计算的各个特征值中的一个与已存储的对应于第二数据的特征值相同,存储所述第一数据和所述第二数据中的一个。
注意,响应于没有从第一格式转换为一个或多个第二格式的转换策略,也可以不将第一格式的第一数据转换为一个或多个第二格式,也不计算这种一个或多个第二格式的数据的特征值。
结合图5B来举例说明图5A的方法的流程。图5B说明了要存储例如a.ZIP、b.RAR和c.7Z的情况下进行的处理。在图5B中,例如在转换策略库中存在ZIP、RAR、7Z的三种不同格式之间的转换策略,具体地,见图5B中间所示,例如,存在从ZIP到RAR的转换策略T12,存在从ZIP到7Z的转换策略T13,存在从RAR到ZIP的转换策略T21,存在从RAR到7Z的转换策略T23,存在从7Z到ZIP的转换策略T31,以及存在从7Z到RAR的转换策略T32。这种转换策略是本领域已知的,目前也有一些已知软件可以实现某些不同格式之间的文件的转换,因此在此不详细介绍具体的转换策略。
参考图5B,例如,首先输入数据a.ZIP。假设当前在元数据库中还未存储任何哈希值。根据图5A的方法500,计算输入的数据a.ZIP的哈希值a.ZIP.HASH、和响应于在转换策略库中存在从ZIP格式向RAR格式和7Z格式的转换策略,则根据该转换策略,将数据a.ZIP转换为数据a.RAR和数据a.7Z、并计算数据a.RAR和数据a.7Z的哈希值a.RAR.HASH和a.7Z.HASH。此时,由于元数据库中不存在已经存储的任何哈希值,因此,确定在元数据库中不存在与所计算的哈希值相同的哈希值,可以直接存储该数据a.ZIP。另外,可以在元数据库中,以对应于数据a.ZIP的方式,存储所计算的各个哈希值a.ZIP.HASH、a.RAR.HASH和a.7Z.HASH,以扩展元数据库。注意,在此可以不存储数据a.ZIP被转换为的数据a.RAR和a.7Z,而仅以存储这些数据的哈希值a.RAR.HASH和a.7Z.HASH,以节省空间。
接下来,输入数据b.RAR。根据图5A的方法500,计算输入的数据b.RAR的哈希值b.RAR.HASH、和响应于在转换策略库中存在从RAR格式向ZIP格式和7Z格式的转换策略,则根据该转换策略,将数据b.RAR转换为数据b.ZIP和数据b.7Z、并计算数据b.ZIP和数据b.7Z的哈希值b.ZIP.HASH和b.7Z.HASH。此时,由于元数据库中已经存储了哈希值a.ZIP.HASH、a.RAR.HASH和a.7Z.HASH,因此,响应于发现所计算的原始输入数据的哈希值b.RAR.HASH==元数据库中存储的a.RAR.HASH(如图5B所示),则可以保持)存储a.ZIP和b.RAR中的一个。例如,由于已经已经存储了数据a.ZIP,则为了节省存储空间,可以不存储数据b.RAR。在一个实施例中,可以不存储数据b.RAR(即,不存储数据b.RAR),还可以存储指向数据a.ZIP的指针。该指针的存储位置也可以与数据b.RAR的文件名“b.RAR”相对应地存储在元数据库中。另外,在一个实施例中,在元数据库中,以对应于数据b.RAR的方式,存储所计算的各个哈希值b.RAR.HASH、b.ZIP.HASH和b.7Z.HASH,以扩展元数据库。
在另一实施例中,可以根据预定规则来选择存储a.ZIP和b.RAR中的一个,例如,如果b.RAR的数据量比已经存储的a.ZIP的数据量更小,也可以选择存储b.RAR,而删除已经存储的数据a.ZIP。另外,取代删除的数据a.ZIP,可以将其存储为指向b.RAR的指针。当然,选择存储a.ZIP和b.RAR中的一个的预定规则也可以是其他规则。
接下来,输入数据c.7Z。根据图5A的方法500,计算输入的数据c.7Z的哈希值c.7Z.HASH、和响应于在转换策略库中存在从7Z向ZIP和RAR的转换策略,则根据该转换策略,将数据c.7Z转换为数据c.ZIP和数据c.RAR、并计算数据c.ZIP和数据c.RAR的哈希值c.ZIP.HASH和c.RAR.HASH。此时,由于元数据库中已经存储了哈希值a.ZIP.HASH、a.RAR.HASH和a.7Z.HASH和b.RAR.HASH、b.ZIP.HASH和b.7Z.HASH,因此,将计算的哈希值和元数据库中存储的这些哈希值相比较(逐个比较或仅相同格式的哈希值之间比较),如果发现原始输入数据的哈希值c.7Z.HASH与元数据库中存储的哈希值a.7Z.HASH和b.7Z.HASH都不相同(例如,c.7Z.HASH≠a.7Z.HASH,c.7Z.HASH≠b.7Z.HASH),则可以存储数据c.7Z。另外,在一个实施例中,在元数据库中以对应于数据c.7Z的方式,存储所计算的各个哈希值c.7Z.HASH、c.ZIP.HASH和c.RAR.HASH。
根据该图5A和图5B的方法500的处理,在比较对于输入的数据和能转换的格式的数据计算的哈希值和已存储了的哈希值之后,可以确定来自同一源数据的两个数据,并选择性地存储来自同一源数据的两个数据之一,从而在减少比较的数据量的情况下减少数据存储量。该方法500的处理还可以不被选择为不存储的另一数据而存储指向选择存储的数据的指针,从而便于用户日后提取该未存储的另一数据,保持良好的用户体验。该方法500的处理还可以在元数据库中存储所计算的原始输入的数据和转换后的数据的哈希值,以便于以后的哈希值的比较。
然而,在某些情况下,例如,对于数据b.RAR,由于元数据库中已经存储了与输入的数据b.RAR相同的格式的数据的哈希值a.RAR.HASH,因此,实际上有时可以不需要计算它们能转换为的数据的哈希值(例如,b.ZIP.HASH和b.7Z.HASH),因此,为了减少计算哈希值的计算量和比较各个哈希值的比较的时间和成本,根据一个实施例的用于数据管理的方法可以不仅根据转换策略,还可以根据已经存储了的各种哈希值,来确定是否计算输入的数据能转换为的数据的哈希值。以下将参考图6A和6B详细描述该实施例。
图6A示出根据本发明另一实施例的用于数据管理的方法600的示例流程图,图6B示出了用于说明图6A的方法的示意图。图6A所示的该方法600包括:步骤S601,计算第一格式的第一数据的特征值、和响应于未存储与所计算的第一格式的第一数据的特征值相同的该第一格式的其他数据的特征值、且存在从该第一格式向一个或多个第二格式的转换策略,则根据该转换策略,计算所述第一数据能转换为的一个或多个第二格式的数据的特征值;以及步骤S602,响应于所计算的各个特征值中的一个与已存储的对应于第二数据的特征值相同,存储该第一数据和该第二数据中的一个。
参考图6B,例如,首先输入数据a.ZIP。假设元数据库中还未存储任何哈希值。根据图6A的方法600,在步骤S601中,计算输入的数据a.ZIP的哈希值a.ZIP.HASH、和响应于在元数据库中未存储与哈希值a.ZIP.HASH相同的ZIP格式的其他数据的哈希值、且确定在转换策略库中存在从ZIP向RAR和7Z的转换策略,则根据该转换策略,将数据a.ZIP转换为数据a.RAR和数据a.7Z、并计算数据a.RAR和数据a.7Z的哈希值a.RAR.HASH和a.7Z.HASH。此时,由于元数据库中不存在已存储的任何哈希值,因此,在步骤S602中,确定在元数据库中不存在与所计算的哈希值相同的哈希值,可以直接存储该数据a.ZIP。另外,可以在元数据库中,以对应于数据a.ZIP的方式,存储所计算的各个哈希值a.ZIP.HASH、a.RAR.HASH和a.7Z.HASH。
接下来,输入数据b.RAR。根据图6A的方法600,在步骤S601中,计算输入的数据b.RAR的哈希值b.RAR.HASH、和确定在元数据库中已经存储了RAR格式的其他数据的特征值a.RAR.HASH==所计算的原始输入数据的哈希值b.RAR.HASH(不满足确定在所述元数据库中未存储与所计算的第一格式的第一数据的特征值相同的所述第一格式的其他数据的特征值的条件),则可以不将数据b.RAR转换为数据b.ZIP和数据b.7Z、也不计算数据b.ZIP和数据b.7Z的哈希值b.ZIP.HASH和b.7Z.HASH。此时,在步骤S602中,由于如上所述确定了在元数据库中存储的特征值a.RAR.HASH==所计算的原始输入数据的哈希值b.RAR.HASH,因此,可以存储a.RAR.HASH所对应的数据a.ZIP和数据b.RAR中的一个。例如,由于已经已经存储了数据a.ZIP,则为了节省存储空间,可以不存储数据b.RAR。在一个实施例中,可以不存储数据b.RAR,但可以存储指向数据a.ZIP的指针。另外,在一个实施例中,由于没有计算数据b.RAR转换为的数据的哈希值,只计算了哈希值b.RAR.HASH,因此在元数据库中,以对应于数据b.RAR的方式,存储所计算的一个哈希值b.RAR.HASH。在该情况下,仅比较了一个哈希值b.RAR.HASH与元数据库中的所有哈希值,在发现元数据库中存在与输入数据的哈希值b.RAR.HASH相同的哈希值,则可以不进行格式转换和哈希值计算,从而减少了格式转换和比较哈希值的处理量。
接下来,输入数据c.7Z。根据图6A的方法600,在步骤S601中,计算输入的数据c.7Z的哈希值c.7Z.HASH、和响应于c.7Z.HASH≠a.7Z.HASH且如上所述存在从7Z格式向RAR格式和ZIP格式的转换策略(即,满足确定在所述元数据库中未存储与所计算的第一格式的第一数据的特征值相同的所述第一格式的其他数据的特征值、且确定在用于存储不同格式之间的转换策略的转换策略库中存在从所述第一格式向一个或多个第二格式的转换策略的条件),则根据该转换策略,将数据c.7Z转换为数据c.RAR和数据c.ZIP、并计算数据c.RAR和数据c.ZIP的哈希值c.RAR.HASH和c.ZIP.HASH。由于c.7Z.HASH≠a.7Z.HASH,则存储数据c.7Z本身。另外,在一个实施例中,在元数据库中,以对应于数据c.7Z的方式,存储所计算的各个哈希值c.7Z.HASH、c.ZIP.HASH和c.RAR.HASH。
根据图6A和6B的方法600的处理,能在减少格式转换和计算哈希值的计算量以及减少比较各个哈希值的时间和成本的情况下,减少存储的数据量。
但是,在某些情况下,在转换策略库中可能存在从第一格式转换到至少一个第二格式的转换策略、而不存在从至少一个第二格式转换到第一格式的转换策略,在该情况下,如果根据图6A和6B的方法600确定所计算的原始输入数据的哈希值等于元数据库中已经存储的哈希值、则不计算所述第一数据能转换为的至少一个第二格式的数据的特征值的话,则有可能无法通过比较第二格式的数据的哈希值来确定以后要存储进来的第二格式的其他数据是否与该第一格式的第一数据来自同一源,因为该第二格式无法(无损地)转换为第一格式。因此,在该情况下,可能存在从第一格式转换到至少一个第二格式的转换策略、而不存在从至少一个第二格式转换到第一格式的转换策略的情况下,则可以规定要计算所述第一数据能转换为的至少一个第二格式的数据的特征值。接下来,结合图7A和7B的方法700来说明能解决上述问题的实施例。
图7A示出了根据本发明的另一实施例的用于数据管理的方法700的示例流程图,图7B和7C示出了用于说明图7A的方法的示意图。如图7A所示,该方法700包括:步骤S701,计算第一格式的第一数据的特征值、和响应于存在从第一格式转换到至少一个第二格式的转换策略、而不存在从至少一个第二格式转换到第一格式的转换策略,则根据所述转换策略,计算所述第一数据能转换为的至少一个第二格式的数据的特征值;S702,响应于所计算的各个特征值中的一个与已存储的对应于第二数据的特征值相同,存储所述第一数据和所述第二数据中的一个。
如图7B和图7C中所示,转换策略库中只存在RTF格式向TXT格式的转换策略,而不存在从TXT格式向RTF格式的转换策略,即在两个格式之间只存在单向转换。本公开中的“单向转换”可以指的是非双向无损转换。例如,从1080p分辨率的视频文件转换为720p分辨率是可以进行无损转换的,而从720p分辨率的视频文件转换为1080p分辨率时,虽然也能转换,但从720p转换的1080p的文件与原始1080p的文件相比是有损失的,则可以认为该1080p和720p的格式转换为单向转换,且从RTF格式向TXT格式的转换也是这种单向转换。
图7B示出了先输入数据a.RTF再输入数据b.TXT的情况。如图7B所示,如果先输入数据a.RTF,根据图7A的方法,在步骤S701中,计算输入的数据a.RTF的哈希值a.RTF.HASH、和响应于在转换策略库中存在从RTF格式转换到TXT格式的转换策略、而不存在从TXT格式转换到RTF格式的转换策略,则根据所述转换策略,将a.RTF转换为TXT格式的数据a.TXT、并计算数据a.TXT的哈希值a.TXT.HASH,而不管在元数据库中是否存在与输入数据的哈希值a.RTF.HASH相同的哈希值。也就是说,不像图6A和6B的方法600所述的那样,在元数据库中存在与输入数据的哈希值a.RTF.HASH相同的RTF格式的哈希值,就不进行转换和计算哈希值了。接下来,如果在元数据库中事先没有存储任何哈希值,则所计算的各个哈希值a.RTF.HASH和a.TXT.HASH都与元数据库中存储的哈希值不相同,存储数据a.RTF。另外,可以在元数据库中存储所计算的各个哈希值,a.RTF.HASH和a.TXT.HASH。
在这种情况下,与图6A和6B所示的情况相比,图7A的方法不管该数据a.RTF的哈希值a.RTF.HASH是否与在元数据库中事先存储的RTF格式的数据的哈希值相同,都根据转换策略,将a.RTF转换为TXT格式的数据a.TXT、并计算数据a.TXT的哈希值a.TXT.HASH。而如图7A的方法,规定了在转换策略库中存在从RTF格式转换到TXT格式的转换策略、而不存在从TXT格式转换到RTF格式的转换策略的情况下,将a.RTF转换为TXT格式的数据a.TXT、并计算数据a.TXT的哈希值a.TXT.HASH,那么在将来输入了一个与a.RTF来自同一源数据的b.TXT数据,可以通过计算b.TXT数据本身的哈希值b.TXT.HASH,就可以通过a.TXT.HASH和b.TXT.HASH是否相同来确定a.RTF和b.TXT数据是否来自同一源。
具体地,如图7B的例子所示,接下来,输入数据b.TXT,计算数据b.TXT的哈希值b.TXT.HASH,则此时,因为在转换策略库中不存在从TXT格式转换到RTF格式的转换策略,则不将b.TXT转换为b.RTF,也不计算其哈希值。而响应于b.TXT.HASH==在元数据库中存储的哈希值a.TXT.HASH,则可以不存储b.TXT,而用指向a.RTF的指针来取代。
图7C示出了首先输入数据b.TXT再输入数据a.RTF的情况。例如,如图7C所示,如果先输入数据b.TXT,计算输入的数据b.TXT的哈希值b.TXT.HASH、和响应于在转换策略库中不存在从TXT格式转换到RTF格式的转换策略,则不将b.TXT转换为b.RTF,也不计算其哈希值。如果在元数据库中事先没有存储任何哈希值,则所计算的各个哈希值b.TXT.HASH都与元数据库中存储的哈希值不相同,存储数据b.TXT。另外,可以在元数据库中存储所计算的各个哈希值,即,b.TXT.HASH。
接下来,输入数据a.RTF,计算输入的数据a.RTF的哈希值a.RTF.HASH、和响应于在转换策略库中存在从RTF格式转换到TXT格式的转换策略、而不存在从TXT格式转换到RTF格式的转换策略,则根据所述转换策略,将a.RTF转换为TXT格式的数据a.TXT、并计算数据a.TXT的哈希值a.TXT.HASH。
在该情况下,图7A的方法中的步骤S702还可以包括:响应于所计算的所述至少一个第二格式的数据的特征值中的一个与已存储的对应于第二数据的特征值相同:存储所述第一数据;删除所述第二数据;并取代所删除的第二数据而存储指向所述第一数据的指示符。例如,如图7C所示,响应于所计算的转换后的TXT格式的数据a.TXT的哈希值a.TXT.HASH==在元数据库中存储的b.TXT.HASH,则可以确定数据a.RTF与在元数据库中存储的b.TXT.HASH所对应的数据b.TXT来自同一源,因此此时,如之前所述,由于存储器中还存储了b.TXT,在一个实施例中,为了避免数据冗余,可以从存储器中删除先前存储的数据b.TXT,且取代所删除的数据b.TXT而存储指向数据a.RTF的指针(如图7C所示)。另外,可以在元数据库中存储所计算的各个哈希值,a.RTF.HASH和a.TXT.HASH(如图7C所示)。
如此,即使在先输入且存储了不能转换的b.TXT、后输入来自同一源数据的能转换的a.RTF的情况下,也能够发现该来自同一源数据的b.TXT,并通过删除先前存储的b.TXT,用指向该a.RTF的指针来取代删除的b.TXT,并存储a.RTF本身,从而达到数据去重的目的,并在日后要提取未存储的b.TXT时也可以通过该指向该a.RTF的指针来找到a.RTF,以及通过从RTF格式转换到TXT格式的转换策略,还原a.TXT作为b.TXT(以后还将参考图8详细描述)。
根据图7A和7B的方法700,即使存在单向转换的数据的情况下,也可以在保持良好的用户体验的情况下,减少存储的数据量。
以上参考图2到图7例示了用于数据管理的方法在存储数据或整理已存储的数据时的一些实施例。
图8示出了根据本发明的另一实施例的用于数据管理的方法在提取数据时的处理800的示例流程图。该处理800包括:步骤S801,接收提取该第一格式的第一数据的请求;步骤S802,查找该第一格式的第一数据和指向第二数据的指示符中的一个;以及步骤S803,基于该查找的结果,提供该第一格式的第一数据、该指示符所指向的第一格式的第二数据、和根据不同格式之间的转换策略将该指示符所指向的非第一格式的第二数据转换为的第一格式的数据中的一个,作为该第一格式的第一数据。
如之前图2-7例示的各个实施例,用于数据管理的方法可能得到如下结果:直接存储了数据本身;或指向其他数据的指针;其他结果。
在直接存储了数据本身的情况下,则在步骤S802中,查找到该第一数据本身,如果要提取该第一数据,则在步骤S803中,直接提供查找到的该第一数据。
在存储了指向其他数据的指针的情况下,在步骤S802中,查找到指向其他数据的指针,如果存储的指针所指向的其他数据具有第一格式,则在步骤S803中,不需要转换而直接提供该指针所指向的该其他数据作为第一数据。
或者,在该指向的其他数据可能与要存储或整理的数据具有不同的格式的情况下,例如,步骤S802中,查找到指向其他数据的指针,如果存储的指针所指向的其他数据是非第一格式的,则在步骤S803中,可以根据转换策略,来将该指针指向的其他数据转换为第一格式,并提供转换为的第一格式的数据作为要提取的第一数据。注意,在该实施例中,在提取数据时所参考的转换策略库可以与在存储(或整理)数据时所参考的转换策略库相同,也可以是预先设定和/或可扩展的。但是,这不是限制,而在某些情况下,提取和存储时的两个转换策略库也可以不相同。
注意,本公开中的“指向”数据可能直接指向一个数据,也有可能直接指向另一指针,而该另一指针可能再指向一个数据,即“指向”数据可能间接地指向一个数据。因此本公开中的“指向”数据可以包括直接或间接指向数据。
如此,根据图8的方法800,可以在减少了数据量的情况下还能使得用户很好地提取所想要的数据,获得良好的用户体验。
由此,根据本发明的实施例的根据图2-图8的方法,在比较对于输入的数据和能转换的格式的数据计算的哈希值和已存储了的哈希值之后,可以确定来自同一源数据的两个数据,并选择性地存储来自同一源数据的两个数据之一,从而在减少比较的数据量的情况下减少数据存储量。根据本发明的实施例的方法还可以不存储被选择为不存储的另一数据而存储指向选择存储的数据的指针,从而便于用户日后提取该未存储的另一数据,保持良好的用户体验。根据本发明的实施例的方法还可以在元数据库中存储所计算的原始输入的数据和转换后的数据的哈希值,以便于以后的哈希值的比较。根据本发明的一些实施例的方法还可以在减少格式转换的计算量、减少计算哈希值的计算量和/或减少比较各个哈希值的比较的时间和成本的情况下,减少存储的数据量。
图9示出了根据本发明的另一实施例的用于数据管理的系统900的示例方框图。图9所示的用于数据管理的系统900包括:计算单元901,被配置为计算下列特征值中的一个或多个:第一格式的第一数据的特征值、和所述第一数据能转换为的一个或多个第二格式的数据的特征值,所述特征值唯一地表示具体格式的数据的至少一部分比特的排列特征;以及管理单元902,被配置为响应于所计算的各个特征值中的一个与已存储的对应于第二数据的特征值相同,存储所述第一数据和所述第二数据中的一个。根据一个实施例,该特征值是哈希值。
图10示出说明图9的用于数据管理的系统900的处理的示意图。
参考图10,根据一个实施例,图9所示的管理单元902还可以被配置为:响应于存储该第一数据和该第二数据中的一个(在图10的例子中,保留存储第二数据),可以不存储该第一数据和该第二数据中的另一个(在图10的例子中,不存储第一数据),而可以存储指向该第一数据和该第二数据中的该一个的指示符(在图10的例子中,存储指向第二数据的指示符)。参考图10,根据一个实施例,图9所示的管理单元902还可以被配置为:响应于所计算的每个特征值与已存储的特征值都不相同,则存储该第一数据。因此,如图10所示,该管理单元902可能存储第一数据,或者可选地不存储第一数据而存储指向第二数据的指示符。
参考图10,根据一个实施例,图9所示的管理单元902还可以被配置为:以对应于该第一数据的方式,存储所计算的各个特征值。因此,如图10所示,管理单元902还可以在用于存储特征值的元数据库中,存储所计算的第一格式的第一数据的特征值、和所述第一数据能转换为的一个或多个第二格式的数据的特征值。
参考图10,根据一个实施例,图9所示的计算单元901可以包括第一计算单元(未示出),被配置为计算第一格式的第一数据的特征值;以及第二计算单元(未示出),被配置为至少根据不同格式之间的转换策略,确定是否计算所述第一数据能转换为的一个或多个第二格式的数据的特征值。参考图10,根据本发明的一个实施例,可以在转换策略库中存储这些不同格式之间的转换策略,且该转换策略库中的转换策略可以是预设和/或可扩展的。
参考图10,根据一个实施例,该第二计算单元(未示出)可以被配置为:响应于存在从该第一格式向一个或多个第二格式的转换策略,则根据转换策略,计算所述第一数据能转换为的一个或多个第二格式的数据的特征值。
参考图10,根据一个实施例,该第二计算单元(未示出)可以被配置为:响应于未存储与所计算的第一格式的第一数据的特征值相同的该第一格式的其他数据的特征值、且确定存在从该第一格式向一个或多个第二格式的转换策略,则计算所述第一数据能转换为的一个或多个第二格式的数据的特征值。
参考图10,根据一个实施例,第二计算单元可以被配置为:响应于存在从第一格式转换到至少一个第二格式的转换策略、而不存在从至少一个第二格式转换到第一格式的转换策略,则根据该转换策略,计算所述第一数据能转换为的至少一个第二格式的数据的特征值。在该情况下,根据一个实施例,图9所示的管理单元901还可以被配置为:响应于所计算的该至少一个第二格式的数据的特征值中的一个与已存储的对应于第二数据的特征值相同:存储该第一数据;删除该第二数据;并存储指向该第一数据的指示符。
参考图10,图9所示的系统900还可以包括:接收单元(未示出),被配置为接收提取该第一格式的第一数据的请求;查找单元(未示出)被配置为查找该第一格式的第一数据和指向第二数据的指示符中的一个;以及提供单元(未示出),被配置为基于该查找的结果,提供该第一格式的第一数据、该指示符所指向的第一格式的第二数据、和根据不同格式之间的转换策略将该指示符所指向的非第一格式的第二数据转换为的第一格式的数据中的一个,作为该第一格式的第一数据。
顺带提及,根据本发明的实施例的用于数据管理的系统900还可以包括用于实现参考图2-8所示的上述用于数据管理的方法的各个步骤和功能的装置、模块、或部件,在此不一一赘述。
根据本发明的实施例的该图9和10所示的系统900,在比较对于输入的数据和能转换的格式的数据计算的哈希值和已存储了的哈希值之后,可以确定来自同一源数据的两个数据,并选择性地存储来自同一源数据的两个数据之一,从而在减少比较的数据量的情况下减少数据存储量。该系统900还可以不不存储的另一数据,而存储指向存储的数据的指针,从而便于用户日后提取该未存储的另一数据,保持良好的用户体验。该系统900还可以在元数据库中存储原始输入的数据和转换后的数据的哈希值,以便于以后的哈希值的比较。系统900的一些实施例还可以在减少格式转换的计算量、减少计算哈希值的计算量和/或减少比较各个哈希值的比较的时间和成本的情况下,减少存储的数据量。注意,本公开中提到的优点和效果仅是示例而非对本发明的限制。
附图中的示例流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (18)

1.一种用于数据管理的方法,包括:
计算第一格式的第一数据的特征值;
至少根据不同格式之间的转换策略,确定是否计算所述第一数据能转换为的一个或多个第二格式的数据的特征值,所述特征值唯一地表示具体格式的数据的至少一部分比特的排列特征;以及
响应于所计算的各个特征值中的一个与已存储的对应于第二数据的特征值相同,存储所述第一数据和所述第二数据中的一个。
2.根据权利要求1所述的方法,还包括:
响应于存储所述第一数据和所述第二数据中的一个,存储指向所述第一数据和所述第二数据中的所述一个的指示符。
3.根据权利要求1所述的方法,还包括:
响应于所计算的每个特征值与已存储的特征值都不相同,则存储所述第一数据。
4.根据权利要求1所述的方法,还包括:
以对应于所述第一数据的方式,存储所计算的各个特征值。
5.根据权利要求1所述的方法,其中,所述至少根据不同格式之间的转换策略,确定是否计算所述第一数据能转换为的一个或多个第二格式的数据的特征值的步骤包括:
响应于存在从所述第一格式向一个或多个第二格式的转换策略,则根据所述转换策略,计算所述第一数据能转换为的一个或多个第二格式的数据的特征值。
6.根据权利要求5所述的方法,其中,所述响应于存在从所述第一格式向一个或多个第二格式的转换策略,则根据所述转换策略,计算所述第一数据能转换为的一个或多个第二格式的数据的特征值的步骤包括:
响应于未存储与所计算的第一格式的第一数据的特征值相同的所述第一格式的其他数据的特征值、且存在从所述第一格式向一个或多个第二格式的转换策略,则根据所述转换策略,计算所述第一数据能转换为的一个或多个第二格式的数据的特征值。
7.根据权利要求1中的所述的方法,其中,所述至少根据不同格式之间的转换策略,确定是否计算所述第一数据能转换为的一个或多个第二格式的数据的特征值的步骤包括:
响应于存在从第一格式转换到至少一个第二格式的转换策略、而不存在从至少一个第二格式转换到第一格式的转换策略,则根据所述转换策略,计算所述第一数据能转换为的至少一个第二格式的数据的特征值。
8.根据权利要求7中的所述的方法,其中,所述响应于所计算的各个特征值中的一个与已存储的对应于第二数据的特征值相同,存储所述第一数据和所述第二数据中的一个的步骤包括:
响应于所计算的所述至少一个第二格式的数据的特征值中的一个与已存储的对应于第二数据的特征值相同:
存储所述第一数据;
删除所述第二数据;以及
存储指向所述第一数据的指示符。
9.根据权利要求2所述的方法,还包括:
接收提取所述第一格式的第一数据的请求;
查找所述第一格式的第一数据和指向所述第二数据的指示符中的一个;以及
基于所述查找的结果,提供所述第一格式的第一数据、所述指示符所指向的第一格式的第二数据、和根据不同格式之间的转换策略将所述指示符所指向的非第一格式的第二数据转换为的第一格式的数据中的一个,作为所述第一格式的第一数据。
10.一种用于数据管理的系统,包括:
第一计算单元,被配置为计算第一格式的第一数据的特征值;
第二计算单元,被配置为至少根据不同格式之间的转换策略,确定是否计算所述第一数据能转换为的一个或多个第二格式的数据的特征值,所述特征值唯一地表示具体格式的数据的至少一部分比特的排列特征;以及
管理单元,被配置为响应于所计算的各个特征值中的一个与已存储的对应于第二数据的特征值相同,存储所述第一数据和所述第二数据中的一个。
11.根据权利要求10所述的系统,其中,所述管理单元还被配置为:
响应于存储所述第一数据和所述第二数据中的一个,存储指向所述第一数据和所述第二数据中的所述一个的指示符。
12.根据权利要求10所述的系统,其中,所述管理单元还被配置为:
响应于所计算的每个特征值与已存储的特征值都不相同,则存储所述第一数据。
13.根据权利要求10所述的系统,其中,所述管理单元还被配置为:
以对应于所述第一数据的方式,存储所计算的各个特征值。
14.根据权利要求10所述的系统,其中,所述第二计算单元被配置为:
响应于存在从所述第一格式向一个或多个第二格式的转换策略,则根据所述转换策略,计算所述第一数据能转换为的一个或多个第二格式的数据的特征值。
15.根据权利要求14所述的系统,其中,所述第二计算单元被配置为:
响应于未存储与所计算的第一格式的第一数据的特征值相同的所述第一格式的其他数据的特征值、且在存在从所述第一格式向一个或多个第二格式的转换策略,则根据所述转换策略,将计算所述第一数据能转换为的一个或多个第二格式的数据的特征值。
16.根据权利要求10中的所述的系统,其中,所述第二计算单元被配置为:
响应于存在从第一格式转换到至少一个第二格式的转换策略、而不存在从至少一个第二格式转换到第一格式的转换策略,则根据所述转换策略,计算所述第一数据能转换为的至少一个第二格式的数据的特征值。
17.根据权利要求16中的所述的系统,其中,所述管理单元被配置为:
响应于所计算的所述至少一个第二格式的数据的特征值中的一个与已存储的对应于第二数据的特征值相同:
存储所述第一数据;
删除所述第二数据;以及
存储指向所述第一数据的指示符。
18.根据权利要求11所述的系统,还包括:
接收单元,被配置为接收提取所述第一格式的第一数据的请求;
查找单元,被配置为查找所述第一格式的第一数据和指向第二数据的指示符中的一个;以及
提供单元,被配置为基于所述查找的结果,提供所述第一格式的第一数据、所述指示符所指向的第一格式的第二数据、和根据不同格式之间的转换策略将所述指示符所指向的非第一格式的第二数据转换为的第一格式的数据中的一个,作为所述第一格式的第一数据。
CN201310155895.1A 2013-04-28 2013-04-28 用于数据管理的方法和系统 Active CN104123309B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310155895.1A CN104123309B (zh) 2013-04-28 2013-04-28 用于数据管理的方法和系统
US14/263,016 US9910857B2 (en) 2013-04-28 2014-04-28 Data management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310155895.1A CN104123309B (zh) 2013-04-28 2013-04-28 用于数据管理的方法和系统

Publications (2)

Publication Number Publication Date
CN104123309A CN104123309A (zh) 2014-10-29
CN104123309B true CN104123309B (zh) 2017-08-25

Family

ID=51768721

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310155895.1A Active CN104123309B (zh) 2013-04-28 2013-04-28 用于数据管理的方法和系统

Country Status (2)

Country Link
US (1) US9910857B2 (zh)
CN (1) CN104123309B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677645B (zh) * 2014-11-17 2018-12-21 阿里巴巴集团控股有限公司 一种数据表比对方法和装置
US9552384B2 (en) 2015-06-19 2017-01-24 HGST Netherlands B.V. Apparatus and method for single pass entropy detection on data transfer
US10152389B2 (en) 2015-06-19 2018-12-11 Western Digital Technologies, Inc. Apparatus and method for inline compression and deduplication
CN106708927B (zh) * 2016-11-18 2021-01-05 北京二六三企业通信有限公司 文件的去重处理方法和装置
US11250017B2 (en) 2018-04-06 2022-02-15 Matchcraft Llc Object transformation based on object groupings
CN109558163B (zh) * 2018-11-09 2021-12-17 中核控制系统工程有限公司 一种基于控制器中运行文件的版本生成和管理方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103065041A (zh) * 2012-12-18 2013-04-24 湖南大唐先一科技有限公司 一种冗余数据检验方法

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3670307A (en) * 1969-12-23 1972-06-13 Ibm Interstorage transfer mechanism
US4558302A (en) * 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
US6189097B1 (en) * 1997-03-24 2001-02-13 Preview Systems, Inc. Digital Certificate
US6317746B1 (en) * 1998-05-18 2001-11-13 Mci Communications Corporation Software date and time services
US7002573B2 (en) * 2003-01-16 2006-02-21 1914 Holding Company Method and system for converting engineering data into 3D modeling data
JP2005078612A (ja) * 2003-09-04 2005-03-24 Hitachi Ltd ファイル共有システム及びファイル共有装置間のファイル移行方法
US7200604B2 (en) 2004-02-17 2007-04-03 Hewlett-Packard Development Company, L.P. Data de-duplication
US20050203872A1 (en) * 2004-03-05 2005-09-15 Kwong Kwan John M. Method and apparatus making, operating and using media parsers to mark, read, and unmark instances of media formats supporting one, two and multi-dimensional instances and data streams
JP4525115B2 (ja) * 2004-03-11 2010-08-18 日本電気株式会社 構造化文書処理装置、構造化文書処理方法、および構造化文書処理プログラム
US7984180B2 (en) * 2005-10-20 2011-07-19 Solarflare Communications, Inc. Hashing algorithm for network receive filtering
US8190902B2 (en) * 2006-02-27 2012-05-29 Microsoft Corporation Techniques for digital signature formation and verification
US7860825B2 (en) * 2006-05-08 2010-12-28 Palm, Inc. Method for synchronizing software application and user data for asynchronous client-server and peer to peer computer networks
US8667273B1 (en) * 2006-05-30 2014-03-04 Leif Olov Billstrom Intelligent file encryption and secure backup system
US8855296B2 (en) * 2006-06-28 2014-10-07 Voltage Security, Inc. Data processing systems with format-preserving encryption and decryption engines
JP4208912B2 (ja) * 2006-10-06 2009-01-14 キヤノン株式会社 文書検証装置およびその方法
US8527469B2 (en) * 2006-10-13 2013-09-03 Sony Corporation System and method for automatic detection of duplicate digital photos
US9038062B2 (en) * 2006-10-17 2015-05-19 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
CA2705379C (en) * 2006-12-04 2016-08-30 Commvault Systems, Inc. Systems and methods for creating copies of data, such as archive copies
US20130166580A1 (en) * 2006-12-13 2013-06-27 Quickplay Media Inc. Media Processor
JP5187308B2 (ja) * 2007-08-01 2013-04-24 日本電気株式会社 変換プログラム探索システムおよび変換プログラム探索方法
JP4457140B2 (ja) * 2007-10-02 2010-04-28 シャープ株式会社 画像処理方法、画像処理装置、画像形成装置、画像読取装置、コンピュータプログラム及び記録媒体
US8396838B2 (en) * 2007-10-17 2013-03-12 Commvault Systems, Inc. Legal compliance, electronic discovery and electronic document handling of online and offline copies of data
US7567188B1 (en) 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
EP2154641A1 (en) * 2008-08-14 2010-02-17 Crossgate AG Method and device for converting messages between different data formats
US20100082700A1 (en) 2008-09-22 2010-04-01 Riverbed Technology, Inc. Storage system for data virtualization and deduplication
KR20100066920A (ko) * 2008-12-10 2010-06-18 한국전자통신연구원 전자 문서 처리 장치 및 그 방법
EP2361417B1 (en) 2008-12-18 2022-02-16 BlackBerry Limited Methods and apparatus for content-aware data partitioning and data de-duplication
JP4714778B2 (ja) * 2009-02-25 2011-06-29 富士通株式会社 アーカイブ装置、変換装置および変換プログラム
US8140491B2 (en) 2009-03-26 2012-03-20 International Business Machines Corporation Storage management through adaptive deduplication
US8375211B2 (en) * 2009-04-21 2013-02-12 International Business Machines Corporation Optimization of signing soap body element
US8719240B2 (en) 2009-06-19 2014-05-06 International Business Machines Corporation Apparatus and method to sequentially deduplicate groups of files comprising the same file name but different file version numbers
JP5254141B2 (ja) * 2009-07-14 2013-08-07 富士通株式会社 アーカイブ装置、データ格納プログラムおよびデータ格納方法
KR101656813B1 (ko) * 2009-09-16 2016-09-12 아브 이니티오 테크놀로지 엘엘시 데이터세트 요소의 매핑
US8510275B2 (en) 2009-09-21 2013-08-13 Dell Products L.P. File aware block level deduplication
US8868508B2 (en) 2010-02-09 2014-10-21 Google Inc. Storage of data in a distributed storage system
US8600048B1 (en) * 2010-06-28 2013-12-03 Voltage Security, Inc. Format-translating encryption systems
US8266115B1 (en) 2011-01-14 2012-09-11 Google Inc. Identifying duplicate electronic content based on metadata
GB2477607B (en) * 2011-01-17 2011-12-28 Quantum Corp Sampling based data de-duplication
US8572134B2 (en) * 2011-06-20 2013-10-29 Bank Of America Corporation Transforming and storing messages in a database
US20130018704A1 (en) 2011-07-13 2013-01-17 Ying Liu Systems and methods for determining school geographic boundaries and related searches
US9442951B2 (en) 2011-09-23 2016-09-13 Dell Products L.P. Maintaining deduplication data in native file formats
US8862897B2 (en) * 2011-10-01 2014-10-14 Oracle International Corporation Increasing data security in enterprise applications by using formatting, checksums, and encryption to detect tampering of a data buffer
US9116812B2 (en) * 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US9342537B2 (en) * 2012-04-23 2016-05-17 Commvault Systems, Inc. Integrated snapshot interface for a data storage system
US9356574B2 (en) * 2012-11-20 2016-05-31 Karl L. Denninghoff Search and navigation to specific document content
US9633022B2 (en) * 2012-12-28 2017-04-25 Commvault Systems, Inc. Backup and restoration for a deduplicated file system
US9219772B2 (en) * 2013-03-06 2015-12-22 Ringcentral, Inc. Persistent format conversions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103065041A (zh) * 2012-12-18 2013-04-24 湖南大唐先一科技有限公司 一种冗余数据检验方法

Also Published As

Publication number Publication date
CN104123309A (zh) 2014-10-29
US9910857B2 (en) 2018-03-06
US20140324795A1 (en) 2014-10-30

Similar Documents

Publication Publication Date Title
CN104123309B (zh) 用于数据管理的方法和系统
US10264039B2 (en) Streaming content and placeholders
US9645787B1 (en) Tag-based electronic media playlist processing
US20180260114A1 (en) Predictive models of file access patterns by application and file type
US11436199B2 (en) Conversion of data for operating systems
US8977963B1 (en) In place expansion of aggregated views
US20180322138A1 (en) Independent synchronization with state transformation
CN107526777A (zh) 一种基于版本号对文件进行处理的方法及设备
US8634947B1 (en) System and method for identifying digital files
US20120150824A1 (en) Processing System of Data De-Duplication
US11194955B2 (en) Method and system of a user associating a first webpage web link and second webpage link and viewing of the contents of the webpage links by the selection of the first webpage link
US20130067080A1 (en) Storage and Communication De-Duplication
EP3375168B1 (en) Transferring a container file over a network
US20220279238A1 (en) Systems and methods to handle queries comprising a media quote
US9020902B1 (en) Reducing head and tail duplication in stored data
CA2722511C (en) Efficient change tracking of transcoded copies
US20110138078A1 (en) Compressing photos for devices
US8051090B2 (en) File management method of a ring buffer and related file management apparatus
CN109033152A (zh) 一种文件重定向的方法及装置
TW201224787A (en) A deduplication system
Leekha et al. Detection and Localization of Content deduplication using 64-bit architecture of SHA-256

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant