CN101137981A - 用于管理文件***中的内容存储的方法和装置 - Google Patents

用于管理文件***中的内容存储的方法和装置 Download PDF

Info

Publication number
CN101137981A
CN101137981A CNA2006800014313A CN200680001431A CN101137981A CN 101137981 A CN101137981 A CN 101137981A CN A2006800014313 A CNA2006800014313 A CN A2006800014313A CN 200680001431 A CN200680001431 A CN 200680001431A CN 101137981 A CN101137981 A CN 101137981A
Authority
CN
China
Prior art keywords
content
file
content element
request
time
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.)
Pending
Application number
CNA2006800014313A
Other languages
English (en)
Inventor
菲利普·阿芒戈
斯蒂芬·J·托德
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.)
EMC Corp
Original Assignee
EMC 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 EMC Corp filed Critical EMC Corp
Publication of CN101137981A publication Critical patent/CN101137981A/zh
Pending legal-status Critical Current

Links

Images

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/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的一实施例致力于使用标识符访问的内容单元的容器化。申请人已意识到文件***有时对其中可保存的文件数量强加非常严格的限制。因而,在一实施例中,多个内容单元可被保存在文件***的单一文件中,称为容器文件。每一内容单元可具有与其相关联的标识符。当访问实体请求访问先前保存的内容单元并提供该内容单元的标识符时,标识符可用于查找内容单元保存于其中的容器文件。

Description

用于管理文件***中的内容存储的方法和装置
技术领域
本发明涉及管理内容的存储。
背景技术
文件***是可用于组织数据的逻辑数据结构。文件***通常具有多个逻辑分区,通常称为目录或文件夹,所述分区可按层次安排。在许多文件***中,在所述层次的最上层有一个目录,称为根目录。数据可被安排在逻辑存储单元中,称为文件,其可保存在文件***的目录中。
通常,文件***被安装在具有一个或多个基础存储装置(如磁盘或磁带)的计算机***上,数据可物理保存在所述基础存储装置上。文件***中的文件及目录的逻辑排列与数据物理保存在物理存储装置上的方式几乎没有关系或根本没有关系。因而,映射通常用于将文件***中的逻辑存储位置映射到存储装置上的实际物理存储位置(如块)。
许多文件***对每一目录中可保存的文件数量和文件***中可保存的总文件数量加以限制。这些限制可由文件***因任何原因而强加。例如,随着文件数量增加,文件***的性能可能大大降低。此外,例如,加以限制可在***数据结构丢失并需要从备份拷贝恢复的情况下确保一定时间的灾难性恢复。
发明内容
本发明的一实施例致力于管理文件***中的内容单元的方法,该方法包括:接收保存第一内容单元的第一请求,第一内容单元具有至少部分基于第一内容单元的内容计算的第一内容地址;响应于第一请求,将第一内容单元保存在文件***的文件中;接收保存第二内容单元的第二请求,第二内容单元具有至少部分基于第二内容单元的内容计算的第二内容地址;及响应于第二请求,将第二内容单元保存在文件中。另一实施例致力于编码以指令的至少一计算机可读介质,所述指令当在计算机***上执行时,执行上述方法。
另一实施例致力于管理文件***中的内容单元的计算机,包括:至少一输入装置;及连到至少一输入装置的至少一控制器,其:经输入装置接收保存第一内容单元的第一请求,第一内容单元具有至少部分基于第一内容单元的内容计算的第一内容地址;响应于第一请求,将第一内容单元保存在文件***的文件中;经输入装置接收保存第二内容单元的第二请求,第二内容单元具有至少部分基于第二内容单元的内容计算的第二内容地址;及响应于第二请求,将第二内容单元保存在文件中。
另一实施例致力于访问内容单元的方法,所述内容单元具有至少部分基于内容单元的内容的内容地址,其中内容单元保存在文件***的文件中,所述方法包括:接收访问内容单元的请求,其中所述请求使用标识符识别内容单元,且其中内容单元保存于其中的文件保存至少一另外的内容单元,至少一另外的内容单元具有至少部分基于内容单元的内容的内容地址;使用标识符查找内容单元保存于其中的文件;及在内容单元保存于其中的文件中查找内容单元。另一实施例致力于编码以指令的至少一计算机可读介质,所述指令当在计算机***上运行时执行上述方法。
另一实施例致力于访问内容单元的计算机,所述内容单元具有至少部分基于内容单元的内容的内容地址,其中内容单元保存在文件***的文件中,所述计算机包括:输入装置;及连到输入装置的至少一控制器,其:经输入装置接收访问内容单元的请求,其中所述请求使用标识符识别内容单元,且其中内容单元保存于其中的文件保存至少一另外的内容单元,至少一另外的内容单元具有至少部分基于内容单元的内容的内容地址;使用标识符查找内容单元保存于其中的文件;及在其中保存内容单元的文件中查找内容单元。
另一实施例致力于在层次式文件***中保存内容单元的方法,所述层次式文件***具有按层次树安排的多个目录,所述层次树具有多层,每一层对应于时间单位,所述层次树包括至少一根目录和多个非根目录,每一非根目录具有父目录,其中所述树中的多个目录中的至少一个与对应于其相应父目录的时间段所包含的时间段对应,所述方法包括:确定内容单元被接收从而进行存储的速率;及基于内容单元被接收从而进行存储的速率动态确定将内容单元保存在多层中的哪一层。另一实施例致力于编码以指令的至少一计算机可读介质,当所述指令在计算机***上运行时执行上述方法。
另一实施例致力于在层次式文件***中保存内容单元的计算机,所述层次式文件***具有按层次树安排的多个目录,所述层次树具有多层,每一层对应于时间单位,所述层次树包括至少一根目录和多个非根目录,每一非根目录具有父目录,其中所述树中的多个目录中的至少一个与对应于其相应父目录的时间段所包含的时间段对应,所述计算机包括:输入装置;及至少一控制器,其:确定内容单元通过输入装置接收从而进行存储的速率;及基于内容单元被接收从而进行存储的速率动态确定将内容单元保存在多层中的哪一层。
附图说明
图1A为根据本发明的一实施例容器化内容单元的***的框图。
图1B为根据一实施例,采用层次式存储管理技术的容器化内容单元的***的框图。
图2为可在本发明实施例中采用的基于时间的目录结构的例子。
图3为根据一实施例,其中复制的内容单元可被容器化的***的框图。
图4为根据一实施例,示出容器索引文件和容器文件之间的关系的框图。
图5为根据一实施例,删除数据结构的例子的框图。
图6为根据一实施例,容器文件的例子的框图。
图7为根据一实施例的存储时间容器文件的例子。及
图8为根据一实施例的删除容器文件的例子。
具体实施方式
申请人已意识到,在某些情形下,文件***对文件数量的限制可能太约束以致不能保存所有想要的数据,因而需要以不违反所述限制的方式将数据保存在文件***中。
因此,本发明的一实施例致力于逻辑上不同的内容单元的容器化,使得多个不同的内容单元可被保存在同一文件中。逻辑上不同的内容单元通常被保存在文件***的不同文件中。例如,由字处理应用程序创建的每一文档通常被保存在单独的文件中,因为这些文档逻辑上相互分开。然而,在本发明的一实施例中,逻辑上分开的内容单元可被容器化。也就是说,逻辑上分开的两个或多个内容单元可被保存在文件***的一个文件中,称为容器文件。在一实施例中,保存在容器中的每一内容单元可具有其自己的标识符(如文件名或其它标识符),使得访问内容的实体(如人类用户、应用程序或主计算机)可使用该标识符访问内容单元。
在一实施例中,容器的使用对在***上保存和检索内容单元的实体是透明的,使得这些用户可在不知道内容单元已被保存在具有其它内容单元的容器文件中的情况下保存和检索内容单元,并可象每一内容单元保存在单独文件中一样访问内容单元。
容器的使用可降低文件***管理的文件的数量,并可在达到文件***允许保存的最大文件数量的限制之前使更多的数据(群聚在容器文件中)能被保存在文件***中。
使用容器文件保存多个内容单元可以任何适当的方式进行,因为本发明任何特定的实施技术。例如,如图1A中所示,主计算机109可包括访问实体101(如应用程序)、处理软件103及文件***105。访问实体101可与保存并从文件***105取回数据的处理软件103通信。逻辑保存在文件***105中的数据可被物理地保存在存储装置107上。当保存内容单元时,访问实体101可发送内容单元给处理软件103进行存储。先前已与内容单元相关联且访问实体101知道其的标识符可由访问实体101用于随后取回内容单元。或者,标识符可在内容单元由处理软件103存储在文件***105中时分配并当确认收到保存内容单元的请求时返回给访问实体101。处理软件103可从访问实体101接收内容单元并可将文件***105中的内容单元保存在还保存其它内容单元的容器文件中。如果适于保存内容单元的容器文件不存在,则这样的容器文件可被创建且所示内容单元可被保存于其中。
在图1A的例子中,访问实体101、处理软件103和文件***105在主计算机109上运行。然而,本发明不在这方面限制,因为这些层的每一层均可在不同的计算机上或计算机的任何适当组合上运行。例如,访问实体101可在将内容单元复制到主计算机109的存储***上运行。此外,存储装置107可以是任何适当类型的存储装置,并可以是主计算机109的内部存储装置或主计算机109外部的存储装置,因为本发明在这方面没有限制。
访问实体101可以是访问内容的任何类型的实体,因为本发明在这方面没有限制。例如,访问实体101可以是应用程序、人类用户、另一计算机、或任何其它适当的实体。在一实施例中,访问实体可以是存储***(未示出),其与处理软件103通信以将存储***上保存的内容单元复制到存储装置107。
与内容单元相关联的标识符可以是任何适当的标识符,因为本发明在这方面没有限制。例如,标识符可以是人类可读的名称或任何其它适当类型的标识符。在一实施例中,标识符是至少部分基于内容单元的内容计算的内容地址。例如,内容单元可被散列(使用任何适当的散列算法)且散列值可用作内容地址的全部或部分。同时在一实施例中,内容地址可仅包括散列值,没有任何另外的信息,本发明在这方面没有限制,因为内容地址除了散列值以外还可包括任何其它适当的信息。例如,内容地址还可包括时间戳,其指示内容单元被创建或初始保存在文件***或另一存储***中的时间。例如,内容地址还可包括全局唯一标识符(GUID),其是一连串保证为唯一的位并可用于确保没有任何两个内容地址相同。内容地址还可包括其它信息如指示什么类型的数据包括在内容单元的内容中的标记。内容地址的例子及内容地址可被使用的情形在表1中列出的申请中描述,每一申请均通过引用组合于此。
存储装置107可以是任何适当类型的存储装置,因为本发明在这方面没有限制。例如,存储装置107可以是磁盘存储装置、光盘存储装置、磁带存储装置和/或任何其它适当类型的存储装置。类似地,任何适当的文件***软件可用于实施文件***105,因为本发明在这方面没有限制。在一实施例中,文件***105为Advance DigitalInformation Corporation出售的StorNextTM文件***,其办公地在华盛顿州Redmond的11431 Willows Road NE,但本发明不限于该文件***或任何其它特定的文件***。
在一实施例中,可采用层次式存储管理(HSM)。HSM是通过其可在更昂贵但更快的存储装置(如磁盘驱动器)和较便宜但更慢的存储装置(如光盘驱动器和/或磁带驱动器)之间自动移动数据的技术。因而,在更快的存储装置上提供足够的存储容量的花费高得惊人的情形下,数据可被保存在较慢的存储装置上及较快的存储装置可被当作较慢存储装置的高速缓存。
采用HSM技术的***的例子如图1B中所示。在图1B中,逻辑上保存在文件***105中可被保存在存储装置113上且该数据的一部分可被缓存在存储装置111上。因而,存储装置111可以是更昂贵但更快的存储装置,而存储装置113是较便宜但更慢的存储装置。如果处理软件103请求逻辑保存在文件***105中的内容单元,如果内容单元的内容已经缓存在存储装置111上,则内容可从存储装置111取回。然而,如果内容未缓存在存储装置111上,则内容可从存储装置113移到所述高速缓存(即存储装置111)中并可被返回给处理软件103。
在一实施例中,文件***105负责执行HSM功能,尽管本发明在这方面没有限制。例如,文件***105可允许用户为某些目录和/或文件配置政策,其指定保存在这些目录和/或文件中的数据何时应被保持在高速缓存中(即保存在存储装置111上)及保持多久和/或该数据何时应被移到存储装置113。之后,文件***105根据该政策在存储装置111和存储装置113之间移动数据。
如上所述,处理软件103或可在现有容器文件中保存新的内容单元,或可创建其中保存内容单元的新的容器文件。关于将内容单元保存在现有容器文件中还是新的容器文件中的决定可以任何适当的方式进行,因为本发明在这方面没有限制。进行该决定的技术的例子将在下面详细描述。处理软件103可选择任何适当的容器文件保存内容单元并可选择文件***105中的任何适当的目录保存容器文件,因为本发明在这方面没有限制。选择保存容器文件的目录的技术的例子将在下面详细描述。
当访问实体101希望取回先前保存的内容单元时,访问实体101可将与内容单元相关联的标识符提供给处理软件103。处理软件103可确定内容单元保存在哪一容器文件中、访问所述容器文件、在所述容器文件中查找所请求的内容单元、并将内容单元返回给访问实体101。处理软件103可以任何适当的方式查找适当的容器文件,因为本发明在这方面没有限制。类似地,处理软件103可以任何适当的方式在特定容器文件内查找所请求的内容单元,因为本发明在这方面没有限制。用于查找特定内容单元保存于其中的容器文件及查找容器文件内的内容单元的技术的例子将在下面详细描述。
访问实体101可使用与内容单元相关联的标识符执行多种类型的访问请求保存在文件***105中的内容单元的任一请求,包括读、写和查询请求。查询请求是确定和/或返回符合所述请求中指明的一个或多个条件的内容单元的请求。可由访问实体101发出的一种类型的查询请求的例子为基于时间的查询请求。基于时间的查询请求是确定和/或返回在特定时间范围期间保存的内容单元的请求。根据一实施例,响应于基于时间的查询请求,处理软件可查找包括在所述请求中指明的时间范围期间保存的内容单元的容器文件并返回这些内容单元的标识符和/或内容单元本身。这可以任何适当的方式进行,因为本发明在这方面没有限制。用于处理和响应于查询请求的技术的例子将在下面详细描述。
在一实施例中,文件***105具有可用于逻辑上保存容器文件的基于时间的目录结构。基于时间的目录结构是其中目录和文件至少部分基于内容单元被保存的时间和/或由源(如应用程序)创建的时间进行组织的目录结构。可使用任何适当的基于时间的目录结构,因为本发明在这方面没有限制。在一实施例中,基于时间的目录结构可被组织为多个层次目录,其中每一目录代表时间段及每一子目录代表其父目录的时间段包含的时间段。文件可被保存在底层或“叶”目录中(及代表最小时间单位的目录),特定文件保存于其中的叶目录可基于文件的存储时间或创建时间进行选择。
这样的基于时间的目录结构的例子如图2中所示。图2示出目录结构200具有6层(标为L1-L6),其中在层L1的目录指明文件被保存的年度,在层L2的目录指明月份,在层L3的目录指明日期,在层L4的目录指明小时,在层L5的目录指明分,在层L6的目录指明秒。应意识到,为清晰起见,目录结构200中的目录的整个层次未被扩展,图2中所示的每一非叶目录可具有一个或多个子目录,其未在图2中示出。
如上所述,文件可被保存在对应于它们被保存和/或创建的时间的叶目录中。因而,例如,在2005年1月1日下午11点保存的文件可被保存在L6目录201中,其具有/2005/January/01/23/00/00的路径,其中“2005”是对应于年2005的L1目录,“January”是对应于2005年1月的2005目录的子目录,“January”目录的子目录“01”是对应于2005年1月1日的L3目录,“01”目录的子目录“23”是对应于2005年1月1日第24小时的L4目录,“23”目录的子目录“00”是对应于2005年1月1日的第24小时的第一分钟的L5目录,及“00”L5目录的子目录“00”是对应于2005年1月1日的第24小时的第一分钟的第一秒的L6目录。
应意识到,下述的采用时间指明用于保存内容单元的目录结构的本发明实施例不限于与具有图2中所示特定例子的安排的目录结构一起使用,因为本发明的实施例可以多种方式中的任一方式进行实施,包括使用不同时间单位(或不同间隔)作为建立子目录层的边界的目录结构。
在图2的例子中,层次式目录结构具有6层且最小的时间单位间隔(即层次的最低层)对应于内容单元被保存时的秒。然而,如上所述,在此所述的本发明的实施例在这方面没有限制,因为它们可连同具有任何适当数量的层的目录结构使用,每一层对应于任何适当的时间单位。例如,目录结构可仅包括4层,最小的时间单位间隔为小时。在这方面,目录的总数可减少(相比于具有6层的目录结构)且每一“叶”目录中保存的内容单元的数量可增加。或者,层次中的层数可增加到7层,间隔的最低层对应于毫秒或其它子秒时间单位。由此,“叶”目录的数量可增加且更少的内容单元保存在每一“叶”目录中。
申请人已意识到,每一叶目录中保存的内容单元的数量可影响***的性能。如上所述,文件***可将文件***目录结构中的位置映射到物理存储位置(如块)。文件***用于实现此的映射信息可能很大,使得将全部映射保存在文件***正于其上运行的计算机的存储器中不可能和/或不可行。因而,在任何特定时间点只有部分映射可被缓存在存储器中,而其余映射保留在文件***于其上运行的计算机使用的非易失性存储装置上(如磁盘)。如果有大量目录且只有少量内容单元保存在每一目录中,则将被取回的内容单元的文件***位置不太可能是被缓存的映射的一部分。由此,文件***不得不频繁从磁盘取回相应的映射部分,从而导致性能的降低。然而,如果目录结构中的目录数量较小且每一目录中有大量内容单元,在适当目录内查找所需内容单元所花费的时间可能增加,从而导致性能降低。
可能希望选择平衡这两个竞争因素的目录结构。例如,层次结构中的最佳层数取决于目录结构中保存的内容单元的数量、内容单元跨目录结构的分布、及内容单元被保存在目录结构中的频率。因而,在一实施例中,目录层次的层数在***运行期间可配置且可改变。这可以任何适当的方式完成。例如,增加层数可通过为每一叶目录创建另外的子目录并将内容单元下移到适当的另外的子目录中实现,减少层数可通过将内容单元上移到其中保存内容单元的子目录的父目录并将所述子目录从层次删除而实现。
在一实施例中,采用本发明的容器化方面的基于时间的目录结构可用作存储***的复制目标。经常希望在存储***外部的存储装置上创建存储***上保存的内容单元的拷贝,使得在存储***(或其组成部分)不可恢复的失效情况下,存在数据的备份拷贝。如在此所使用的,内容单元的复制指在存储***外部的存储装置上创建内容单元的拷贝。示例性的复制***如图3中所示,其中存储***301将内容单元复制到复制目标303。根据本发明的一实施例,复制目标303包括处理软件305,其处理来自存储***301的访问请求(例如,如上结合图1A所述)并将内容单元保存在文件***307的容器文件中及从其取回内容单元。逻辑上保存在文件***307中的文件可被物理上保存在基础存储装置309上。
应意识到,尽管在图3中复制目标303仅使用单一存储装置309,但本发明在这方面没有限制。实际上,复制目标303可使用多个存储装置,且这些存储装置可以层次方式排列,使得可使用上面结合图1B所述的HSM技术。
在一实施例中,内容单元从存储***301复制到复制目标303的频率可用于确定层次的层数及文件***307中的叶层的间隔。例如,如果确定平均每秒30个内容单元复制到复制目标303并希望在每一容器文件中保存大约10个内容单元,则如果文件***307使用图2中所示的基于时间的目录结构,每一叶目录中平均有3个容器文件。如果希望增加每一叶目录中的文件数,则可增加L6目录的间隔,使得每一目录代表大于1秒的时间段。例如,每一叶目录可代表5秒的时间段,使得每一L5目录具有12个子目录,而不是6个子目录。由此,每一叶目录平均可保存15个内容单元,而不是3个内容单元。或者,目录结构200的层次的层数可被减少。例如,保存在每一L6目录中的文件可被移到其父L5目录并将L6目录删除。因而,每一L5叶目录将平均保存180个文件,而不是先前由每一L6叶目录保存的3个文件。
在上述例子中,基于时间的目录结构基于内容单元被复制到复制目标的速率进行改变。然而,本发明在这方面没有限制,因为基于时间的目录结构可因任何原因改变以管理每一目录中的文件数及每一目录中的容器文件数。例如,基于时间的目录结构可基于用于内容单元的初始存储的写请求(相比于用于复制内容单元的写请求)被接收的频率改变。应意识到,用于改变基于时间的目录结构的技术不限于与容器文件一起使用,因为基于时间的目录结构也可与仅包括单一内容单元的文件一起使用。在这点上,目录中的文件数量可通过改变基于时间的目录结构和/或将文件保存在基于时间的目录结构的非叶目录中进行管理。
基于时间的目录结构可被管理以人工或自动控制目录中保存的文件数,因为本发明在这方面没有限制。当人工管理时,用户可指明目录结构中的叶目录应具有什么时间间隔及***可基于该规格改变基于时间的目录结构。在一实施例中,当用户改变时间间隔时,对应于未来时间的目录的时间间隔可被改变。也就是说,已被创建和/或已经保存文件的目录结构部分不可基于新的间隔规格改变。然而,本发明在这方面没有限制,因为在一实施例中,未来时间和过去时间目录均可被改变以具有新指定的间隔。
当自动管理时,***可基于内容单元被写入***的频率自动选择叶目录的时间间隔。这可以任何适当的方式实现,因为本发明在这方面没有限制。在一实施例中,***可选择叶目录的间隔以基于内容单元正被接收从而进行存储的当前频率保存内容单元。如果频率增加,叶目录的间隔可通过创建当前叶目录的子目录而进行改变,但具有更小的时间间隔。例如,***可确定内容单元正以每小时60的频率接收,因而可选择将未来目录的目录结构限制为四层,其叶目录具有按小时的时间间隔。因此,如果持续以该速率接收写请求,则60个内容单元可被保存在每一叶目录中。应意识到,如果内容单元被容器化,则多个内容单元可被保存在单一容器文件中,使得目录中的文件少于60个(取决于每一容器文件保存多少内容单元)。然而,本发明的该方面不限于与容器文件一起使用,因为每一内容单元可被保存在单独的文件中。
如果所接收的用于存储的内容单元数量随后增加,则目录结构可被扩展。即,例如,如果叶目录当前具有小时间隔及请求频率从每小时60个增加到每小时600个,则可创建当前小时目录的子目录,其中这些子目录中的每一个对应于由其父目录代表的小时内的分。如此,时间间隔可被降低到分且随后接收的内容单元可保存在分目录中。基于时间的目录结构可持续被创建以代表分的叶目录。如果随后接收写请求的频率降低,则可不再创建分目录且内容单元可再次保存在小时目录中。
在上面的例子中,由于基于时间的目录结构随时间进展扩展(即另外的目录被创建以代表新的时间),目录结构的层数和叶层的间隔可动态改变。因而,对应于第一时间段的目录结构的第一部分可具有不同于对应于第二时间段的目录结构的第二部分的层数。此外,由于扩展或收缩目录结构的决定可随时做出,目录可能没有一整套叶目录。例如,如果内容单元正被保存在对应于某天下午1点到1点59分时间段的叶小时目录中,及决定从下午1点30分开始将间隔降低到分,则小时目录将仅有30个叶子目录(即从1:30PM到1:59PM每一分钟一个子目录)。也就是说,从1:00PM到1:29PM保存的内容单元可被保存在父小时目录中,而从1:30PM到1:59PM保存的内容单元可被保存在代表从1:00PM到1:59PM时间段的小时目录的分子目录之一中。因而,小时目录仅具有30个子目录,每一子目录具有1分钟的时间间隔,而不是60个子目录(即一小时的每一分钟一个子目录)。
应意识到,在上面的例子中,内容单元可被保存在目录结构的叶目录和/或非叶目录中。因而,在一实施例中,当随后接收到读保存在基于时间的目录结构中的内容单元的请求时,非叶目录也可被搜索以查找所述请求确定的内容单元。
在一实施例中,指示目录具有包含内容单元的子目录的深入文件可用于帮助基于随后的读请求查找内容单元。这可以任何适当的方式进行,因为本发明在这方面没有限制。例如,如上所述,当内容单元正被保存在具有第一时间间隔的目录中时,可决定目录的时间间隔应被降低,其通过创建具有更小时间间隔的新子目录层并将内容单元保存在这些子目录中实现。深入文件可被创建和保存在这些子目录的父目录中。在一实施例中,当接收到确定内容单元的读请求时,例如,内容单元可通过确定内容单元被保存的时间段并查找基于时间的目录结构中对应于存储时间并保存内容单元的最高层目录而进行查找。如果内容单元未在对应于存储时间的、其中保存有内容单元的最高层目录中发现,可确定在该目录中是否有深入文件。如果有深入文件,则最高层目录的对应于所述时间段的子目录可被搜索以查找内容单元。该子目录也可包含深入文件。
在一实施例中,深入文件可指示决定扩展目录结构(如通过在层次中增加另外的层)的时间。因而,在读请求具有内容地址的内容单元基础上,所述内容地址包括指示晚于深入文件中指明的时间的时间戳,处理软件305可进行到较低层的适当子目录,而不必检查深入文件目录中的内容单元。
在所述例子中,目录结构的间隔基于内容单元被接收进行存储的频率改变。然而,本发明不限于此方面,因为间隔可基于任何适当的准则或条件进行确定。
应意识到,上面提供的情形仅是基于时间的目录结构可被配置以影响每一目录中保存的文件数的方式的例子。本发明不限于这些特定的例子,因为任何适当的目录结构均可使用。
在上面的例子中,平均每秒30个内容单元被复制到复制目标303且每一容器文件预计保存10个内容单元。应意识到,复制速率和每一容器文件中的内容单元的预期数量仅作为例子提供,任何适当的复制速率和/或内容单元数量均可使用。例如,可预期容器文件保存50、75、100、或任何其它适当数量的内容单元。
在上面的例子中,目录结构200被改变以增加每一目录中保存的文件数量。应意识到,目录结构200也可被改变以减少每一目录中保存的文件数量。这可以任何适当的方式实现。例如,由每一叶目录代表的时间段可被增加或目录的另外的层可被添加到层次中从而具有更小的时间段间隔。
在图3中,复制目标303用作一存储***(即存储***301)的复制目标。然而,应意识到,本发明在这方面没有限制,因为复制目标303可用作任何适当数量的存储***的复制目标。复制目标303可以是存储***、主计算机、设备或任何其它适当的实体。在这方面,存储装置309可以是复制目标303的内部存储装置,如磁盘驱动器,或者是连到复制目标303的外部存储装置,如外部磁带存储装置。
在上述例子之一中,容器文件被提及对其中保存的内容单元有限制。容器文件不应保存另外的内容单元及新的容器文件应被创建的识别可以任何适当的方式做出,因为本发明在这方面没有限制。例如,处理软件305可对特定容器文件中保存的内容单元的数量强加限制。或者,在一实施例中,在已逝去一定量的时间之后可创建新的容器文件。例如,创建新容器文件的时间间隔可基于每一容器文件中所希望保存的平均内容单元数量。也就是说,例如,如果知道或确定复制目标303平均每秒接收30个内容单元用于复制,及希望在每一容器文件中具有大约150个内容单元,则每5秒可创建一新的容器文件。
在一实施例中,容器文件除内容单元本身外还可包括信息。任何适当的信息均可被包括,因为本发明在这方面没有限制。例如,除了内容单元之外,容器文件还可包括保存于其中的内容单元的内容地址及每一内容单元的大小。容器文件600的例子如图6中所示。在图6的例子中,容器文件600保存3个内容单元,因而具有3记录601a、601b和601c(即每一内容单元一记录)。容器文件600中的每一记录包括三个信息:相应内容单元的内容地址;内容单元的内容的大小;及内容单元的内容。
容器文件600中的记录的连续组织仅是容器文件中的记录可被组织的方式的例子。应意识到,容器文件可以任何适当的方式组织,因为本发明在这方面没有限制。
处理软件305(图3)可以任何适当的方式选择保存容器文件的目录。例如,在文件***307包括基于时间的目录结构的实施例中,容器文件可在基于时间的目录结构中保存在对应于容器文件的创建时间的叶目录中。在这点上,在新的容器文件在某一时间间隔之后创建的实施例中,容器文件被保存于其中的叶目录的时间段可大于创建新容器文件的时间间隔。因而,保存在容器文件中的内容单元也被保存在对应于内容单元的存储时间的叶目录中。例如,如果叶目录对应于30秒的时间段(如2005年3月20日11:30:00到2005年3月20日11:30:29)及每5秒创建新的容器文件,则在叶目录中有6个容器文件且在叶目录代表的30秒时间段期间由复制目标303接收的任何内容单元均可保存在叶目录中的6个容器文件之一中。相反,如果叶目录对应于1秒的时间段,但创建新容器文件的时间间隔为5秒,则每5个叶目录中只有1个叶目录可保存容器文件。因此,在由不保存容器文件的叶目录代表的时间段期间由复制目标303接收的内容单元可被保存在不对应于内容单元由复制目标303接收时间段的叶目录中。
在本发明不限于将内容单元保存在容器文件中的同时,这样做可帮助在容器文件中查找特定的内容单元,其中所述容器文件保存在对应于内容单元被接收时间段的目录中,下面将对此详细描述。
容器文件可具有任何适当的文件名,因为本发明在这方面没有限制。在一实施例中,容器文件的文件名可以是时间戳,其指示容器文件的创建时间。然而,任何其它适当的文件名均可使用。
在内容单元被复制到复制目标的本发明实施例中(如图3中所示),可有两个存储时间与内容单元相关联。首先,内容单元可具有反映内容单元初始保存在存储***301上的时间的存储时间。其次,内容单元可具有反映内容单元保存在复制目标303上的时间的存储时间。因而,在将包括时间戳信息的内容地址用作内容单元的标识符的本发明实施例中,由于内容单元初始保存在存储***301上(即当内容地址被初始赋予时),包括在内容地址中的时间戳信息可反映存储***301上的初始存储时间,而不反映复制目标303上的存储时间。然而,内容单元保存于其中的容器文件从而内容单元保存在复制目标303上的基于时间的目录基于复制目标303上内容单元的存储时间,而不是内容地址中的时间戳指示的时间。
保存在复制目标上的内容单元的内容地址中的时间戳本身不指示内容单元保存在哪一基于时间的目录中,因为基于时间的目录基于复制目标上的存储时间选择,而时间戳反映复制源(即存储***)上的存储时间。因而,在一实施例中,除了采用容器文件保存内容单元以外,一个或多个容器索引文件可被创建并保存在复制目标的目录结构中。容器索引文件保存于其中的目录可基于由容器索引文件引用的内容单元的内容地址的时间戳(即存储***301上的存储时间)。例如,当复制目标303接收到保存内容单元的请求时,处理软件305可将内容单元保存在位于307中的基于时间的目录之一中的容器文件中,其对应于内容单元由复制目标303接收进行存储的时间段。另外,可在容器索引文件中形成记录,其通过内容地址确定内容单元并指示内容单元保存在哪一容器文件中。容器索引文件可被保存在对应于内容单元初始保存在存储***301上的时间的基于时间的目录中。
在一实施例中,内容单元的内容地址可不包括时间戳。因而,内容单元在存储***301上的初始存储时间可能不被知道。因而,在基于时间的文件***中对内容单元创建索引记录有一定难度。在一实施例中,使用内容地址或一部分内容地址用作输入及时间值作为输出的散列函数。内容地址或一部分内容地址可被输入到散列函数,及对应于散列函数输出的时间值的基于时间的目录可被选择。容器索引文件可保存在所选的基于时间的目录中。因而,容器索引文件不必须保存在基于内容单元初始保存在存储***301上的时间选择的目录中,而是保存在基于散列函数产生的时间值选择的目录中。因而,保存在基于时间的目录结构的目录中的容器索引文件中可有用于内容单元的记录,即使内容地址中没有时间戳信息及存储***上的初始存储时间不知道。在随后的例子提及容器索引文件及相关联的文件保存在对应于内容单元初始保存在存储***301上的时间的目录中的同时,应意识到,容器索引文件及相关联的文件可保存在对应于散列函数产生的时间值的目录中。
当随后接收到访问内容单元的请求并通过内容地址确定内容单元时,处理软件305可使用内容地址中的时间戳信息查找引用内容单元的容器索引文件,或者如果内容地址不包括时间戳,使用散列函数从内容地址产生时间值并在容器索引文件中查找对应于内容单元的记录。该记录可确定内容单元保存在哪一容器文件中和/或提供指向该容器文件的指针。因而,不是搜索所有容器文件以查找具有请求中指明的内容地址的内容单元,而是使用内容地址中的时间戳信息查找指向适当容器文件的指针,不必执行对容器文件的穷尽搜索。
使用容器索引文件在采用HSM技术的***中特别有益。例如,如果容器文件保存在较慢的存储装置上且必须搜索所有容器文件以查找特定的内容单元,则许多容器文件(其由于包含内容单元而通常远大于容器索引文件)不得不在较慢的存储装置和高速缓存(即更快的存储装置)之间传送。容器索引文件的使用使处理软件305能够确定所请求的内容单元保存在哪一容器文件中,因而不必将许多大的容器文件从慢的存储装置(如磁带***)移到更快的存储装置(如磁盘驱动器)。而是,只有包括所述内容的容器文件可被从慢的存储装置移到更快的存储装置,如果其尚未保存在较快的存储装置上的话。
图4示出了容器索引文件401和容器文件405及407之间的关系的例子。容器索引文件401包括多个记录403a、403b和403c,每一记录通过内容地址确定内容单元并也包括可用于查找内容单元的信息。在一实施例中,该信息包括指明内容单元保存在容器文件中的位置的指针及容器文件内内容单元开始的偏移量。因而,例如,记录403a可包括指向容器文件405的指针并可指示相应的内容单元在容器文件内开始一定量的字节。此外,容器索引文件中的记录还可并可指示具有与当前记录相同散列的下一索引的信息。应意识到,该信息的部分不必包括在容器索引文件中,及任何其它适当的信息可包括在索引文件中,因为本发明在这方面没有限制。
在一实施例中,容器索引文件可具有任何适当数量的记录,其中每一记录确定内容单元及保存其的容器文件。然而,本发明不限于这种情形,因为容器索引文件可具有任何适当的形式。在一实施例中,每一容器索引文件可对应于特定的时间段。因而,容器索引文件包括用于内容单元的记录,所述内容单元的内容地址包括落在容器索引文件时间段内的时间戳。对应于容器索引文件的时间段可以是任何适当的持续时间,因为本发明在这方面没有限制。然而,在一实施例中,容器索引文件的时间段的持续时间少于或等于容器索引文件保存于其中的叶目录代表的时间段的持续时间。例如,如果容器索引文件保存在基于时间的目录结构的叶目录中,其中最低层的叶目录对应于30秒的时间段,则容器索引文件可对应于同一时间段或更短的时间段。因而,当在对应于包含由内容单元的内容地址中的时间戳指示的时间的时间段的容器索引文件中形成内容单元的记录时,容器索引文件将被保存在也包含内容单元的内容地址中的时间戳指示的时间的叶目录中。
容器索引文件也可具有任何适当的文件名,因为本发明在这方面没有限制。在一实施例中,容器索引文件可具有指示容器索引文件所对应的时间段的文件名。应意识到,这仅仅是可使用的文件名的一个例子,本发明不限于该特定例子。
在容器索引文件对应于持续时间短于保存其的叶目录代表的时间段的持续时间的时间段的本发明实施例中,在叶目录中有多个容器索引文件。例如,如果叶目录代表30秒时间段(如2005年3月20日11:30:00到2005年3月20日11:30:29)及每一容器索引文件对应于15秒时间段,则在叶目录中有两个容器索引文件:一个对应于2005年3月20日11:30:00到2005年3月20日11:30:14时间段,另一个对应于2005年3月20日11:30:15到2005年3月20日11:30:29时间段。
容器索引文件的时间段的持续时间可以任何适当的方式选择,因为本发明在这方面没有限制。例如,在一实施例中,可选择持续时间对应于创建新容器文件的间隔。因而,例如,如果每5秒创建新的容器文件,则容器索引文件的时间段的持续时间也可以是5秒。或者,持续时间可基于叶目录中希望的最大容器索引文件数量进行选择。也就是说,例如,如果叶目录代表的时间段的持续时间为30秒,及希望在叶目录中最大具有5个容器索引文件,则叶目录中的每一容器索引文件的时间段的持续时间可以是6秒。这些仅是选择容器索引文件的时间段的持续时间的方式的例子,任何其它适当的方式均可使用。例如,所有容器索引文件不必须是相同的持续时间。
如果复制目标303不保存任何应在容器索引文件中具有记录的内容单元,则处理软件305不必创建容器索引文件。因而,例如,如果复制目标303不保存任何其内容地址具有指示在2005年3月20日11:30:1 5和2005年3月20日11:30:29之间的存储时间的时间戳的内容单元,则不必创建对应于2005年3月20日11:30:1 5到2005年3月20日11:30:29时间段的容器索引文件,因为如果其被创建,容器文件中将没有记录。
类似地,应意识到,如果没有文件将被保存在目录中,则基于时间的目录结构中的目录不必创建。例如,参考图2中的目录结构200,在目录结构中有对应于2005年2月的子目录203。如果在2005年2月期间没有内容单元初始保存在存储***301上且在2005年2月期间没有内容单元被复制到复制目标303,则不必创建子目录203(及层次中自其向下的所有子目录)。
在一实施例中,每一容器索引文件也可具有相关联的首部文件,称为索引首部文件,其可用于帮助查找容器索引文件内的特定记录及帮助删除内容单元。为帮助查找容器索引文件中的记录,例如索引首部文件可包括指向容器索引文件内的指针阵列。所述阵列中的每一指针可指示容器索引文件中的记录的位置及所述阵列可基于容器索引文件中的记录中保存的内容地址的散列进行组织。因而,为使用相应内容单元的内容地址查找容器索引文件中的记录,内容地址可被散列以确定指向阵列中的记录的指针的位置。之后,指针可用于确定容器索引文件中对应于散列的内容地址的记录的位置。
索引首部文件还可包括有助于管理内容单元的删除的信息。在本发明的一实施例中,删除可按如下处理。当处理软件305接收删除内容单元的请求并通过内容地址确定内容单元时,不是查找内容单元并从适当的容器文件和容器索引文件去除其相应的记录,而是所述记录保留在文件中且记录内容单元已被删除的记号,从而随后的访问该内容单元的请求被拒绝。这样的记号可以任何适当的方式进行,因为本发明在这方面没有限制。在一实施例中,所述记号记录在索引首部文件中。
例如,如图5中所示,删除数据结构500可保存在索引首部文件中。删除数据结构使位同与索引首部文件相关联的容器索引文件中的每一记录关联。如果用于记录的位在1值(如具有值“1”),则该记录尚未被删除,反之,如果用于记录的位在另一值(如具有值“0”),则该记录已被删除。当处理软件305接收保存内容单元的请求并在容器索引文件中创建对应于内容单元的记录时,处理软件也可在具有初始设置位(即具有值“1”)的相应索引首部文件中的删除数据结构500中为该记录添加位。当随后接收到删除内容单元的请求时,所述位可被复位到值“0”,其表明内容单元已被删除。由此,当处理软件305随后接收读数据的请求时,处理软件可检查索引首部文件中的删除数据结构500以在返回内容单元之前确定内容单元是否已被删除。如果确定内容单元已被删除,指示内容单元不存在和/或内容单元已被删除的响应可被返回给访问实体。
索引首部文件也可包括任何其它适当的信息,如其相关容器索引文件中当前的记录数。此外,上述的删除数据结构的例子仅是用于跟踪哪些内容单元已被删除的数据结构的一种实施方式。本发明不限于该特定的例子,因为删除数据结构可采取任何适当的形式。
如上所述,尽管在一实施例中容器索引文件和容器文件的各个记录未响应于删除请求而被消除,如果已接收到删除容器索引文件中的每一记录的请求,则整个容器索引文件和索引首部文件可被删除。例如,如上所述,容器索引文件可具有相关联的包括删除数据结构的索引首部文件。如果删除数据结构中的每一位被置为“0”,表明已接收到删除容器索引文件中的每一记录的请求,则根据一实施例,索引首部文件和容器索引文件均可被删除。
在一实施例中,每一容器文件也可具有与其相关联的首部文件,称为容器首部文件。容器首部文件可用于确定容器文件何时可被删除。例如,容器首部文件可指明有多少内容单元保存在其相关联的容器文件中及这些内容单元中有多少已被删除。因而,例如,当处理软件305接收到删除内容单元的请求时,处理软件305可使用适当的容器索引文件确定内容单元保存在哪一容器文件中,及除了更新与容器索引文件相关联的索引首部文件中的删除数据结构以外,还可更新容器首部文件已反映已从其相关联的容器文件删除的内容单元的数量。当删除的内容单元的数量与当前保存在容器文件中是内容单元的数量相同时,容器文件及其相关联的容器首部文件可被删除。
上面的描述提供了确定内容单元是否已被删除和/或容器文件、容器索引文件及索引首部文件何时可被删除的方式的例子。本发明不限于该特定的例子,因为这些确定中的任何确定均可以任何适当的方式进行。
如上所述,除了接收取回一个或多个特定内容单元(如由内容地址确定的内容单元)的访问请求以外,处理软件305还可接收查询访问请求,其请求满足一个或多个条件的内容单元的标识。在本发明的一实施例中,处理软件305可处理基于时间的查询请求,其请求在所述请求中指明的时间范围期间保存到复制目标303的内容单元的标识。这可以任何适当的方式实现,因为本发明在这方面没有限制。例如,在一实施例中,响应于查询请求,处理软件305可确定基于时间的目录结构中哪些叶目录落在所述请求中指明的时间范围内。处理软件305可访问保存在这些目录中的容器文件并返回保存于其中的内容单元的内容地址。
在一实施例中,处理软件305除了返回内容地址以外或代替返回内容地址,还可返回内容单元本身。由于容器文件及其相关联的容器首部文件不包括指示容器文件中保存的哪些内容单元已被删除的信息,在一实施例中,处理软件可响应于基于时间的查询确定已被删除的内容单元。
为解决该问题,在一实施例中,容器文件的容器首部文件也可包括删除数据结构,与索引首部文件中包括的删除数据结构类似,其指明相关联的容器文件中哪些内容单元已被删除。为维护该数据结构,当接收到删除内容单元的请求时,用于内容单元保存于其中的容器文件的容器首部文件中的删除数据结构应被更新。此外,在处理软件305响应于基于时间的查询请求返回所确定的内容单元的内容地址而不返回内容单元本身的实施例中,多个容器文件不得不从存储装置传给复制目标303的存储器以确定与所指定时间范围匹配的内容单元的内容地址。通常,容器文件较大,因为它们包括许多内容单元的内容。由此,从存储装置传输这些文件会增加响应于基于时间的查询请求的等待时间。
在另一实施例中,不是维护容器文件的容器首部文件中的删除数据结构,而是指向引用内容单元的容器索引文件的指针可连同容器文件中每一内容单元的记录一起保存。因而,当接收到基于时间的查询请求时,处理软件305可访问保存在落在所指定时间范围内的叶目录中的容器文件,在响应于请求确定内容单元之前,可使用指向内容单元的记录中的容器索引文件的指针确定内容单元是否被删除(如经索引首部文件中的删除数据结构)。在该实施例中,不必维护每一容器文件的删除数据结构及在容器文件中保存的内容单元被删除时对其进行更新。而是,当初始保存内容单元时,指向适当的容器索引文件的后退指针可包括在容器文件中的内容单元的记录中。
在容器首部文件包括删除数据结构或容器文件记录包括指向容器索引文件的后退指针的实施例中,许多大的容器文件可从存储装置传给复制目标的存储器以获得满足基于时间的查询请求中指明的条件的内容单元的内容地址,即使内容单元的内容不必响应于所述请求返回。此外,在采用HSM技术的实施例中,不仅这些大的容器文件不得不从存储装置移到复制目标的存储器,这些容器文件还必须首先从存储层次中的较慢存储装置(如磁带驱动器)移到所述存储装置,例如其可以是磁盘驱动器。
为解决此问题,在一实施例中,可采用存储时间容器文件。存储时间容器文件,与容器文件相似,可对应于特定时间段并可具有在该时间段期间保存的内容单元的记录。因而,存储时间容器文件可保存在包含存储时间容器文件的时间段的叶目录中。当内容单元初始保存在容器文件中时,内容单元的记录可在适当的存储时间容器文件中形成。
存储时间容器文件700的例子如图7中所示。存储时间容器文件700包括两记录:701a和701b。每一记录对应于容器文件中保存的内容单元并可包括可用于响应基于时间的查询请求的信息。例如,记录可包括内容单元的内容地址、指向引用内容单元的容器索引文件的指针、内容单元的存储时间、及内容单元的内容大小。也可包括任何其它适当的信息,因为本发明在这方面没有限制。
当接收到基于时间的查询请求时,处理软件305可确定对应于所述请求中指明的时间范围的叶目录并访问保存在这些目录中的存储时间容器文件。对于存储时间容器文件中的每一记录,处理软件305可使用指向该记录中的容器索引文件的指针访问其相关联索引首部文件中的删除数据结构确定对应于该记录的内容单元是否已被删除。如果内容单元已被删除,则其不能响应于请求确定。如果内容单元尚未删除,则响应于请求可返回内容单元的内容地址以及任何其它适当的信息,例如内容单元的存储时间及其内容的大小。
在一实施例中,可对每一存储时间容器文件创建存储时间首部文件。例如,存储时间首部文件可用于确定存储时间容器文件是否可被删除(即对应于存储时间首部文件中的所有记录的内容单元是否已被删除)。存储时间首部文件可指明存储时间容器文件中的当前记录数(其可在记录添加到存储时间容器文件中时更新),并可指明对应于已删除内容单元的记录数(其可在每当对应于记录之一的内容单元被删除时更新)。如果对应于已删除内容单元的记录数与存储时间容器文件中的记录数相同,则存储时间容器文件可被删除(如由处理软件305删除)。
在一实施例中,除了响应于查询请求确定在所指定时间范围期间保存的内容单元以外,处理软件305可响应于查询请求确定在所指定时间范围期间删除的内容单元。这可以任何适当的方式进行,因为本发明在这方面没有限制。
例如,可创建删除容器文件,其对应于特定时间段并可具有在该时间段期间删除的内容单元的记录。删除容器文件可保存在对应于删除容器文件的时间段的叶目录中。当内容单元被删除时,在包含内容单元的删除时间的删除容器文件中可形成用于该内容单元的记录。包括两记录801a和801b的删除容器文件800的例子如图8中所示。删除容器文件中的每一记录对应于删除的内容单元并包括任何适当的信息。例如,记录可包括删除的内容单元的内容地址、删除时间及删除的原因。
当接收到请求所指定时间范围期间删除的内容单元的标识的查询请求时,处理软件305可确定对应于落在所指定时间范围内的时间段的叶目录。之后,处理软件305可访问保存在这些目录中的删除容器文件并返回删除容器文件中确定的每一内容单元的信息。可返回任何适当的信息,因为本发明在这方面没有限制。例如,响应于查询请求,在所述时间范围期间删除的内容单元的内容地址可被返回,连同内容单元的删除时间及删除原因。
在此所述的本发明的各方面可与保存两种不同类型的内容单元的***一起使用,所述两种不同类型为二进制大对象及内容描述符文件(CDF),每一二进制大对象被至少一CDF引用。二进制大对象可保存应用数据,而引用二进制大对象的CDF可保存关于二进制大对象的元数据。访问实体不可直接访问二进制大对象,仅可直接访问CDF。因而,访问实体不知道二进制大对象的内容地址,而仅知道CDF的内容地址。为访问二进制大对象,访问实体可发送请求引用二进制大对象的CDF的请求。作为其回应,访问实体可接收所请求的CDF及该CDF引用的二进制大对象。在这点上,访问实体也可不直接请求删除二进制大对象。访问实体可请求删除引用二进制大对象的CDF。如果没有CDF引用二进制大对象,则二进制大对象可被删除。
在一实施例中,单独的容器文件可用于二进制大对象和CDF。因而,基于时间的目录结构中的叶目录具有部分二进制大对象容器文件和部分容器文件(即如果在叶目录的时间段期间有二进制大对象和CDF保存到复制目标303)。类似地,单独的容器索引文件可用于二进制大对象和CDF。如上所述,在一实施例中,二进制大对象不可由访问实体直接删除。因而,在一实施例中,不是在与二进制大对象容器索引文件相关联的索引首部文件中包括删除数据结构,而是索引首部文件可包括引用计数映射。引用计数映射包括用于二进制大对象容器索引文件中的每一二进制大对象记录的记录,其指明有多少CDF正引用二进制大对象。二进制大对象的引用计数映射可在创建引用二进制大对象的新CDF时更新或在引用二进制大对象的CDF被删除时更新。在这点上,如果引用计数映射中的每一记录为“0”,其表明没有CDF引用二进制大对象索引容器文件中引用的任何二进制大对象,则二进制大对象索引文件可被删除。
如上所述,当容器首部文件中的信息表明容器文件中保存的所有内容单元被删除时容器文件可被删除。然而,在采用二进制大对象和CDF内容单元类型的实施例中,即使确定CDF容器文件中保存的每一CDF均已被删除,CDF容器文件可不删除。这可因任何适当的原因进行,本发明在这方面没有限制。例如,CDF容器文件可用作审计日志,使得关于删除的CDF(及删除的CDF引用的已删除二进制大对象)的信息仍然存在于复制目标上并可用于确定关于删除的内容单元的信息。在CDF容器文件未被删除的实施例中,不必维护用于CDF容器文件的容器首部文件。由于容器首部文件主要用于确定其相关联的容器文件是否可被删除(即通过确定其相关联的容器文件中的所有内容单元是否已被删除)及由于CDF容器文件未被删除,不必对CDF容器文件创建和维护容器首部文件。
申请人已意识到,在某些情形下,可能希望特定的内容单元仅保存一次。因而,如果用户试图保存已经保存在计算机上的内容单元,计算机可忽视该内容单元的存储,使得不会在存储***上保存两份相同的内容单元。然而,从请求存储内容单元的实体的角度,存储***已接受和处理存储请求。这可以任何适当的方式实现,因为本发明在这方面没有限制。
在内容单元的内容地址不包括时间戳的实施例中,当接收到写内容单元的请求时,如上所述,内容地址可被输入到散列函数以导出时间值。该时间值可用于选择保存内容单元的容器索引文件的目录。对应于该时间值的适当容器索引文件可被选择且可确定是否有另一具有相同内容地址的内容单元已经保存于其中。如果有另一具有相同内容地址的内容单元保存于其中,则内容单元的另一拷贝不必保存在基于时间的目录结构中的容器文件中。然而,上述的引用计数映射中的内容单元引用计数可被递增,使得来自保存内容单元的第一拷贝的第一实体的删除内容单元的请求将不导致内容单元的删除,使得保存内容单元的第二拷贝的第二实体仍可访问该内容单元。
在内容单元的内容地址包括指明内容单元的初始存储时间的时间戳的实施例中,同一内容单元的两个拷贝在其内容地址中可具有不同的时间戳。因而,当接收到保存内容单元的请求时,很难确定内容单元的前一拷贝是否已被保存。为解决该问题,在一实施例中可采用单一实例存储(SIS)文件。当接收到写内容单元的请求时,除了将内容单元的记录保存在容器索引文件中及将内容单元保存在容器文件中之外,内容单元的内容地址(或一部分内容地址)可被输入到散列函数,其至少部分基于内容地址输出时间值。在将内容地址输入散列函数之前时可从内容地址删除时间戳,使得散列函数仅对使用内容单元的内容产生的内容地址部分作用。对应于内容单元的SIS文件可创建在对应于散列函数输出的时间值的基于时间的目录中。SIS文件可指示内容单元的内容地址。SIS文件还可指示包括内容单元的记录的容器索引文件的位置并识别该容器索引文件。当接收到保存另一具有相同内容的内容单元的写请求时,处理软件305(图3)可将使用内容单元的内容产生的内容地址部分输入散列函数以产生时间值。可查找对应于该时间值的目录并可确定是否有包括内容单元的内容地址(不含时间戳)的SIS文件。当发现SIS文件时,可查找对应于内容单元的第一拷贝的容器索引文件并可确定保存内容单元的第一拷贝的容器文件的位置。之后,在对应于内容单元的第二拷贝的内容地址中的时间戳的目录中的容器索引文件中可形成用于内容单元的第二拷贝的记录。该记录可将保存内容单元的第一拷贝的容器文件指示为内容单元的位置。如此,内容单元的第二拷贝不必保存,但可使用内容单元的第一拷贝的内容地址或内容单元的第二拷贝的内容地址查找内容。
在一实施例中,在此描述的本发明的方面可用在采用虚拟池的***中。虚拟池在下面表1中列出的申请10/910,985、10/911,330、10/911,248、10/911,247和10/911,360中详细论述。内容单元可因任何适当的原因逻辑上分组在一起。例如,内容单元可被分组在一起以控制对某些内容单元的访问。也就是说,第一主计算机仅可被允许访问虚拟池A中的内容单元,而第二主计算机仅可被允许访问虚拟池B中的内容单元。
在一实施例中,信息可被包括在索引容器文件、存储时间容器文件和/或删除容器文件中,其指明由该记录引用的内容单元属于哪一或哪些虚拟池(如果有)。当接收到访问请求(如读、写或查询请求)时,处理软件305可确定每一所请求的内容单元属于哪一虚拟池并在对请求响应之前确定发出请求的实体是否被允许访问该虚拟池。
上述的许多例子采用基于时间的目录结构。在一些例子中,基于时间的目录结构的使用很方便,因为将要保存的内容单元的内容地址包括帮助选择保存内容单元的目录的时间戳。此外,当响应于基于时间的查询请求或删除基于时间的查询请求时,基于时间的目录结构可用于帮助查找内容单元。然而,应意识到,本发明不限于使用基于时间的目录结构。实际上,文件***目录结构可与任何适当的方式组织。例如,目录结构可基于内容单元的内容地址中的散列值组织或其它方式,而不是基于时间。
此外,在上述例子中,文件(如容器文件、容器索引文件、存储时间容器文件和删除容器文件,及其相关联的首部文件)保存在目录结构的叶目录中。本发明不限于将上述文件保存在叶目录中,因为这些文件可保存在目录结构中的任何适当的目录中,本发明在这方面没有限制。
此外,在上面的许多例子中,内容地址用作确定内容单元的标识符。本发明不限于使用内容地址作为标识符,因为任何适当的标识符均可使用。
另外,上面提供的许多例子在将内容单元复制到复制目标(如主计算机)的存储***环境中描述。本发明不限于与采用复制的***一起使用,因为本发明的实施例可被使用在任何适当的***结构中。例如,本发明的实施例可用在用作内容单元的主存储位置的***(如主计算机)上,而不是用作备份存储位置(即复制目标)。
本发明的上述实施例可在任何适当的计算机或***上实施。适当的计算机和/或***的例子在下表1中列出的专利申请中描述(统称为“CAS申请”),每一申请通过引用组合于此。应意识到,在这些申请中描述的计算机和***仅是本发明的实施例可于其上实施的计算机和***的例子,因为本发明不限于在这些可内容寻址的存储***中的任一***上实施,或根本不限于可内容寻址的存储***。
表    1
  名称   序号   申请日
  可内容寻址的信息、封装、表示及传送   09/236,366   1999年1月21日
  在网络上访问可内容寻址的数据   09/235,146   1999年1月21日
  用于可内容寻址的信息的安全存储、传送和取回的***及方法   09/391,360   1999年9月7日
  用于存储***中的数据保持的方法和装置   10/731,790   2003年12月9日
  用于帮助访问数据存储***中的内容的方法和装置   10/731,613   2003年12月9日
  用于在数据存储***中缓存位置索引的方法和装置   10/731,796   2003年12月9日
  用于分析内容地址以帮助在数据存储***中选择物理存储位置的方法和装置   10/731,603   2003年12月9日
  用于产生内容地址以指示即将写入存储***的数据单元的方法和装置   10/731,845   2003年12月9日
  用于修改存储***中的数据保持周期的方法和装置   10/762,044   2004年1月21日
  用于延长存储***中的数据保持周期的方法和装置   10/761,826   2004年1月21日
  用于间接确定存储***中的数据保持周期的方法和装置   10/762,036   2004年1月21日
  用于间接确定存储***中的数据保持周期的方法和装置   10/762,043   2004年1月21日
  用于增加数据存储容量的方法和装置   10/787,337   2004年2月26日
  用于在存储环境中保存数据的方法和装置   10/787,670   2004年2月26日
  用于分离可内容寻址的计算机***的方法和装置   10/910,985   2004年8月4日
  用于访问可内容寻址的存储***上的虚拟池中的内容的方法和装置   10/911,330   2004年8月4日
  用于将存储***容量信息包括在访问可内容寻址的存储***的请求中的方法和装置   10/911,248   2004年8月4日
  用于跟踪可内容寻址的存储***中的内容存储的方法和装置   10/911,247   2004年8月4日
  用于保存确定可内容寻址***上保存的内容单元的来源的信息的方法和装置   10/911,360   2004年8月4日
  提供存储***功能的软件***   11/021,892   2004年12月23日
  提供可内容寻址存储***功能的软件***   11/022,022   2004年12月23日
  经网络连接的存储装置提供数据保持能力的方法和装置   11/022,077   2004年12月23日
  管理计算机***中的存储的方法和装置   11/021,756   2004年12月23日
  处理计算机***中的访问请求的方法和装置   11/021,012   2004年12月23日
  访问层次式文件***中的信息的方法和装置   11/021,378   2004年12月23日
  在存储***上保存镜象的方法和装置   11/034,613   2005年1月12日
  修改保持周期的方法和装置   11/034,737   2005年1月12日
  管理数据删除的方法和装置   11/034,732   2005年1月1 2日
  管理内容存储的方法和装置   11/107,520   2005年4月15日
  在基于时间的目录结构中取回内容单元的方法和装置   11/107,063   2005年4月1 5日
  管理内容复制的方法和装置   11/107,194   2005年4月15日
本发明的上述实施例可以多种方式中的任一方式实施。例如,实施例可使用硬件、软件或其组合实施。当以软件实施时,软件代码可在任何适当的处理器或处理器组上运行,无论提供在单一计算机中还是分布在多个计算机之间。应意识到,执行上述功能的任何组成部分可被一般地视作控制上述功能的一个或多个控制器。一个或多个控制器可以多种方式中的任一方式实现,如使用微代码或软件编程以执行上述功能的专用硬件或通用硬件(如一个或多个处理器)。
在这方面,应意识到,本发明的实施例的一种实施包括编码以计算机程序(即多条指令)的至少一计算机可读介质(如计算机存储器、软盘、光盘、磁带等),所述计算机程序在处理器上运行时执行本发明实施例的上述功能。计算机可读介质可移动,使得其上保存的程序可被装到任何计算机环境资源上以实现在此描述的本发明的各方面。此外,应意识到,提及当运行时执行上述功能的计算机程序时不限于在主计算机上运行的应用程序。而是,术语计算机程序在此按一般意义使用,其指可用于编程处理器以实施本发明的上述各方面的任何类型的计算机代码(如软件或微代码)。
应意识到,根据其中方法实施在计算机可读介质中的本发明的几个实施例,计算机实施的方法在其运行过程期间也可接收人工输入(如从用户)。
在此使用的措辞和术语用于描述的目的,不应被视作限制。“包括”、“包含”、“具有”及其变化的使用意为包括其后列出的项目及另外的项目。
上面已详细描述本发明的几个实施例,对本领域技术人员而言,各种修改和改进将容易发生。这些修改和改进确定在本发明的精神和范围内。因而,前面的描述仅作为例子,并非意于限制。本发明仅限制为下述权利要求及其等价内容定义的范围。

Claims (120)

1.管理文件***中的内容单元的方法,该方法包括:
接收保存第一内容单元的第一请求,第一内容单元具有至少部分基于第一内容单元的内容计算的第一内容地址;
响应于第一请求,将第一内容单元保存在文件***的文件中;
接收保存第二内容单元的第二请求,第二内容单元具有至少部分基于第二内容单元的内容计算的第二内容地址;及
响应于第二请求,将第二内容单元保存在文件中。
2.根据权利要求1的方法,其中文件***包括具有多个目录的基于时间的目录结构,其中多个目录中的每一目录对应于时间段,及其中文件保存在多个目录中对应于接收第一和第二请求的时间段的那一目录中。
3.根据权利要求2的方法,其中第一请求从保存第一内容单元的存储***接收,及其中第一内容地址包括表明关于第一内容单元在存储***上的存储时间的时间戳。
4.根据权利要求3的方法,还包括:
响应于第一请求,确定多个目录中对应于包括时间戳表明的时间的时间段的目录;及
在多个目录中对应于包括时间戳表明的时间的时间段的目录中保存文件的指示,所述文件保存第一内容单元。
5.根据权利要求4的方法,还包括:
响应于第一请求,将标识符与第一内容单元相关联。
6.根据权利要求5的方法,其中标识符是第一内容地址。
7.根据权利要求5的方法,还包括:
返回标识符作为接收到第一请求的确认。
8.根据权利要求5的方法,还包括:
接收访问第一内容单元的第三请求,该请求使用标识符确定第一内容单元;
使用标识符查找保存第一内容单元的文件的指示;
基于所述指示查找保存第一内容单元的文件;
在所述文件中查找第一内容单元;及
响应于第三请求返回第一内容单元。
9.根据权利要求3的方法,其中所述文件对应于包括接收第一和第二请求的时间的时间段。
10.根据权利要求3的方法,其中所述文件对应于由多个目录中所述文件保存于其中的那一目录的时间段包含的时间段。
11.根据权利要求1的方法,其中第一请求是从保存第一内容单元的存储***复制第一内容单元的请求。
12.根据权利要求2的方法,还包括:
在索引文件中为第一内容单元创建记录,所述记录确定保存第一内容单元的文件,且其中索引文件保存在多个目录中对应于第一内容单元的索引时间的那一目录中。
13.根据权利要求12的方法,其中第一请求是从保存第一内容单元的存储***复制第一内容单元的请求,且其中索引时间是关于第一内容单元在存储***上的存储时间的时间。
14.根据权利要求12的方法,其中索引时间是关于第一请求的接收时间的时间。
15.根据权利要求12的方法,其中索引时间是源自第一内容单元的内容地址的时间。
16.根据权利要求15的方法,其中源自第一内容单元的内容地址的时间源自内容地址中基于第一内容单元的内容的那一部分。
17.根据权利要求1的方法,还包括:
接收保存第三内容单元的第三请求,第三内容单元具有与第一内容单元相同的内容单元;
确定第一和第三内容单元是否具有相同的内容;及
响应于确定第一和第三内容单元具有相同的内容,拒绝保存第三内容单元。
18.根据权利要求17的方法,还包括:
接收访问第三内容单元的第四请求;及
响应于第四请求,返回第一内容单元。
19.编码以指令的至少一计算机可读介质,所述指令当在计算机***上执行时,执行管理文件***中的内容单元的方法,所述方法包括:
接收保存第一内容单元的第一请求,第一内容单元具有至少部分基于第一内容单元的内容计算的第一内容地址;
响应于第一请求,将第一内容单元保存在文件***的文件中;
接收保存第二内容单元的第二请求,第二内容单元具有至少部分基于第二内容单元的内容计算的第二内容地址;及
响应于第二请求,将第二内容单元保存在文件中。
20.根据权利要求19的至少一计算机可读介质,其中文件***包括具有多个目录的基于时间的目录结构,其中多个目录中的每一目录对应于时间段,及其中文件保存在多个目录中对应于接收第一和第二请求的时间段的那一目录中。
21.根据权利要求20的至少一计算机可读介质,其中第一请求从保存第一内容单元的存储***接收,及其中第一内容地址包括表明关于第一内容单元在存储***上的存储时间的时间戳。
22.根据权利要求21的至少一计算机可读介质,其中所述方法还包括:
响应于第一请求,确定多个目录中对应于包括时间戳表明的时间的时间段的目录;及
在多个目录中对应于包括时间戳表明的时间的时间段的那一目录中保存文件的指示,所述文件保存第一内容单元。
23.根据权利要求22的至少一计算机可读介质,其中所述方法还包括:
响应于第一请求,将标识符与第一内容单元相关联。
24.根据权利要求23的至少一计算机可读介质,其中标识符是第一内容地址。
25.根据权利要求23的至少一计算机可读介质,其中所述方法还包括:
返回标识符作为接收到第一请求的确认。
26.根据权利要求23的至少一计算机可读介质,其中所述方法还包括:
接收访问第一内容单元的第三请求,该请求使用标识符确定第一内容单元;
使用标识符查找保存第一内容单元的文件的指示;
基于所述指示查找保存第一内容单元的文件;
在所述文件中查找第一内容单元;及
响应于第三请求返回第一内容单元。
27.根据权利要求21的至少一计算机可读介质,其中所述文件对应于包括接收第一和第二请求的时间的时间段。
28.根据权利要求21的至少一计算机可读介质,其中所述文件对应于由多个目录中所述文件保存于其中的那一目录的时间段包含的时间段。
29.根据权利要求19的至少一计算机可读介质,其中第一请求是从保存第一内容单元的存储***复制第一内容单元的请求。
30.根据权利要求20的至少一计算机可读介质,其中所述方法还包括:
在索引文件中为第一内容单元创建记录,所述记录确定保存第一内容单元的文件,且其中索引文件保存在多个目录中对应于第一内容单元的索引时间的那一目录中。
31.根据权利要求30的至少一计算机可读介质,其中第一请求是从保存第一内容单元的存储***复制第一内容单元的请求,且其中索引时间是关于第一内容单元在存储***上的存储时间的时间。
32.根据权利要求30的至少一计算机可读介质,其中索引时间是关于第一请求的接收时间的时间。
33.根据权利要求30的至少一计算机可读介质,其中索引时间是源自第一内容单元的内容地址的时间。
34.根据权利要求33的至少一计算机可读介质,其中源自第一内容单元的内容地址的时间源自内容地址中基于第一内容单元的内容的那一部分。
35.根据权利要求19的至少一计算机可读介质,其中所述方法还包括:
接收保存第三内容单元的第三请求,第三内容单元具有与第一内容单元相同的内容单元;
确定第一和第三内容单元是否具有相同的内容;及
响应于确定第一和第三内容单元具有相同的内容,拒绝保存第三内容单元。
36.根据权利要求35的至少一计算机可读介质,其中所述方法还包括:
接收访问第三内容单元的第四请求;及
响应于第四请求,返回第一内容单元。
37.管理文件***中的内容单元的计算机,包括:
至少一输入装置;及
连到至少一输入装置的至少一控制器,其:
经输入装置接收保存第一内容单元的第一请求,第一内容单元具有至少部分基于第一内容单元的内容计算的第一内容地址;
响应于第一请求,将第一内容单元保存在文件***的文件中;
经输入装置接收保存第二内容单元的第二请求,第二内容单元具有至少部分基于第二内容单元的内容计算的第二内容地址;及
响应于第二请求,将第二内容单元保存在文件中。
38.根据权利要求37的计算机,其中文件***包括具有多个目录的基于时间的目录结构,其中多个目录中的每一目录对应于时间段,及其中文件保存在多个目录中对应于接收第一和第二请求的时间段的那一目录中。
39.根据权利要求38的计算机,其中第一请求从保存第一内容单元的存储***接收,及其中第一内容地址包括表明关于第一内容单元在存储***上的存储时间的时间戳。
40.根据权利要求39的计算机,其中至少一控制器:
响应于第一请求,确定多个目录中对应于包括时间戳表明的时间的时间段的目录;及
在多个目录中对应于包括时间戳表明的时间的时间段的那一目录中保存文件的指示,所述文件保存第一内容单元。
41.根据权利要求40的计算机,其中至少一控制器:
响应于第一请求,将标识符与第一内容单元相关联。
42.根据权利要求41的计算机,其中标识符是第一内容地址。
43.根据权利要求41的计算机,其中至少一控制器:
返回标识符作为接收到第一请求的确认。
44.根据权利要求41的计算机,其中至少一控制器:
经输入装置接收访问第一内容单元的第三请求,该请求使用标识符确定第一内容单元;
使用标识符查找保存第一内容单元的文件的指示;
基于所述指示查找保存第一内容单元的文件;
在所述文件中查找第一内容单元;及
响应于第三请求返回第一内容单元。
45.根据权利要求39的计算机,其中所述文件对应于包括接收第一和第二请求的时间的时间段。
46.根据权利要求39的计算机,其中所述文件对应于由多个目录中所述文件保存于其中的那一目录的时间段包含的时间段。
47.根据权利要求37的计算机,其中第一请求是从保存第一内容单元的存储***复制第一内容单元的请求。
48.根据权利要求38的计算机,其中至少一控制器:
在索引文件中为第一内容单元创建记录,所述记录确定保存第一内容单元的文件,且其中索引文件保存在多个目录中对应于第一内容单元的索引时间的那一目录中。
49.根据权利要求48的计算机,其中第一请求是从保存第一内容单元的存储***复制第一内容单元的请求,且其中索引时间是关于第一内容单元在存储***上的存储时间的时间。
50.根据权利要求48的计算机,其中索引时间是关于第一请求的接收时间的时间。
51.根据权利要求48的计算机,其中索引时间是源自第一内容单元的内容地址的时间。
52.根据权利要求51的计算机,其中源自第一内容单元的内容地址的时间源自内容地址中基于第一内容单元的内容的那一部分。
53.根据权利要求37的计算机,其中至少一控制器:
接收保存第三内容单元的第三请求,第三内容单元具有与第一内容单元相同的内容单元;
确定第一和第三内容单元是否具有相同的内容;及
响应于确定第一和第三内容单元具有相同的内容,拒绝保存第三内容单元。
54.根据权利要求53的计算机,其中至少一控制器:
经输入装置接收访问第三内容单元的第四请求;及
响应于第四请求,返回第一内容单元。
55.根据权利要求37的计算机,其中至少一控制器还包括:
用于经输入装置接收保存第一内容单元的第一请求的装置,第一内容单元具有至少部分基于第一内容单元的内容计算的第一内容地址;
用于响应于第一请求将第一内容单元保存在文件***的文件中的装置;
用于经输入装置接收保存第二内容单元的第二请求的装置,第二内容单元具有至少部分基于第二内容单元的内容计算的第二内容地址;及
用于响应于第二请求将第二内容单元保存在文件中的装置。
56.访问内容单元的方法,所述内容单元具有至少部分基于内容单元的内容的内容地址,其中内容单元保存在文件***的文件中,所述方法包括:
接收访问内容单元的请求,其中所述请求使用标识符识别内容单元,且其中内容单元保存于其中的文件保存至少一另外的内容单元,至少一另外的内容单元具有至少部分基于内容单元的内容的内容地址;
使用标识符查找内容单元保存于其中的文件;及
在内容单元保存于其中的文件中查找内容单元。
57.根据权利要求56的方法,还包括:
响应于请求返回内容单元。
58.根据权利要求57的方法,其中请求为读请求。
59.根据权利要求56的方法,其中请求为查询请求。
60.根据权利要求56的方法,其中文件***包括具有多个目录的基于时间的目录结构,其中多个目录中的每一目录对应于时间段,及其中文件保存在多个目录中对应于内容单元保存在文件***中的时间段的那一目录中。
61.根据权利要求56的方法,其中内容单元的内容地址包括时间戳。
62.根据权利要求61的方法,其中内容单元经从保存内容单元的存储***复制而保存在文件***中,及其中时间戳对应于内容单元保存在存储***上的时间。
63.根据权利要求61的方法,其中时间戳对应于内容单元保存在文件***中的时间。
64.根据权利要求62的方法,其中文件***是层次式文件***,及多个目录安排成包括至少一根目录和多个非根目录的层次树,每一非根目录具有父目录,其中树中的多个目录中至少之一对应于与其相应父目录对应的时间段包含的时间段。
65.根据权利要求64的方法,其中多个目录中对应于由时间戳表明的时间的那一目录保存包括指示文件位置的信息的索引文件。
66.根据权利要求65的方法,其中查找所述内容单元保存于其中的文件的步骤还包括:
使用时间戳查找索引文件;及
使用索引文件确定文件的位置。
67.根据权利要求65的方法,其中请求是基于时间的查询请求,其指定确定存储时间的时间条件,及查找文件的步骤还包括:
使用时间条件确定对应于包含时间条件确定的存储时间的时间段的目录;及
确定保存在所确定目录中的内容单元。
68.根据权利要求67的方法,还包括:
确定是否已接收到删除任何所确定内容单元的删除请求;及
对尚未接收到删除其的请求的所确定内容单元,返回其指示。
69.编码以指令的至少一计算机可读介质,所述指令当在计算机***上运行时执行访问内容单元的方法,所述内容单元具有至少部分基于内容单元的内容的内容地址,其中内容单元保存在文件***的文件中,所述方法包括:
接收访问内容单元的请求,其中所述请求使用标识符识别内容单元,且其中内容单元保存于其中的文件保存至少一另外的内容单元,至少一另外的内容单元具有至少部分基于内容单元的内容的内容地址;
使用标识符查找内容单元保存于其中的文件;及
在内容单元保存于其中的文件中查找内容单元。
70.根据权利要求69的至少一计算机可读介质,其中所述方法还包括:
响应于请求返回内容单元。
71.根据权利要求70的至少一计算机可读介质,其中请求为读请求。
72.根据权利要求69的至少一计算机可读介质,其中请求为查询请求。
73.根据权利要求69的至少一计算机可读介质,其中文件***包括具有多个目录的基于时间的目录结构,其中多个目录中的每一目录对应于时间段,及其中文件保存在多个目录中对应于内容单元保存在文件***中的时间段的那一目录中。
74.根据权利要求73的至少一计算机可读介质,其中内容单元的内容地址包括时间戳。
75.根据权利要求74的至少一计算机可读介质,其中内容单元经从保存内容单元的存储***复制而保存在文件***中,及其中时间戳对应于内容单元保存在存储***上的时间。
76.根据权利要求74的至少一计算机可读介质,其中时间戳对应于内容单元保存在文件***中的时间。
77.根据权利要求75的至少一计算机可读介质,其中文件***是层次式文件***,及多个目录安排成包括至少一根目录和多个非根目录的层次树,每一非根目录具有父目录,其中树中的多个目录中至少之一对应于与其相应父目录对应的时间段包含的时间段。
78.根据权利要求77的至少一计算机可读介质,其中多个目录中对应于由时间戳表明的时间的那一目录保存包括指示文件位置的信息的索引文件。
79.根据权利要求78的至少一计算机可读介质,其中查找所述内容单元保存于其中的文件的步骤还包括:
使用时间戳查找索引文件;及
使用索引文件确定文件的位置。
80.根据权利要求78的至少一计算机可读介质,其中请求是基于时间的查询请求,其指定确定存储时间的时间条件,及查找文件的步骤还包括:
使用时间条件确定对应于包含时间条件确定的存储时间的时间段的目录;及
确定保存在所确定目录中的内容单元。
81.根据权利要求80的至少一计算机可读介质,其中所述方法还包括:
确定是否已接收到删除任何所确定内容单元的删除请求;及
对尚未接收到删除其的请求的所确定内容单元,返回其指示。
82.访问内容单元的计算机,所述内容单元具有至少部分基于内容单元的内容的内容地址,其中内容单元保存在文件***的文件中,所述计算机包括:
输入装置;及
连到输入装置的至少一控制器,其:
经输入装置接收访问内容单元的请求,其中所述请求使用标识符识别内容单元,且其中内容单元保存于其中的文件保存至少一另外的内容单元,至少一另外的内容单元具有至少部分基于内容单元的内容的内容地址;
使用标识符查找内容单元保存于其中的文件;及
在其中保存内容单元的文件中查找内容单元。
83.根据权利要求82的计算机,其中至少一控制器:
响应于请求返回内容单元。
84.根据权利要求82的计算机,其中请求为读请求。
85.根据权利要求82的计算机,其中请求为查询请求。
86.根据权利要求82的计算机,其中文件***包括具有多个目录的基于时间的目录结构,其中多个目录中的每一目录对应于时间段,及其中文件保存在多个目录中对应于内容单元保存在文件***中的时间段的那一目录中。
87.根据权利要求86的计算机,其中内容单元的内容地址包括时间戳。
88.根据权利要求87的计算机,其中内容单元经从保存内容单元的存储***复制而保存在文件***中,及其中时间戳对应于内容单元保存在存储***上的时间。
89.根据权利要求87的计算机,其中时间戳对应于内容单元保存在文件***中的时间。
90.根据权利要求88的计算机,其中文件***是层次式文件***,及多个目录安排成包括至少一根目录和多个非根目录的层次树,每一非根目录具有父目录,其中树中的多个目录中至少之一对应于与其相应父目录对应的时间段包含的时间段。
91.根据权利要求90的计算机,其中多个目录中对应于由时间戳表明的时间的那一目录保存包括指示文件位置的信息的索引文件。
92.根据权利要求91的计算机,其中至少一控制器:
使用时间戳查找索引文件;及
使用索引文件确定文件的位置。
93.根据权利要求91的计算机,其中请求是基于时间的查询请求,其指定确定存储时间的时间条件,及其中至少一控制器:
使用时间条件确定对应于包含时间条件确定的存储时间的时间段的目录;及
确定保存在所确定目录中的内容单元。
94.根据权利要求93的计算机,其中至少一控制器:
确定是否已接收到删除任何所确定内容单元的删除请求;及
对尚未接收到删除其的请求的所确定内容单元,返回其指示。
95.根据权利要求82的计算机,其中至少一控制器还包括:
经输入装置接收访问内容单元的请求的装置,其中所述请求使用标识符识别内容单元,且其中内容单元保存于其中的文件保存至少一另外的内容单元,至少一另外的内容单元具有至少部分基于内容单元的内容的内容地址;
使用标识符查找内容单元保存于其中的文件的装置;及
在其中保存内容单元的文件中查找内容单元的装置。
96.在层次式文件***中保存内容单元的方法,所述层次式文件***具有按层次树安排的多个目录,所述层次树具有多层,每一层对应于时间单位,所述层次树包括至少一根目录和多个非根目录,每一非根目录具有父目录,其中所述树中的多个目录中的至少一个与对应于其相应父目录的时间段所包含的时间段对应,所述方法包括:
确定内容单元被接收从而进行存储的速率;及
基于内容单元被接收从而进行存储的速率动态确定将内容单元保存在多层中的哪一层。
97.根据权利要求96的方法,其中确定将内容单元保存在文件***中何处的步骤还包括:
确定内容单元应保存于在确定内容单元的接收速率时对应于小于对应于层次式文件***中最低现有层的时间单位的另外的时间单位的层处。
98.根据权利要求97的方法,还包括:
将对应于另外的时间单位的至少一目录动态添加到层次式文件***中;及
将至少一内容单元保存在至少一目录中。
99.根据权利要求98的方法,还包括:
选择多层之一保存内容单元;及
将至少一内容单元保存于在所选层的至少一目录中。
100.根据权利要求99的方法,其中在所选层的至少一目录为对应于接收到保存至少一内容单元的请求的时间段的目录。
101.根据权利要求99的方法,其中保存至少一内容单元的步骤还包括:
将至少一内容单元保存在至少一目录中的文件中,其中至少一文件保存至少一另外的内容单元。
102.根据权利要求101的方法,其中至少一内容单元与至少部分基于内容单元的内容计算的内容地址相关联。
103.根据权利要求102的方法,其中内容地址包括时间戳。
104.编码以指令的至少一计算机可读介质,当所述指令在计算机***上运行时执行在层次式文件***中保存内容单元的方法,所述层次式文件***具有按层次树安排的多个目录,所述层次树具有多层,每一层对应于时间单位,所述层次树包括至少一根目录和多个非根目录,每一非根目录具有父目录,其中所述树中的多个目录中的至少一个与对应于其相应父目录的时间段所包含的时间段对应,所述方法包括:
确定内容单元被接收从而进行存储的速率;及
基于内容单元被接收从而进行存储的速率动态确定在文件***中将内容单元保存在何处。
105.根据权利要求104的至少一计算机可读介质,其中确定将内容单元保存在文件***中何处的步骤还包括:
确定内容单元应保存于在确定内容单元的接收速率时对应于小于对应于层次式文件***中最低现有层的时间单位的另外的时间单位的层处。
106.根据权利要求105的至少一计算机可读介质,其中所述方法还包括:
将对应于另外的时间单位的至少一目录动态添加到层次式文件***中;及
将至少一内容单元保存在至少一目录中。
107.根据权利要求106的至少一计算机可读介质,其中所述方法还包括:
选择多层之一保存内容单元;及
将至少一内容单元保存于在所选层的至少一目录中。
108.根据权利要求107的至少一计算机可读介质,其中在所选层的至少一目录为对应于接收到保存至少一内容单元的请求的时间段的目录。
109.根据权利要求107的至少一计算机可读介质,其中保存至少一内容单元的步骤还包括:
将至少一内容单元保存在至少一目录中的文件中,其中至少一文件保存至少一另外的内容单元。
110.根据权利要求109的至少一计算机可读介质,其中至少一内容单元与至少部分基于内容单元的内容计算的内容地址相关联。
111.根据权利要求110的至少一计算机可读介质,其中内容地址包括时间戳。
112.在层次式文件***中保存内容单元的计算机,所述层次式文件***具有按层次树安排的多个目录,所述层次树具有多层,每一层对应于时间单位,所述层次树包括至少一根目录和多个非根目录,每一非根目录具有父目录,其中所述树中的多个目录中的至少一个与对应于其相应父目录的时间段所包含的时间段对应,所述计算机包括:
输入装置;及
连到输入装置的至少一控制器,其:
确定内容单元通过输入装置接收从而进行存储的速率;及
基于内容单元被接收从而进行存储的速率动态确定将内容单元保存在文件***中何处。
113.根据权利要求112的计算机,其中至少一控制器:
确定内容单元应保存于在确定内容单元的接收速率时对应于小于对应于层次式文件***中最低现有层的时间单位的另外的时间单位的层处。
114.根据权利要求113的计算机,其中至少一控制器:
将对应于另外的时间单位的至少一目录动态添加到层次式文件***中;及
将至少一内容单元保存在至少一目录中。
115.根据权利要求114的计算机,其中至少一控制器:
选择多层之一保存内容单元;及
将至少一内容单元保存于在所选层的至少一目录中。
116.根据权利要求115的计算机,其中在所选层的至少一目录为对应于接收到保存至少一内容单元的请求的时间段的目录。
117.根据权利要求115的计算机,其中至少一控制器:
将至少一内容单元保存在至少一目录中的文件中,其中至少一文件保存至少一另外的内容单元。
118.根据权利要求117的计算机,其中至少一内容单元与至少部分基于内容单元的内容计算的内容地址相关联。
119.根据权利要求118的计算机,其中内容地址包括时间戳。
120.根据权利要求112的计算机,其中至少一控制器还包括:
用于确定内容单元被接收从而保存在文件***中的速率的装置;及
基于内容单元被接收从而进行存储的速率动态确定将内容单元保存在文件***中何处的装置。
CNA2006800014313A 2005-06-23 2006-04-14 用于管理文件***中的内容存储的方法和装置 Pending CN101137981A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/165,104 US7805470B2 (en) 2005-06-23 2005-06-23 Methods and apparatus for managing the storage of content in a file system
US11/165,104 2005-06-23
US11/165,102 2005-06-23
US11/165,103 2005-06-23

Publications (1)

Publication Number Publication Date
CN101137981A true CN101137981A (zh) 2008-03-05

Family

ID=37568872

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800014313A Pending CN101137981A (zh) 2005-06-23 2006-04-14 用于管理文件***中的内容存储的方法和装置

Country Status (2)

Country Link
US (1) US7805470B2 (zh)
CN (1) CN101137981A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103973744A (zh) * 2013-02-01 2014-08-06 北京英富森信息技术有限公司 一种分布式文件递进存储技术
CN103635900B (zh) * 2011-03-31 2017-05-24 伊姆西公司 基于时间的数据分割
CN107656944A (zh) * 2016-08-23 2018-02-02 平安科技(深圳)有限公司 报价单文件的存储方法及文件服务器
US9916258B2 (en) 2011-03-31 2018-03-13 EMC IP Holding Company LLC Resource efficient scale-out file systems

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7411865B2 (en) * 2004-12-23 2008-08-12 Shotspotter, Inc. System and method for archiving data from a sensor array
US7743023B2 (en) * 2006-02-01 2010-06-22 Microsoft Corporation Scalable file replication and web-based access
WO2007106844A2 (en) 2006-03-14 2007-09-20 Divx, Inc. Federated digital rights management scheme including trusted systems
US8650541B2 (en) * 2006-08-04 2014-02-11 Apple Inc. Graphical motion composition files and methods for formatting and organization thereof
JP5209635B2 (ja) * 2006-11-30 2013-06-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ファイルのコンテンツ識別子を比較するシステム
US9128954B2 (en) * 2007-05-09 2015-09-08 Illinois Institute Of Technology Hierarchical structured data organization system
US20090063587A1 (en) * 2007-07-12 2009-03-05 Jakob Holger Method and system for function-specific time-configurable replication of data manipulating functions
US7921268B2 (en) * 2007-07-12 2011-04-05 Jakob Holger Method and system for function-specific time-configurable replication of data
US20090150481A1 (en) * 2007-12-08 2009-06-11 David Garcia Organizing And Publishing Assets In UPnP Networks
US20090150570A1 (en) * 2007-12-07 2009-06-11 Bo Tao Sharing Assets Between UPnP Networks
US20090150480A1 (en) * 2007-12-08 2009-06-11 Xiyuan Xia Publishing Assets Of Dynamic Nature In UPnP Networks
US20090150520A1 (en) * 2007-12-07 2009-06-11 David Garcia Transmitting Assets In UPnP Networks To Remote Servers
US8095558B2 (en) * 2007-12-14 2012-01-10 Casdex, Inc. System for logging and reporting access to content using unique content identifiers
US8930371B1 (en) * 2008-06-30 2015-01-06 Amazon Technologies, Inc. Systems and methods for efficiently storing index data on an electronic device
JP4962483B2 (ja) * 2008-12-19 2012-06-27 日本電気株式会社 情報処理装置
AU2010203605B2 (en) 2009-01-07 2015-05-14 Divx, Llc Singular, collective and automated creation of a media guide for online content
EP2507995A4 (en) 2009-12-04 2014-07-09 Sonic Ip Inc SYSTEMS AND METHODS FOR TRANSPORTING ELEMENTARY BIT TRAIN CRYPTOGRAPHIC MATERIAL
US9195500B1 (en) 2010-02-09 2015-11-24 F5 Networks, Inc. Methods for seamless storage importing and devices thereof
US8954688B2 (en) * 2010-10-06 2015-02-10 International Business Machines Corporation Handling storage pages in a database system
US9286298B1 (en) 2010-10-14 2016-03-15 F5 Networks, Inc. Methods for enhancing management of backup data sets and devices thereof
US9247312B2 (en) 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
CA2825891A1 (en) * 2011-01-28 2012-08-02 Nec Corporation Storage system for storing data in a plurality of storage devices
US8522068B2 (en) * 2011-05-02 2013-08-27 International Business Machines Corporation Coordinated disaster recovery production takeover operations
US8671308B2 (en) 2011-05-02 2014-03-11 International Business Machines Corporation Optimizing disaster recovery systems during takeover operations
US10069720B2 (en) * 2011-06-06 2018-09-04 Alcatel Lucent Routing by resolution
US20120317339A1 (en) * 2011-06-13 2012-12-13 International Business Machines Corporation System and method for caching data in memory and on disk
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
GB2506623A (en) * 2012-10-04 2014-04-09 Ibm Managing user files in a tiered storage system
CN102902797B (zh) * 2012-10-11 2015-05-20 福建亿同世纪软件有限公司 一种大数据量设备实时监测数据的存储及检索方法
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9967305B2 (en) * 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
CN105760380A (zh) * 2014-12-16 2016-07-13 华为技术有限公司 数据库查询方法、装置及***
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US10585802B1 (en) * 2017-07-13 2020-03-10 EMC IP Holding Company LLC Method and system for caching directories in a storage system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5893140A (en) * 1996-08-14 1999-04-06 Emc Corporation File server having a file system cache and protocol for truly safe asynchronous writes
US7047297B2 (en) * 2001-07-17 2006-05-16 Mcafee, Inc. Hierarchically organizing network data collected from full time recording machines and efficiently filtering the same
CA2457617A1 (en) * 2001-08-13 2003-02-27 Qualcomm, Incorporated Application level access privilege to a storage area on a computer device
US7373345B2 (en) * 2003-02-21 2008-05-13 Caringo, Inc. Additional hash functions in content-based addressing
GB2405495B (en) 2003-08-18 2006-09-20 Orchestria Ltd Data storage system
US7117204B2 (en) * 2003-12-03 2006-10-03 International Business Machines Corporation Transparent content addressable data storage and compression for a file system
JP4402992B2 (ja) * 2004-03-18 2010-01-20 株式会社日立製作所 バックアップシステム及び方法並びにプログラム
US7392235B2 (en) * 2005-04-15 2008-06-24 Emc Corporation Methods and apparatus for retrieval of content units in a time-based directory structure
CN1878038A (zh) * 2005-06-07 2006-12-13 洛克威尔自动控制技术股份有限公司 无线模块化监视和保护***拓扑结构

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103635900B (zh) * 2011-03-31 2017-05-24 伊姆西公司 基于时间的数据分割
US9916258B2 (en) 2011-03-31 2018-03-13 EMC IP Holding Company LLC Resource efficient scale-out file systems
CN103973744A (zh) * 2013-02-01 2014-08-06 北京英富森信息技术有限公司 一种分布式文件递进存储技术
CN107656944A (zh) * 2016-08-23 2018-02-02 平安科技(深圳)有限公司 报价单文件的存储方法及文件服务器

Also Published As

Publication number Publication date
US7805470B2 (en) 2010-09-28
US20060294164A1 (en) 2006-12-28

Similar Documents

Publication Publication Date Title
CN101137981A (zh) 用于管理文件***中的内容存储的方法和装置
CN101743546B (zh) 用于提供快照的文件***的分层存储管理
CN100583096C (zh) 管理数据删除的方法
CN1559041B (zh) 在计算机***之间共享对象
JP4648723B2 (ja) データ価値に基づく階層型ストレージ管理の為の方法と装置
US7631151B2 (en) Systems and methods for classifying and transferring information in a storage network
CN104408091B (zh) 分布式文件***的数据存储方法及***
US7822749B2 (en) Systems and methods for classifying and transferring information in a storage network
US7765191B2 (en) Methods and apparatus for managing the replication of content
US20060294163A1 (en) Methods and apparatus for accessing content stored in a file system
CN106662981A (zh) 存储设备、程序和信息处理方法
US7376681B1 (en) Methods and apparatus for accessing information in a hierarchical file system
US20160283501A1 (en) Posix-compatible file system, method of creating a file list and storage device
CN106021381A (zh) 一种云存储服务***的数据访问/存储方法及装置
US7366836B1 (en) Software system for providing storage system functionality
US20070061540A1 (en) Data storage system using segmentable virtual volumes
US20060294115A1 (en) Methods and apparatus for storing content in a file system
US20080250017A1 (en) System and method for aiding file searching and file serving by indexing historical filenames and locations
CN109634911A (zh) 一种基于hdfs光盘库的存储方法
CN109634520A (zh) 一种基于hdfs光盘库的存储***
US20060235893A1 (en) Methods and apparatus for managing the storage of content
US7979665B1 (en) Method and apparatus for processing access requests in a computer system
EP1894127B1 (en) Methods and apparatus for managing the storage of content in a file system
CN117687970B (zh) 一种元数据检索方法、装置及电子设备和存储介质
Norheim How Flash Memory Changes the DBMS World

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20080305