CN104160397A - 位置独立文件 - Google Patents

位置独立文件 Download PDF

Info

Publication number
CN104160397A
CN104160397A CN201380012500.0A CN201380012500A CN104160397A CN 104160397 A CN104160397 A CN 104160397A CN 201380012500 A CN201380012500 A CN 201380012500A CN 104160397 A CN104160397 A CN 104160397A
Authority
CN
China
Prior art keywords
data
data segment
file
hashed value
access file
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.)
Granted
Application number
CN201380012500.0A
Other languages
English (en)
Other versions
CN104160397B (zh
Inventor
D·S·霍恩
J·D·冲
王文广
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.)
Apple Inc
Original Assignee
Apple Computer Inc
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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN104160397A publication Critical patent/CN104160397A/zh
Application granted granted Critical
Publication of CN104160397B publication Critical patent/CN104160397B/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/178Techniques for file synchronisation in file systems
    • 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/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • 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/18File system types
    • G06F16/182Distributed file systems

Abstract

本发明公开了通过将数据单元转换成数据段和访问文件来管理数据单元,所述访问文件描述如何使用数据段的散列值来检索数据段。在数据存储操作中,将数据单元分成数据段并生成访问文件。访问文件包括数据段的分段方案信息、散列值的散列方案信息、描述散列值的散列识别信息、以及识别可用数据段处的位置的位置信息。在数据检索操作中,通过访问数据段并从其提取数据来检索来自数据单元的数据,其中基于数据单元的访问文件来检索数据段。

Description

位置独立文件
技术领域
以下发明涉及文件系统,并且更具体地,涉及用于位置独立文件的系统和方法。
背景技术
电子内容的广泛使用已导致用户要求更大的电子存储量来存储此类电子内容。然而,对于用户积累超过计算设备的容量的电子内容量通常是不常见的。例如,个人计算机上的电子存储量可基本上大于便携式媒体播放器的电子存储量。因此,需要用户限制从个人计算机传输至便携式媒体播放器的电子内容量。类似的问题可在试图在具有不同存储容量的两个独立的计算设备上同步电子内容时出现。
此类情况的一个解决方案通常是允许向不足量的设备添加另外的存储装置。然而,向一些类型的设备添加存储装置通常是不可行的或甚至是不可能的。例如,一些类型的便携式媒体播放器可能未被配置为允许扩展它们的存储容量。又如,可通过附接外部存储设备诸如外部硬盘驱动器来扩展一些计算设备的存储容量,这些计算设备诸如便携式或膝上型计算机。然而,由于膝上型计算机的便携性可能变得受限,所以该解决方案可能不可行。
此类情况的另一个解决方案通常是允许计算设备经由网络连接来访问另外的存储装置。即,远程计算设备被配置为允许本地计算设备利用远程计算设备的存储容量。在操作中,可将具有电子内容的文件存储在远程计算设备上。随后本地计算设备可通过将文件从远程计算设备传输或复制到本地计算设备来利用该文件。可永久地或暂时地将文件存储在本地计算设备上。然而,由于本地计算设备处的用户在访问前必须等待全部文件被传输,这可能导致对访问的明显的时延。另外,在文件只是暂时地存储在本地计算设备上的情况下,将有必要利用对文件的任何更新来更新远程计算系统。另外,这通常需要随后将本地计算设备上的文件从本地计算设备传输回远程计算设备,从而增加另外的时延。
发明内容
因此,本技术提供了用于管理和使用在多个位置处的电子内容的系统和方法。本技术的一个方面是提供电子内容的数据存储。具体地,将代表电子内容的一个或多个文件的数据单元转换成访问文件和存储在一个或多个位置(本地或远程)处的一系列数据段。数据段中的每一个代表与不同的散列值相关联的数据单元的不同部分,并且可被配置为允许通过通信网络对其进行高速传输。
访问文件包含关于数据单元和相关联的数据段的信息。具体地,访问文件包括与数据单元相关联的元数据、数据段的分段方案信息、散列值的散列方案信息、数据段的位置和用于确定数据段的散列值的一个或多个散列识别值。在一些配置中,所述一个或多个识别值可由数据段的散列值的散列生成。作为另外一种选择,所述值还可以是散列值本身。
本技术随后可按如下所示用于进行数据检索。在本地系统处,不是存储数据单元,而是存储电子内容的访问文件,并且本地系统被配置为使用对应的访问文件来服务数据单元的任何请求。因此,当本地系统请求访问数据单元时,利用访问文件来确定需要用数据单元的哪部分来履行请求,并且确定检索哪个数据段。另外,基于访问文件中的散列信息,通过识别提供匹配的散列值的数据段来检索所需的数据段。
在由数据段所代表的数据单元的使用率足够高的事件中,本技术允许至少使用频率最高的数据段的持久存储。作为另外一种选择,可使用数据段和访问文件在本地系统处重新组装数据单元。
本技术还允许生成数据单元的不同版本,而不需要生成数据单元的每个版本的独立的分立副本。例如,当访问数据段导致数据段的更新时,所更新的片段的所得散列值将不同于初始数据段的散列值。因此,可仅通过生成代表数据单元的更新版本的更新访问文件来“创建”更新的数据单元,其中通过基于更新的数据段提供新散列识别值来代表数据单元的更新版本。
本技术还可提供增强的文件系统及其方法。一般来讲,计算设备处的存储装置通常包括使用的和未使用的部分。通过文件系统在逻辑上管理使用部分来提供存储在本地设备上的数据单元的逻辑存储装置。在本技术中,文件系统还被配置为利用未使用部分作为从远程系统检索的数据段的存储。即,如先前所述,访问文件存储在逻辑存储装置中并用于服务相关联的数据单元的请求。随后将数据段存储在未使用的空间中并经由它们的散列值来进行访问。在对于正检索的数据段不具有可用的足够空间的事件中,可基于优先级标准将其他的数据段删除或覆写。另外,文件系统可被配置为通过基于一些标准的至和来自数据段的数据单元来管理逻辑存储装置。
附图说明
图1示出了示例性计算设备;
图2是访问文件和相关联的数据段的配置的实施例的示意图;
图3是计算系统的实施例的示意图;
图4是用于将数据单元转换成访问文件和相关联的片段的方法的实施例中的步骤的流程图;
图5是用于将数据单元转换成访问文件和相关联的片段的系统的实施例的示意图;
图6是用于使用访问文件和相关联的片段来访问数据单元的方法的实施例中的步骤的流程图;
图7是用于将访问文件和相关联的片段转换成数据单元的方法的实施例中的步骤的流程图;
图8是用于生成数据单元的不同版本的方法的实施例中的步骤的流程图;以及
图9是计算系统的另选实施例的示意图。
具体实施方式
下面详细讨论了本发明所公开的方法和布置的各种实施例。虽然讨论了特定的具体实施,但应当理解这仅仅是为了说明性目的而进行的。相关领域中的技术人员将认识到,在不脱离本公开的实质和范围的情况下可使用其他部件、配置和步骤。
参考图1,其示出了可为便携式或固定式的通用计算设备100,所述通用计算设备包括处理单元(CPU)120以及将各种系统部件耦合到处理器120的系统总线110,这些系统部件包括系统存储器,诸如只读存储器(ROM)140和随机存取存储器(RAM)150。其他系统存储器130也可加以使用。可以理解,本系统可在具有多于一个CPU 120的计算设备上或者在联网在一起以提供更大处理能力的计算设备的群组或群集上操作。系统总线110可以是若干类型的总线结构中的任一种,这些总线结构包括存储器总线或存储器控制器、外围总线,以及使用若干总线架构中的任一种的本地总线。存储在ROM 140等中的基本输入/输出系统(BIOS)可以提供基本例程,该例程有助于在诸如启动期间在计算设备100内的元件之间传输信息。计算设备100还包括存储设备160,诸如硬盘驱动器、磁盘驱动器、光盘驱动器、磁带驱动器、固态驱动器等。存储设备160通过驱动器接口连接到系统总线110。驱动器和相关联的计算机可读介质为计算设备100提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。在一个方面,执行特定功能的硬件模块包括存储在有形的计算机可读介质中的软件部件,该有形的计算机可读介质结合有必要的硬件部件,诸如CPU、总线、显示器等以执行该功能。基本部件对于本领域的那些技术人员是已知的,并且根据设备的类型可以设想到适当的变型,这些设备的类型诸如设备是小型的手持计算设备、台式计算机或是大型的计算机服务器。
虽然本文所述的示例性环境采用了硬盘,但本领域的那些技术人员应当理解,在示例性操作环境中也可使用可存储可由计算机访问的数据的其他类型的计算机可读介质,该计算机可读介质诸如磁带盒、闪存卡、数字通用光盘、卡盘、随机存取存储器(RAM)、只读存储器(ROM)、包含比特流等的电缆或无线信号等。
为了使得用户能够与计算设备100进行交互,输入设备190代表任何数量的输入机构,诸如键盘、鼠标、运动输入、语音、用于语音的麦克风、用于手势或图形输入的触摸屏等。输出设备170也可以是本领域的那些技术人员已知的多个输出机构中的一个或多个。例如,可连接于或可包含显示器或扬声器的视频输出或音频输出设备是常见的。另外,视频输出和音频输出设备还可包括针对这些特定功能的增强性能的特定处理器。在一些情况下,多模系统使得用户能够提供多种类型的输入以与计算设备100通信。通信接口180通常支配和管理用户输入和系统输出。对在任何特定硬件布置上操作的公开的方法和设备不存在限制并且因此所述基本特征可容易地在开发出改进的硬件或固件布置之后替换为这些硬件或固件布置。为了清楚地说明,示例性系统被呈现为包括各个功能块,(包括被标记为“处理器”的功能块)。这些块所代表的功能可通过使用共享的或专用的硬件来提供,所述硬件包括但不限于能执行软件的硬件。例如,图1中呈现的一个或多个处理器的功能可由单个共享的处理器或多个处理器提供。(术语“处理器”的使用不应当理解为唯一地指代能够执行软件的硬件。)示例性实施例可包括微处理器和/或数字信号处理器(DSP)硬件、用于存储执行下文讨论的操作的软件的只读存储器(ROM)、以及用于存储结果的随机存取存储器(RAM)。还可提供超大规模集成电路(VLSI)、现场可编程门阵列(FPGA)和专用集成电路(AW)硬件实施例。
各实施例的逻辑操作被实现为:(1)运行于通用计算机内的可编程电路上的一系列计算机实施的步骤、操作或过程,(2)运行于专用可编程电路上的一系列计算机实施的步骤、操作或过程;和/或(3)可编程电路内的互连的机器模块或程序引擎。
现在转向图2,其示出了根据本技术的访问文件和相关联的数据段的配置的示意图。如上所述,本技术的一个方面提供了用于存储数据单元的替代方法,所述数据单元代表电子内容的一个或多个项目。参考图3和4将详细描述将数据单元转换成数据段和访问文件的处理。重新参考图2,数据单元的转换结果是云或访问文件202和存储在一个或多个位置206的一个或多个数据段204。
访问文件202是包括数据集合的数据文件,所述数据集合指出如何经由数据段204来访问数据。例如,如图2所示,访问文件202可被配置为存储与数据单元相关联的元数据202A。如图2所示,元数据202A可包括数据单元的扩展的逻辑大小。然而,本发明并不限于此,并且元数据202A还可包括与数据单元相关联的任何类型的元数据。举例来说,该元数据可包括日期信息、用户信息、文件类型信息以及属性信息。然而,202A还可包括任何其他类型的识别信息或比上述信息少的信息。在所述数据单元代表电子内容的多于一个项目的情况下,还可将每个项目的元数据包括在访问文件的元数据202A中。
除了元数据202A,访问文件还可包括分段方案信息202B。即,描述数据段的配置的任何信息。例如,如图2所示,分段方案信息202B可以是数据段204的大小。虽然图2中的分段方案信息202B示出了全部数据段204具有相同的大小64K,但是本技术并不限于此。如上所述,在一些情况下,各种数据段204的大小可变化。另外,分段方案信息202B并不仅限于大小信息。相反,在一些情况下,分段方案信息202B可规定关于如何构造数据段204的另外的细节。例如,数据段204可被配置为包括其他部分和由与数据单元相关联的数据组成的有效载荷部分的分组或文件。其他部分可包括用于错误检查、用于指示数据段中的数据的数据单元内的开始和结束位置、数据段和其他片段的关系以及任何其他信息的部分。因此,分段方案信息202B可规定数据段204的组成,使得在检索时将数据从数据段中正确地提取出来。规定该数据段204的结构和配置的任何其他信息还可在分段方案信息202B中被规定。
如上所述,数据段的大小可变化。然而,在许多配置中,可选择数据段的大小以提供对数据段的快速且有效的访问。即,可设置数据段的大小使得它们可以很小的或没有延迟或滞后在联网的设备之间传输。例如,可以相对小的带宽要求传输上述64K的片段。另外,还可选择片段大小以利用特定数据存储或数据分组进行配置。即,通常不将许多类型的存储设备和数据分组配置为各自访问数据,而是访问包括特定量的数据的块。因此,本技术还允许设置片段的大小以利用此类块的配置以便保持最高可能的吞吐量。
本技术的一个方面利用与数据段206相关联的散列值来检索数据段。因此,为了确定如何正确地确定散列值,访问文件202还可包括散列方案信息202C。在图2中,散列方案信息202C指定SHA2的散列类型。然而,本技术并不仅限于此,并且本技术中可使用任何其他类型的散列方案。下面将更加详细讨论散列方案的使用。
虽然本发明的描述将涉及术语“散列”、“散列值”、“散列函数”等,但是不应考虑以任何方式对这些术语的使用进行限制。例如,本文中所用的“散列函数”指代提供第一大小的第一数据集与小于第一大小的第二大小的第二数据集之间的映射或转换的任何子例程、算法、处理、方法等。
访问文件202的另外的部分是位置信息202D。位置信息202D可指定定位有数据段204的一个或多个位置206。在图2中,位置信息202D作为可信的统一资源定位符(URL)字符串的列表示出。然而,位置信息202D可在可定位有数据段204的位置处采用任何格式并且可指定任何类型的资源。另外,在一些配置中,位置信息202D可指示访问该位置的特定次序。例如,在其中数据段的冗余版本将要存储在主要和次要位置处的情况下,位置信息202D可指定首先访问主要位置,并且仅在数据段无法定位在主要位置时访问次要位置。
尽管位置信息202D的内容可以在创建访问文件时固定,但是在一些配置中,位置信息202D可随时间更新。即,在数据段的存储位置改变或者以其他方式调整的事件中,存储访问文件202的计算系统可被配置为接收此类更新并自动调整访问文件202。此类调整可以是全局性的或以逐个文件为基础。另外,更新还可反映利用访问文件202的计算设备的位置。即,基于计算设备的位置,所述更新可反映将导致对与访问文件202相关联的数据段的改善的访问的存储位置。
访问文件202还可包括散列识别(散列ID)信息202E。即信息直接或间接地指定数据段204的散列值。在一些配置中,散列ID信息202E可指定数据段的散列值的列表。作为另外一种选择,其可优选地限制访问文件202的文件大小或向访问文件提供基本上相同的大小和内容。在此类情况下,与不同数据单元相关联的散列值的数量可基于不同数据单元的大小显著变化。因此,在一些配置中,散列ID信息202E可指定一个或多个复合散列值。即,从与数据段相关联的散列值计算散列值。例如,如图2所示,对于与数据段204相关联的散列值208,可计算复合散列值210并将其用作散列ID信息202E。因此,在检索数据期间,可使用复合散列值210计算散列值208以检索数据段204。
如上所述,数据段204可包括指定数据段204的每个之间的关系或其与数据单元的关系的信息。然而,本技术中该类型的信息还可或作为另外一种选择,通过复合散列值210来存储。即,利用复合散列值210不仅可识别数据段204,还可确定各种数据段204之间的关系。例如,当数据单元经历分段以生成各种数据分段204时,存在定义各种数据段的内容如何在数据单元内布置的特定的次序、层次等。因此,为了生成复合散列值210,散列值208可首先以对应于数据单元中的数据段204之间的关系的次序布置。作为另外一种选择,还可生成代表关系的数据。然后,可通过获取散列值208的该结构的散列值或散列值208和结构数据的组合来生成复合散列值210。因此,复合散列值210不仅存储散列值208,还存储各种数据段204的关系信息。因此,需要将关于数据段204之间的关系的单独的信息存储在访问文件202或数据段204内,这进一步减少了数据段204和访问文件202的大小。
值得注意的是在一些配置中,访问文件可包括多个复合散列值208。复合散列值208的数量可基于各种因素。例如,如果数据单元包括多个文件或可沿明确限定的边界被分成多个部分,则可对于这些文件或部分生成单独的复合散列值208。因此,如果仅需要这些文件或部分中的一个,则只有复合散列值208中的对应的一个需要处理以确定数据段204中的相关联的一个。
上述存储配置启用了用于管理数据单元的新类型的文件系统。其参考图3示意性地例示。图3为根据本技术配置的计算设备300的示意图。
如图3所示,计算设备300包括文件系统302和用于存储计算系统300的数据并由文件系统302管理的核心存储装置304。在图3中,文件系统302被指示为增强的分层文件系统(HFS+),然而,本技术并不限于此,并且利用本技术可不限制地使用其他任何类型的文件系统。
在操作中,文件系统302将核心存储装置304管理作为两个或多个存储区域。具体地,可将核心存储装置304管理作为一个或多个的逻辑卷部分306(非阴影化的)和其他部分308(阴影化的)。文件系统302管理逻辑卷部分306以定义用于管理存储在计算系统中的数据单元的逻辑卷310。可由文件系统302以基本上常规的方式管理逻辑卷310以执行数据检索和数据存储。
文件系统302可使用其他部分308来定义用于在计算设备300处管理和存储数据段的内容可寻址存储装置(CAS)312。为了执行数据检索和数据存储,文件系统302和CAS 312按如下进行操作。
相对于数据检索,如上所述,本发明允许由访问文件和一个或多个数据段来代表数据单元。因此,当响应于请求而需要由计算设备来访问此类数据单元或其部分时,文件系统302被配置为处理数据单元的访问文件并确定该请求所需的数据段。
在本技术中,访问文件的位置可变化。在一些配置中,访问文件可存储在计算设备300内。另外,在计算设备300内,访问文件可存储在一个或多个位置中。例如,在一个或多个配置中,访问文件可存储在逻辑卷310内。在一个配置中,访问文件和在其中存储的任何数据单元一起作为另外的文件而存储在逻辑卷310中。在另一个配置中,对于访问文件的存储可留出逻辑卷310的一部分或甚至单独的一个逻辑卷(未示出)。然而,不需将访问文件存储在逻辑卷内。相反,可使用计算设备300中的其他数据存储装置。例如,文件系统302可具有专用的存储器或高速缓存以用于存储访问文件。
使用该信息,文件系统302可随后分析或查询CAS 312以确定其中的数据段是否可用。在一些配置中,分析可以是扫描CAS 312以确定数据段是否存储在其中,并包括基于访问文件获取的散列值。在其他配置中,文件系统302可访问在计算设备300处维护的表,该表包括存储有数据段的CAS 312中位置的列表和与CAS 312中的位置中的每个相关联的散列值。然后,确定在CAS 312中存在的数据段是否与期望的散列值相关联。
如果匹配来自访问文件的散列值的数据段在CAS 312中不可用,则可从远程存储装置314中检索数据段并将该数据段放置于CAS 312中。远程存储装置314中数据段的定位可以与CAS 312中数据段的定位相同或不同的方式执行。一旦数据段在CAS 312中可用,数据就按需要从数据段中提取。一旦CAS 312用数据段填充并且需要检索另外的数据段,就可覆写较旧的或使用频率不高的数据段。相似地,如果需要将数据单元添加至逻辑卷310并且CAS 312用数据填充段,则可覆写较旧的或使用频率不高的数据段以允许扩展逻辑卷。下面将参考图6对数据段的检索和访问过程进行更加详细的描述。
相对于数据存储(即将逻辑存储装置310中的数据单元转换成访问文件和数据段),文件系统302被配置为处理数据单元以生成访问文件和数据段。可随后将数据段复制到至少CAS 312。另外,可将数据段复制到远程存储装置314。可随后将逻辑存储装置310中的数据单元删除并且计算系统300可随后依靠访问文件和数据段所定义的数据单元的版本。下面将参考图4和5对数据存储过程进行更加详细的描述。
现在转向图4-8,如上所述,提供了利用访问文件和数据段的结构的各种方法以实现计算设备的文件系统的各种特征。
首先,将参考图4和5对转换数据单元的示例性方法和系统进行描述。图4为根据本技术的用于将数据单元转换成访问文件和相关联的数据段的示例性方法400中的步骤的流程图。图5为用于将数据单元转换成访问文件和相关联的数据段及其存储内容的计算设备(诸如图3中的计算设备300)内的示意性系统500的示意图。如图5所示,可提供控制器502以控制指令或配置信息504并向系统500的部件提供指令或配置信息504以进行方法400。如上参考图2所述,配置信息504可包括分段方案信息、散列方案信息和位置信息。
方法400开始于框402处并继续进行到框404。在框404处,可选择要进行转换的数据单元。例如,如图5所示,控制器502可确定需要将本地存储装置508中的特定数据单元506转换成访问文件和数据段。在一些配置中,框402处的选择可以是基于一个或多个因素或标准的自动选择。举例来说,此类标准可包括用途、年龄和大小。然而,本技术并不限于此并且控制器502可被配置为分析任何其他的因素或因素的组合以识别数据单元506。在其他配置中,框404处的选择可以是手动选择。即,用户可直接识别本地存储装置508中的数据单元。在另外的其他配置中,可提供对数据单元506的自动和手动识别的组合。
一旦在框404处选择了数据单元506,方法400就继续进行以处理数据单元,从在框406处将数据单元506分成数据段开始。例如,如图5所示,可将数据单元506引导至分段系统510的数据单元处理器512以基于配置信息504来生成数据段514。可根据各种标准执行数据单元506至数据段514的分段。该标准在数据单元处理器512中是固有的、在配置信息504中被提供,或二者的组合。例如,如上所述,标准可指定数据段514的大小。标准还可指定要发生分段的数据单元506中的位置。例如,标准可指定在每n个字节处进行分段。作为另外一种选择,可对数据单元506进行分析以基于与数据单元506的不同部分相关联的功能性、关键性、或其他特性确定数据单元504的逻辑片段或片段组。另外,该标准可取决于将利用数据段514并与数据段514进行交互的系统。例如,如果特定系统或通信网络对于具有特定大小或具有特定配置的数据段更有效率地操作,则可将数据单元处理器512配置为将数据段514配置为符合该配置。然而,本技术并不限于任何特定分段方案并且可使用任何类型的分段方案。
在框406处由数据单元处理器512生成数据段514后,在框408处可生成数据段514的散列值。例如,如图5所示,分段系统510还可包括用于生成各种数据段514的散列值518的散列模块516。如先前所述,本技术可利用任何类型的散列方案,然而,为了避免冲突的危险,可使用提供基本上唯一的散列值的散列方案。用于此类目的的一种示例性散列方案是SHA2。
一旦在框408处由散列模块516计算出了散列值518,就可在框410处生成或组装访问文件。具体地,分段系统510可包括访问文件生成器520以生成访问文件。访问文件生成器520可将散列值518与数据单元506的元数据522以及配置信息504组合以生成数据段514和数据单元506的访问文件524。
可以若干种方式来获取元数据522。例如,如图5所示,数据单元处理器512可被配置为从数据单元506提取元数据522并将元数据522转发至访问文件生成器520。然而,本技术并不限于此并且可使用分段系统510内部或外部的任何其他方法来获取元数据522。
相对于要包括在访问文件524中的散列方案信息、分段方案信息、以及位置信息,可由访问文件生成器520从配置信息504获取这些信息。作为另外一种选择,利用此类信息的分段系统510的模块或单元还可将该信息转发至访问文件生成器520。
在框408和410之后或同时,在框412处可存储数据段514。数据段514进行存储的位置可包括本地存储装置508、远程存储装置526、或两者的组合。
在一些配置中,如上参考图3所述,总是在远程存储装置526中存储数据段514以提供存档副本以防有必要覆写数据段514的情况。
如上所述,在框410处生成的访问文件524将包括位置信息。在至少一些数据段514存储在本地存储装置508中的配置中,可在访问文件524中识别本地存储装置508,使得本地系统可知道在本地存储装置508中查找数据段514。然而,在一些配置中,本地系统(即文件系统)可被配置为在本地存储装置508中检查数据段514。因此,访问文件生成器520可被配置为从访问文件中的地址中排除本地存储装置508,以进一步减小访问文件524的大小。
一旦在框412处存储了数据段514,并且在框410处组装了访问文件524,方法400就可继续进行到框414。在框414处,本地系统可被重新配置为使用访问文件524来服务数据单元506的任何请求。该处理可包括将访问文件524存储在本地存储装置508中或本地系统中的其他存储装置,并针对本地系统配置文件系统以经由访问文件524来访问数据单元的数据。任选地,在框416处可从本地存储装置508中删除或清除数据单元506。然后,方法400恢复步骤418处的可包括重复方法400的先前处理。
图6为根据本技术的用于使用访问文件和相关联的数据段来访问数据单元的示例性方法600中的步骤的流程图。方法600开始于框602处并进行至框604。在框604处,接收访问数据单元的至少选择部分的请求。即,取决于应用或请求,仅需要数据单元的一部分。在典型的计算设备中,由管理本地系统的数据存储设备的一个或多个文件系统来服务本地系统中的数据单元的请求。因此,框604可包括将数据单元的选择部分的请求转发至文件系统。
一旦在框604处文件系统接收到请求,在框606处文件系统就可确定应如何服务对数据单元的请求。即,在框606处,文件系统可确定是否其已被配置为使用访问文件和数据段来服务与数据单元相关联的请求。如果文件系统还没有按此配置,则方法可继续进行到框608并且可使用常规方法从本地存储装置中检索数据单元。然后,方法600可继续进行到框610并恢复包括重复方法600的先前处理。
如果在框606处确定了文件系统被配置为利用访问文件来服务对数据单元的请求,则方法600可继续进行到框612。在框612处,可获取或访问所请求的数据单元的访问文件。在本技术中,访问单元的位置可变化。在一些配置中,访问文件可存储在本地系统的本地存储装置内,或者与驻留本地系统上的数据单元一起存储或者存储在特定位置诸如专用的存储位置中。例如,本地系统可包括高速缓存或用于存储访问文件的其他保留的存储区域。作为另外一种选择,访问文件还可存储在一个或多个远程位置中。在此类配置中,在框612处文件系统可被配置为在接收到请求时访问远程位置并制作访问文件的永久的或暂时的副本以服务该请求。
一旦在框612处获取了访问文件,就可在框614处开始处理访问文件以获取服务请求所需的数据段。例如,可在框614处基于请求处理访问文件,以识别将响应请求的特定的数据段以及它们对应的散列值。例如,可利用访问文件中的元数据信息和分段方案信息来确定哪个数据段与请求相关联。然后,可使用分段方案信息和散列ID信息来确定识别的数据段的散列值。在需要整个数据单元的情况下,获取所有数据单元的散列值。然而,在仅需要数据段的一部分的情况下,仅需要检索这些片段的散列值。然而,本技术并不限于此。即,可获取任何数量的散列值,只要它们包括服务请求所需的数据段的散列值。
该配置的一个优势在于在很多情况下,用户通常需要访问数据单元的特定部分而并不需要立即访问整个的数据单元。例如,在数据单元由音频或视频内容组成的情况下,可仅需要向对应于当前正在显示的音频或视频内容部分的数据单元的部分以及一些另外的部分提供访问(例如,提供内容的一些缓冲)。因此,本技术允许识别数据单元的这些部分以及相关联的数据段。
在框614处在识别数据段并获取它们的散列值后,在框616处,可配置本地存储装置以提供对所识别的数据段的访问。该框可包括首先在各种存储位置中执行搜索以确定所识别的数据段的位置。具体地,这包括将所识别的数据段的散列值与各种存储位置处的可用的数据段的散列值进行比较。在一些配置中,可动态地计算各种位置的数据段的散列值,在其他的配置中,可预先计算各种存储位置处的数据段的散列值。在此类配置中,可将这些散列值存储在与数据段分开的数据文件中,或嵌入到数据段内。
相对于搜索的位置,所述位置可包括访问文件内的至少指定的位置。然而,搜索的位置还可包括其他位置。例如,还可搜索本地系统中的存储位置。但是,本技术并不限于此并且方法600可被配置为包括任何其他默认的搜索位置,包括本地和远程位置。另外,如上所述,可以在访问文件或本地系统中指定的预先定义的顺序来搜索位置。
除了进行上述搜索外,框616还可涉及通过永久地或暂时地在本地系统中制作所识别的片段的副本来配置本地存储装置以包括所识别的片段。在本技术中,在本地系统中存储所识别的片段的位置可变化。在一些配置中,可在本地系统中的本地存储装置内存储所识别的片段,或者与驻留于本地系统的数据单元一起存储,或者存储在特定位置诸如专用的存储位置中。例如,本地系统可包括高速缓存或用于存储所识别的片段的其他保留的存储器区域。
在框616处将本地系统配置为包括所识别的数据段后,方法继续进行到框618。在框618处,随后可使用本地系统中的数据段来服务请求。即,可从数据段中提取数据以提供针对请求的数据,而不需使全部数据单元可用。随后方法600继续进行到框610并恢复包括重复方法600的先前处理。
如上参考图6所述,可使用本地存储装置中的数据段来服务请求。然而,在数据单元的大部分经由数据段频繁被访问的情况下,在本地系统中重新组装数据单元可更有效率。图7中示出了该处理。图7为根据本技术的将访问文件和相关联的数据段转换成数据单元的示例性方法700中的步骤的流程图。方法700开始于框702并继续进行到框704。
在框704处,选择要存储至本地系统处的数据单元。如上所述,可基于使用标准诸如与数据单元相关联的数据段的使用频率来选择数据单元。然而,本技术并不限于此并且可使用任何其他标准来选择数据单元。例如,如果本地系统处的另外的空间可用,则可不经由数据段而在本地存储一个或多个数据单元。又如,需要归档数据单元或需要制作复件,这对组装数据单元可为有必要的。在本技术中还可利用任何用于选择数据单元的其他标准。
在框704处选择数据单元后,在框706处可检索数据单元的所有数据段。这可以与如上参考图6所述的方法基本上相同的方法执行。然后,一旦本地系统处的所有的数据段可用,就可在框708处使用数据段来重新组装数据单元。具体地,可结合数据段中存在的任何信息,使用分段方案信息、元数据、以及其他访问文件中的信息来将数据段以适当的布置放置,从而重新组装数据单元。
一旦在框708处在本地系统处重新组装数据单元,就可在框710处将本地系统重新配置。即,如果在本地系统处维护重新组装的数据单元,则在框710处可重新配置本地系统以使用重新组装的数据单元来服务对利用数据单元的将来的请求。
任选地,在框710处重新配置本地系统以利用重新组装的数据单元后,在框712处可删除访问文件和相关联的数据块,在一些情况下,这可包括在本地系统处删除访问文件和相关联的数据块。因此此类配置在远程系统中维护了数据单元的存档复件。作为另外一种选择,框712可涉及在本地系统和一个或多个远程系统两者中删除访问文件和相关联的数据块。因此,可删除远程系统中的数据单元的存档副本。然而,在一些情况下,可将删除限制为对非存档的远程系统进行以在如果数据单元从本地系统中不注意地删除或如果以后在本地系统处需要数据单元的“干净”的副本的情况下,提供文件的备份副本。
如上所述,根据本技术来配置的文件系统提供了与常规方法相比利用减少量的空间的文档型式系统。下面参考图8来示出了该型式系统的操作。图8为根据本技术的用于生成数据单元的不同版本的示例性方法800中的步骤的流程图。
方法800开始于框802处并继续进行到框804。在框804处,文件系统检测到已经更新复制到本地系统的至少一个数据段。例如,文件系统可检测到用户已发出了改变数据段内的数据的命令。作为另外一种选择,文件系统可检测到数据段的散列值不再与根据访问文件的散列值匹配。可无限制地使用用于检测数据段中的改变的任何其他方法。
一旦在框804处检测到数据段中的改变,方法800就继续进行到框806以生成数据单元的新版本。具体地,在框806处,文件系统利用一个或多个更新的数据段来生成更新访问文件。更新访问文件基本上与和初始数据段相关联的访问文件相似。然而,生成更新访问文件以包括关于一个或多个更新的数据段的散列值的信息。另外,可调整针对更新访问文件的元数据或其他信息以反映涉及初始访问文件中的数据单元的不同版本的更新访问文件。例如,更新访问文件还可包括重新涉及初始访问文件的信息。
在一些情况下,与响应于更新的数据段来生成完全的访问文件相反,更新的访问可被配置为包括基于一个或多个更新的数据段和初始访问文件中的信息来指示如何生成数据单元的新版本的信息。即,更新访问文件可被配置为包括识别初始访问文件的信息和识别初始访问文件所需的改变的信息以获取用于访问数据单元的新版本的数据段。
无论更新访问文件的配置如何,一旦在框806处生成更新访问文件,方法800就继续进行到框808。在框808处,可将更新的数据段存储在与访问文件相关联的存储位置处以用于将来的访问。框808还可包括将更新访问文件存储在在共享的环境中的远程位置处。即,将访问文件存储在其他用户可访问的存储位置处,使得其他用户可经由更新的数据段来访问更新的数据单元。
在框808之后或同时,方法800可执行框810。在框810处,可重新配置本地系统使得本地系统使用更新访问文件来服务对数据单元的新版本的请求。在框808和框810之后,方法800可任选地继续进行到框812。在框812处,如果在本地系统处不进一步使用初始数据单元,则可从本地系统删除初始访问文件。例如,如果在本地系统处的用户的目的是覆写初始数据单元。类似地,如果仅使用一个或多个更新的数据段,则可从本地系统删除初始数据段。最后,方法800可继续进行到框814并恢复包括重复方法800的先前处理。
尽管上面描述了提供通过使用上述数据段方案扩展本地存储装置的容量的方法的各种实施例,但是本技术并不仅限于此。在一些实施例中,还可利用数据段的用途以增强本地系统的性能。
在许多情况下,计算设备可包括具有各种数据传输速率、访问速度、或相对于向存储设备读取或写入数据的其他数据访问尺度的各种类型的存储设备。例如,固态存储设备诸如固态驱动器,其通常比磁性存储设备诸如具有磁头的硬盘驱动器具有明显更高的访问速度。然而,固态驱动器的每兆字节的费用通常明显高于具有磁头的硬盘驱动器的每兆字节的费用。因此,在许多类型的计算设备中,具有磁头的硬盘驱动器仍然是主要的存储介质。
但是,需要指出的是在许多情况下,计算设备使用的数据量通常明显小于具有磁头的硬盘驱动器的总存储容量。因此,本技术的一个方面是利用数据段的使用来提供有效的复合存储装置。下面参考图9来描述此类复合存储设备的操作和配置。
图9是根据本技术的另选实施例配置的计算设备900的示意图。如上所述,计算设备900可包括管理第一物理设备904和第二物理设备906的文件系统902。为了进行示意性的说明,第一物理设备904是具有高访问速度和低存储容量的存储卷,并且第二物理设备906是具有低访问速度和高存储容量的存储卷。例如,第一物理设备904可以是磁盘驱动器,并且第二物理设备906可以是固态硬盘驱动器。
尽管参照文件系统对图9的示例性实施例进行了描述,但是其只是为了便于说明。然而,本文中所述的多个存储设备的控制可在文件系统级、卷管理器级、或甚至设备驱动级以无限制的基本上相同的方式实现。
在操作中,数据可由计算设备900在第二物理设备906中以分段的形式在本地存储。可根据上述方法的任一种生成或存储此类数据段,其中第二物理设备906以与上述远程存储设备基本上相同的方式操作。因此,文件系统902可被配置为将特定数据单元与存储在第二物理设备906中的特定系列的数据段相关联。
在常规系统中,如果计算设备900此后请求数据单元的至少一部分,则计算设备900将仅访问第二物理设备906中的合适的数据段。然而,在各种实施例中,与提供此类访问相反,将合适的数据段复制到第一物理设备904。另外,重新配置文件系统902使得由第一物理设备904来服务对复制的数据段的将来的请求。因此,第一物理设备904和第二物理设备906作为单个逻辑存储设备908工作,其中根据是否在第一物理设备904处创建了数据段的复件来从设备904和906之一检索数据段。例如,文件系统902可被配置为从第一物理设备904访问与数据单元910相关联的数据段并且从第二物理设备906访问与数据单元912相关联的数据段。
更重要地,由于计算设备通常重复访问大量数据单元,所以经由更快的第一物理设备904来访问对应的数据段也将导致计算设备900的总体性能增强。
在第一物理设备904的存储容量用尽的事件中,可覆写或删除在其上存储的数据段。如上所述,可利用任何类型的方案来选择哪个数据段可删除或覆写。在此类情况下,如果在第一物理设备904中未发生对数据段的修改,则可简单地覆写或删除数据段,并且文件系统902可被重新配置为经由第二物理设备906来提供对数据段的访问。如果在第一物理设备904中发生对数据段的修改,则可使用第一物理设备904中的数据段来覆写第二物理设备906中的对应的数据段。尽管将数据段复制回第二物理设备906会影响性能,但是在典型的计算设备中被访问的数据的大部分(90%或更高)通常保持未被修改。因此,在大多数情况下,不需要另外的复制操作并且数据段的删除/覆写通常仅包括更新文件系统的操作。
作为另外一种选择,可在第二物理设备906中维护第一物理设备904中修改的数据段和第二物理设备906中对应的数据段两者。在此类情况下,如上所述,文件系统902可利用该布置以存储数据单元的不同版本。本公开还设想响应于对第一物理设备904中的数据段的修改,可自动地将修改的数据段复制到第二物理设备906以提供对数据单元的不同版本的存储而不从第一物理设备904删除数据段。
尽管图9的示例性实施例参照不同的访问速度而被描述,但是根据本技术的复合存储设备可基于具有不同数据访问尺度的设备,所述不同数据访问尺度包括数据传输速率、访问速度、或任何其他感兴趣的尺度。
本公开设想可单独或结合上述技术的任一种来使用上述参考图9的复合存储方案。即,可基于本地-本地、远程-本地或两者来利用数据段。
根据这些实例的其他具体实施包括用于承载或具有存储在其上的计算机可执行指令或数据结构的计算机可读介质。此类计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。以举例而非限制的方式,此类有形计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储装置、磁盘存储装置或其他磁性存储设备、固态硬盘存储装置、或任何其他介质,其可用于承载或存储呈计算机可执行指令或数据结构形式的所需程序代码装置。
计算机可执行指令包括例如使得通用计算机、专用计算机或专用处理设备来执行某些功能或一组功能的指令和数据。计算机可执行指令也包括由计算机在独立或网络环境中执行的程序模块。一般来讲,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、部件和数据结构。计算机可执行指令、相关联的数据结构和程序模块代表用于执行本文所公开的方法的步骤的程序代码装置的实例。此类可执行指令或相关联的数据结构的特定序列代表用于实现在此类步骤中描述的功能的对应动作的实例。
本领域的那些技术人员将会理解,本发明的其他实施例可在具有许多类型的计算机系统配置的网络计算环境中实践,所述许多类型的计算机系统配置包括个人计算机、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络PC、微型计算机、大型计算机等。实施例也可在分布式计算环境中实践,在该环境中任务由通过通信网络(或者通过硬连线链路、无线链路,或者通过它们的组合)链接的本地和远程处理设备来执行。在分布式计算环境中,程序模块可位于本地存储器存储设备和远程存储器存储设备两者中。
可通过本地网络、令牌环网络、互联网、企业内联网、802.11系列无线信号、光纤网络、无线或微波传输等执行所述系统各级的通信。尽管潜在通信技术可变化,但是本文所述的基本原理仍可应用。
上文描述的各种实施例仅仅以举例方式提供,而不应解释为进行限制。本领域的那些技术人员可认识到,在遵从本文举例说明和描述的示例性实施例和应用且不脱离本公开的实质和范围的情况下,可做出各种修改和变化。

Claims (28)

1.一种方法,包括:
在一个或多个位置处存储一个或多个数据段,所述数据段中的每一个代表数据单元的不同部分;
计算所述数据段中的每一个的散列值;
组装访问文件,所述访问文件包括所述数据单元的元数据、所述数据段的分段方案信息、所述散列值的散列方案信息、描述所述散列值的散列识别信息、以及识别所述位置的位置信息;以及
通过处理所述访问文件使用所述数据段来配置文件系统以服务对所述数据单元的请求。
2.根据权利要求1所述的方法,还包括基于至少一个标准来选择所述数据单元。
3.根据权利要求2所述的方法,其中所述至少一个标准基于用户对完全数据单元的访问频率。
4.根据权利要求1所述的方法,其中所述数据段中的每一个被配置为相同的大小。
5.根据权利要求1所述的方法,其中所述散列识别信息包括所述数据段的所述散列值。
6.根据权利要求1所述的方法,其中所述散列识别信息包括基于所述散列值的至少一个复合散列值。
7.一种系统,包括:
包括文件系统的计算设备,所述文件系统被配置为控制所述计算设备以执行下列步骤:
将存储在所述计算设备中的数据单元转换成一个或多个数据段;
将所述数据段存储在一个或多个位置中;
计算所述数据段中的每一个的散列值;以及
组装用于服务对所述数据单元的请求的访问文件,所述访问文件包括所述数据单元的元数据、所述数据段的分段方案信息、所述散列值的散列方案信息、描述所述散列值的散列识别信息、以及识别所述位置的位置信息。
8.根据权利要求7所述的系统,其中所述位置包括由所述计算设备经由通信链路可访问的一个或多个远程存储位置。
9.根据权利要求7所述的系统,其中所述计算设备包括由所述文件系统管理的用于存储所述访问文件的专用存储装置。
10.根据权利要求7所述的系统,其中所述文件系统还被配置为控制所述计算设备以基于至少一个标准来选择所述数据单元。
11.根据权利要求10所述的系统,其中所述至少一个标准基于在所述计算设备处的对所述数据单元的访问频率。
12.根据权利要求7所述的系统,其中所述文件系统还被配置为控制所述计算设备以响应于存储所述数据段和组装所述访问文件而从所述计算设备清除所述数据单元。
13.一种包括计算机可执行指令的非暂态计算机可读介质,所述计算机可执行指令用于:
响应于在计算设备处访问数据单元的至少所选择部分的请求,获取对应于所述数据单元的访问文件并识别包括所述数据单元的数据的一个或多个数据段;
处理所述访问文件以至少识别对应于所述数据单元的所选择部分的数据段以产生所识别的数据段;
配置所述计算设备的本地存储装置以至少包括所识别的数据段;以及
使用从所述本地存储装置中的数据段提取的数据来服务所述请求,
其中所述访问文件包括所述数据单元的元数据、所述数据段的分段方案信息、所述散列值的散列方案信息、描述所述散列值的散列识别信息、以及识别所述位置的位置信息。
14.根据权利要求13所述的非暂态计算机可读介质,其中所述获取还包括从由所述计算设备通过通信链路可访问的远程系统检索所述访问文件。
15.根据权利要求13所述的非暂态计算机可读介质,其中所述处理还包括基于所述元数据和所述分段方案信息来确定所识别的数据段。
16.根据权利要求13所述的非暂态计算机可读介质,其中所述配置还包括:
基于所述散列方案信息和所述散列识别信息来获取所识别的数据段的散列值以产生所获取的散列值;
基于所获取的散列值来确定是否有任何所识别的数据段不存在于所述本地存储装置中;以及
对于不存在于所述本地存储装置中的所识别的数据段中的每一个,从在所述访问文件中指定的任何所述位置检索所识别的数据段中的所述一个。
17.一种方法,包括:
响应于在计算设备处对数据单元的至少所选择部分的请求,获取访问文件,所述访问文件包括所述数据单元的元数据、存储定义所述数据单元的不同部分并且与散列值相关联的一个或多个数据段的位置、所述数据段的分段方案信息、所述散列值的散列方案信息、以及基于所述散列值的散列识别信息;
识别对应于所述数据单元的所选择部分的所述数据段中的至少一些;
配置所述计算设备的本地存储装置以至少包括所识别的数据段;以及
使用从所述本地存储装置中的数据段提取的数据来服务所述请求。
18.根据权利要求17所述的方法,其中所述配置还包括响应于所述本地存储装置针对所识别的数据段中的一个或多个具有不足的空间来删除当前未使用的一个或多个其他数据段。
19.根据权利要求18所述的方法,其中基于在所述计算设备处的至少所述其他数据段的使用历史,选择所述其他数据段进行删除。
20.根据权利要求17所述的方法,还包括:
如果所识别的数据段的所述使用满足使用标准,则在计算设备处重新组装所述数据单元以产生重新组装的数据单元并使用所述重新组装的数据单元来服务所述请求,其中基于所述访问文件重新组装所述数据单元。
21.一种系统,包括:
计算设备,所述计算设备包括文件系统,所述文件系统被配置为控制所述计算设备以执行下列步骤:
经由访问文件,访问存储有数据单元的数据的一个或多个数据段中的至少一个以产生至少一个所访问的数据段;
检测已更新所访问的数据段以产生至少一个更新的数据段;
基于针对所更新的数据段而计算的散列值生成定义所述数据单元的更新数据单元的更新访问文件;以及
使用所更新访问文件来配置所述本地系统以服务对所述数据单元的请求,
其中所述访问文件包括所述数据单元的元数据、所述数据段的分段方案信息、所述散列值的散列方案信息、描述所述散列值的散列识别信息、以及识别位置的位置信息。
22.根据权利要求21所述的系统,还包括将所更新的数据段存储在所述位置之一中。
23.根据权利要求21所述的系统,还包括将所更新的访问文件存储在公共位置中。
24.根据权利要求21所述的系统,还包括从所述计算设备删除所述访问文件。
25.一种系统,包括
处理器;
第一存储设备;
第二存储设备,所述第二存储设备具有高于所述第一存储设备的对应数据访问尺度值的至少一个数据访问尺度值;和
文件系统,所述文件系统用于管理所述第一存储设备和所述第二存储设备,其中响应于来自所述处理器的针对存储在所述第一存储设备中的数据单元的至少所选择部分的请求,所述文件系统被配置为:
获取访问文件,所述访问文件包括所述数据单元的元数据、所述第一存储设备中的存储定义所述数据单元的不同部分并且与散列值相关联的一个或多个数据段的位置、所述数据段的分段方案信息、所述散列值的散列方案信息、以及基于所述散列值的散列识别信息,
至少识别对应于所述数据单元的所选择部分的数据段中的一些,
配置所述第二存储设备以至少包括所识别的数据段;以及
使用从所述第二存储设备中的数据段提取的数据来服务所述请求。
26.根据权利要求25所述的系统,其中所述文件系统还被配置为:
响应于所述第二存储设备针对所识别的数据段中的一个或多个具有不足的空间来删除当前未使用的一个或多个其他数据段;以及
使用所述第一存储设备中的所述数据段来服务对当前未使用的所述一个或多个其他数据段的将来的请求。
27.根据权利要求26所述的系统,其中如果已修改了当前未使用的所述一个或多个其他数据段中的至少一些,则所述文件系统还被配置为将当前未使用的所述一个或多个其他数据段中的修改的数据段从所述第二存储设备复制到所述第一存储设备,并使用所述第一存储设备来服务对与所修改的数据段相关联的数据单元的将来的请求。
28.根据权利要求25所述的系统,其中所述第一存储设备为磁盘驱动器,并且所述第二存储设备为固态硬盘驱动器。
CN201380012500.0A 2012-01-17 2013-01-14 位置独立文件 Active CN104160397B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/351,987 2012-01-17
US13/351,987 US9195666B2 (en) 2012-01-17 2012-01-17 Location independent files
PCT/US2013/021375 WO2013109490A1 (en) 2012-01-17 2013-01-14 Location independent files

Publications (2)

Publication Number Publication Date
CN104160397A true CN104160397A (zh) 2014-11-19
CN104160397B CN104160397B (zh) 2018-03-06

Family

ID=47599179

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380012500.0A Active CN104160397B (zh) 2012-01-17 2013-01-14 位置独立文件

Country Status (8)

Country Link
US (1) US9195666B2 (zh)
EP (1) EP2805261A1 (zh)
JP (1) JP5886447B2 (zh)
KR (1) KR101631004B1 (zh)
CN (1) CN104160397B (zh)
AU (1) AU2013210018B2 (zh)
TW (1) TWI609277B (zh)
WO (1) WO2013109490A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106257450A (zh) * 2015-06-19 2016-12-28 杭州海康威视数字技术股份有限公司 集群系统的文件定位、存储方法和装置
CN109565519A (zh) * 2016-08-08 2019-04-02 奥迪股份公司 在车辆的控制装置和车辆外部的服务器装置之间传输文件的方法,控制装置和车辆

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806499B2 (en) * 2008-05-15 2014-08-12 Novell, Inc. Mechanism to build dynamic locations to reduce brittleness in a team environment
US20140279933A1 (en) * 2013-03-14 2014-09-18 Konica Minolta Laboratory U.S.A., Inc. Hashing Schemes for Managing Digital Print Media
US10097431B1 (en) * 2014-06-06 2018-10-09 Amazon Technologies, Inc. Routing to tenant services utilizing a service directory
US10250455B1 (en) 2014-06-06 2019-04-02 Amazon Technologies, Inc. Deployment and management of tenant services
CN105389316A (zh) * 2014-09-05 2016-03-09 上海科泰世纪科技有限公司 文件管理系统和方法
JP6405831B2 (ja) * 2014-09-25 2018-10-17 富士ゼロックス株式会社 情報処理装置、通信システム及びプログラム
CN105528347B (zh) * 2014-09-28 2019-03-26 北京古盘创世科技发展有限公司 数据块储存方法、数据查询方法和数据修改方法
WO2016154918A1 (zh) * 2015-03-31 2016-10-06 华为技术有限公司 一种数据处理方法、装置及设备
US10552075B2 (en) * 2018-01-23 2020-02-04 Vmware, Inc. Disk-image deduplication with hash subset in memory
US11683373B2 (en) * 2020-02-20 2023-06-20 Comcast Cable Communications, Llc Systems, methods, and apparatuses for storage management
CN111782632A (zh) * 2020-06-28 2020-10-16 百度在线网络技术(北京)有限公司 数据处理方法、装置、设备和存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1269350A1 (en) * 2000-02-18 2003-01-02 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
CN101546320A (zh) * 2008-03-27 2009-09-30 林兆祥 一种基于滑动窗口的数据差异分析方法
US20090271454A1 (en) * 2008-04-29 2009-10-29 International Business Machines Corporation Enhanced method and system for assuring integrity of deduplicated data
US20090307247A1 (en) * 2008-06-10 2009-12-10 Oqo, Inc. Data block compression using coalescion
CN101620618A (zh) * 2009-07-24 2010-01-06 中兴通讯股份有限公司 内存存储数据的维护方法与装置
US20110016132A1 (en) * 2009-07-14 2011-01-20 Fujitsu Limited Archive device
US20110107182A1 (en) * 2009-10-30 2011-05-05 Cleversafe, Inc. Dispersed storage unit solicitation method and apparatus
CN102084360A (zh) * 2008-04-06 2011-06-01 弗森-艾奥公司 用于确认从数据存储设备读取正确的数据段的装置、系统和方法
US20110320507A1 (en) * 2010-06-24 2011-12-29 Nir Peleg System and Methods for Digest-Based Storage

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6269382B1 (en) * 1998-08-31 2001-07-31 Microsoft Corporation Systems and methods for migration and recall of data from local and remote storage
US20040030731A1 (en) 2002-04-03 2004-02-12 Liviu Iftode System and method for accessing files in a network
US20040117437A1 (en) 2002-12-16 2004-06-17 Exanet, Co. Method for efficient storing of sparse files in a distributed cache
JP2007511820A (ja) * 2003-10-27 2007-05-10 アーカイヴァス インコーポレイテッド 独立ノード冗長アレイに対するポリシーに基づく管理
JP4349301B2 (ja) * 2004-11-12 2009-10-21 日本電気株式会社 ストレージ管理システムと方法並びにプログラム
US7499586B2 (en) 2005-10-04 2009-03-03 Microsoft Corporation Photographing big things
US8086634B2 (en) * 2008-10-07 2011-12-27 Hitachi, Ltd. Method and apparatus for improving file access performance of distributed storage system
JP5691229B2 (ja) * 2010-04-08 2015-04-01 日本電気株式会社 オンラインストレージシステム、及びオンラインストレージサービスの提供方法
WO2012112121A1 (en) * 2011-02-17 2012-08-23 Jitcomm Networks Pte Ltd Parallel data partitioning

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1269350A1 (en) * 2000-02-18 2003-01-02 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
EP1269350A4 (en) * 2000-02-18 2006-08-16 Avamar Technologies Inc HASH FILE SYSTEM AND METHOD FOR USE IN A COMMONALITY FACTORING SYSTEM
CN101546320A (zh) * 2008-03-27 2009-09-30 林兆祥 一种基于滑动窗口的数据差异分析方法
CN102084360A (zh) * 2008-04-06 2011-06-01 弗森-艾奥公司 用于确认从数据存储设备读取正确的数据段的装置、系统和方法
US20090271454A1 (en) * 2008-04-29 2009-10-29 International Business Machines Corporation Enhanced method and system for assuring integrity of deduplicated data
US20090307247A1 (en) * 2008-06-10 2009-12-10 Oqo, Inc. Data block compression using coalescion
US20110016132A1 (en) * 2009-07-14 2011-01-20 Fujitsu Limited Archive device
CN101620618A (zh) * 2009-07-24 2010-01-06 中兴通讯股份有限公司 内存存储数据的维护方法与装置
US20110107182A1 (en) * 2009-10-30 2011-05-05 Cleversafe, Inc. Dispersed storage unit solicitation method and apparatus
US20110320507A1 (en) * 2010-06-24 2011-12-29 Nir Peleg System and Methods for Digest-Based Storage

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "BitTorrent", 《HTTPS://EN.WIKIPEDIA.ORG/W/INDEX.PHP?TITLE=BITTORRENT&OIDID=139216777》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106257450A (zh) * 2015-06-19 2016-12-28 杭州海康威视数字技术股份有限公司 集群系统的文件定位、存储方法和装置
CN106257450B (zh) * 2015-06-19 2019-09-17 杭州海康威视数字技术股份有限公司 集群系统的文件定位、存储方法和装置
CN109565519A (zh) * 2016-08-08 2019-04-02 奥迪股份公司 在车辆的控制装置和车辆外部的服务器装置之间传输文件的方法,控制装置和车辆
CN109565519B (zh) * 2016-08-08 2020-04-03 奥迪股份公司 传输文件的方法和车辆
US10958709B2 (en) 2016-08-08 2021-03-23 Audi Ag Method for transferring a file between a control device of a motor vehicle and a server device outside the vehicle, control device and motor vehicle

Also Published As

Publication number Publication date
KR20140114040A (ko) 2014-09-25
WO2013109490A1 (en) 2013-07-25
JP5886447B2 (ja) 2016-03-16
EP2805261A1 (en) 2014-11-26
CN104160397B (zh) 2018-03-06
JP2015510174A (ja) 2015-04-02
TWI609277B (zh) 2017-12-21
TW201346601A (zh) 2013-11-16
US9195666B2 (en) 2015-11-24
KR101631004B1 (ko) 2016-06-15
AU2013210018B2 (en) 2016-04-21
US20130185266A1 (en) 2013-07-18
AU2013210018A1 (en) 2014-08-07

Similar Documents

Publication Publication Date Title
CN104160397A (zh) 位置独立文件
CN109254733B (zh) 用于存储数据的方法、装置和系统
US11599546B2 (en) Stream browser for data streams
JP6854041B2 (ja) コンテンツ管理システムにおけるプロジェクトの管理
JP6621543B2 (ja) ハイブリッドアプリケーションの自動更新
CN102880663B (zh) 部分去重复的文件的优化
CN102667772B (zh) 文件级分级存储管理系统、方法和设备
CN101650660B (zh) 从中央存储装置引导计算机系统
US8495022B1 (en) Systems and methods for synthetic backups
CN102272751B (zh) 在数据库环境通过背景同步的数据完整性
CN101681344A (zh) 带同步的双向数据修改
JP2020528614A (ja) 分散ストレージ環境のための認知ファイルおよびオブジェクト管理のための方法、コンピュータ・プログラムおよびシステム
US9547451B2 (en) Writable clone data structure
CN115336237A (zh) 远程存储的文件的预测性供应
EP2856359B1 (en) Systems and methods for storing data and eliminating redundancy
US20230006814A1 (en) Method and apparatus for implementing changes to a file system that is emulated with an object storage system
CN104714985A (zh) 一种提升表单审批效率的方法及装置
CN104303179B (zh) 基于差异化盘格式的迭代式盘上传
CN101930451B (zh) 用于存储高效地搜索至少一个询问数据元素的方法和装置
JP5629438B2 (ja) ファイル管理装置及びその制御方法
KR100952599B1 (ko) 로컬디스크를 캐쉬로 이용하는 사용자 컴퓨터, 그를이용하는 방법 및 하이브리드 네트워크 스토리지 시스템
KR20160103839A (ko) 메타데이터에 기반한 프레임워크를 제공하는 방법 및 장치
CN117472860A (zh) 消息系统的文件操作方法、装置、计算机设备及存储介质
CN113672794A (zh) 页面生成方法、设备、介质
CN103443758A (zh) 虚拟磁盘的优化缩减

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