CN104903890B - 用于选择性地路由高速缓存的对象的系统和方法 - Google Patents

用于选择性地路由高速缓存的对象的系统和方法 Download PDF

Info

Publication number
CN104903890B
CN104903890B CN201380062426.3A CN201380062426A CN104903890B CN 104903890 B CN104903890 B CN 104903890B CN 201380062426 A CN201380062426 A CN 201380062426A CN 104903890 B CN104903890 B CN 104903890B
Authority
CN
China
Prior art keywords
memory device
file system
system object
file
intermediate partition
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
CN201380062426.3A
Other languages
English (en)
Other versions
CN104903890A (zh
Inventor
J·G·哈恩
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.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
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 SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of CN104903890A publication Critical patent/CN104903890A/zh
Application granted granted Critical
Publication of CN104903890B publication Critical patent/CN104903890B/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/172Caching, prefetching or hoarding of files
    • 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/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs

Landscapes

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

Abstract

公开了一种用于使用监控应用的监控应用和方法。监控应用被配置为管理在存储器装置层中的文件系统对象(包括复制文件系统对象),并且被配置为管理一个或多个数据结构以使对文件系统对象的管理对应用层和/或操作系统层透明。

Description

用于选择性地路由高速缓存的对象的系统和方法
相关申请的引用
本申请要求2013年3月14日提交的美国申请No.13/803,721的权益,所述美国申请No.13/803,721要求2012年12月31日提交的美国临时申请No.61/747,547的权益,两者通过引用将其全部内容结合于此。
技术领域
本申请一般地涉及在系统中管理数据。更具体地,本申请涉及在系统中选择性地路由高速缓存的对象。
背景技术
图1示出了主机系统100,其包括应用105、内核I/O管理器110、文件系统120、122和装置驱动器130、132,并示出了多个存储器组件138(示出为盘C:134和盘Y:136)。在操作中,当应用105寻求对文件“Z”的访问时,应用向内核I/O管理器110发送对于到文件“Z”的句柄的请求。作为应答,内核I/O管理器110——动作为应用和存储器装置之间的接口——解析到文件“Z”的路径以便获得句柄,并将句柄发送到应用。
图1中的箭头示出了在系统的不同部分之中的通信的逻辑路径,其中应用105向内核I/O管理器110发送请求,并且其中内核I/O管理器110通过检查根目录140来解析路径,所述根目录140包括关于去往文件“Z”的路径的信息。
如图1中所示,系统包括多个存储器装置,所述存储器装置诸如以盘C:134和盘Y:136的形式。写在操作系统层之上的应用、诸如应用105通常不知道可以被它们使用的优化的分区,并且因此将文件写入预定位置而不考虑被写入到的位置的属性。例如,许多操作系统定义特定应用的数据目录,并且应用将把它们的所有数据写入到这些目录。临时文件的使用在大多操作系统中被类似地定义,并且应用将为此目的而简单地使用由操作系统接口定义的文件名和位置。这可能导致次优地使用多分区布局。使用可以提供性能和容量改善的外部存储器导致其更复杂。
但是,内核文件系统和应用堆栈可以被修改以便手动地选择在每个情况中应该使用哪一个分区或挂载点,从而使能改善的性能。例如,应用可以通过用户配置(即,用户选择保存文件的目录)或者通过在应用中的检测并使用外部存储器的代码,来明确地寻址外部存储器。
发明内容
提供了一种对解析到文件系统对象的路径的操作系统透明的将文件系统对象从第一存储器装置路由到第二存储器装置的系统和方法。
在一方面,提供了用于对操作系统透明地选择性地路由文件系统对象的方法。所述方法包括:由处理器进行如下步骤,所述处理器被配置为在监控应用的控制之下实行选择性路由,所述监控应用可通过操作系统操作并且包括具有重定向信息的中间分区,其中所述处理器具有与第一和第二存储器装置的可操作连接以用于这样的选择性路由:确定是否将文件系统对象从所述第一存储器装置路由到所述第二存储器装置;响应于确定路由所述文件系统对象,使得所述文件系统对象被路由到所述第二存储器装置中的位置;以及用文件系统对象在所述第二存储器装置中的位置来更新用于所述文件系统对象的中间分区的重定向信息,其中,所述第一存储器装置包括所述操作系统用来解析用于贮存在所述第一存储器装置中的文件系统对象的路径的目录,其中,所述目录包括重定向到所述中间分区的信息,并且其中,使用所述中间分区的重定向信息,所述操作系统继续使用在所述第一存储器装置中的目录以解析到贮存在所述第二存储器装置中的文件系统对象的路径,使得将所述文件系统对象路由到所述第二存储器装置对所述操作系统透明。
所述第一存储器装置可以包括所述操作系统用来解析用于贮存在所述第一存储器装置中的文件系统对象的路径的与此相关联的目录,其中所述目录包括表示重定向到所述中间分区的中间分区重定向。就这一点而言,使用所述中间分区重定向,所述操作系统继续使用在所述第一存储器装置中的目录以解析到贮存在所述第二存储器装置中的文件系统对象的路径,使得将所述文件系统对象复制到所述第二存储器装置对所述操作系统透明。
所述中间分区可以基于将文件从所述第一存储器装置路由(例如,复制)到所述第二存储器装置而动态地改变,而所述操作系统用来解析用于贮存在所述第一存储器装置中的文件系统对象的路径的目录不需要改变。例如,在复制所述文件系统对象之前,所述目录可以包括重定向到中间分区的所述中间分区重定向。就这一点而言,在复制之前,操作系统访问所述目录,被重定向到所述中间分区,并且反过来再次被重定向贮存在所述第一存储器装置中的文件系统对象。
所述第一存储器装置和所述第二存储器装置可以在一个或多个方面不同,这些方面诸如位置、速度、大小、耐受力或性能。所述第二存储器装置可以是高速缓存,使得将文件系统对象复制进所述第二存储器装置中提高访问所述文件系统对象的速度。
在另一方面,提供了用于对操作系统透明地选择性地路由文件系统对象的监控装置。所述监控装置包括:一个或多个存储器,其被配置为贮存中间分区,所述中间分区包括重定向信息;以及处理器,其与所述一个或多个存储器通信。所述处理器被配置为在所述监控装置的控制之下实行选择性路由,所述监控装置可通过所述操作系统操作,其中所述处理器具有与第一和第二存储器装置的可操作连接以用于这样的选择性路由,并且被配置为:确定是否将文件系统对象从所述第一存储器装置路由到所述第二存储器装置;响应于确定路由所述文件系统对象,使得所述文件系统对象被路由到所述第二存储器装置中的位置;以及用在所述第二存储器装置中的文件系统对象的所述位置更新用于所述文件系统对象的中间分区的重定向信息,其中,所述第一存储器装置包括所述操作系统用来解析用于贮存在所述第一存储器装置中的文件系统对象的路径的目录,其中,所述目录包括重定向到所述中间分区的信息,并且其中,使用所述中间分区的重定向信息,所述操作系统继续使用在所述第一存储器装置中的目录以解析到贮存在所述第二存储器装置中的文件系统对象的路径,使得将所述文件系统对象路由到所述第二存储器装置对所述操作系统透明。
所述第一存储器装置包括所述操作系统用来解析用于贮存在所述第一存储器装置中的文件系统对象的路径的目录,其中所述目录包括表示重定向到所述中间分区的中间分区重定向。就这一点而言,使用所述中间分区重定向,所述操作系统继续使用在所述第一存储器装置中的目录以解析到贮存在所述第二存储器装置中的文件系统对象的路径,使得将所述文件系统对象路由到所述第二存储器装置对所述操作系统透明。
在浏览下述附图、详细说明以及权利要求之后,其它特征和优点将变得清晰。此外,公开了其它实施例,并且每个实施例可以被单独或者组合使用。现将参考附图描述实施例。
附图说明
参考下述附图和说明可以更好地理解所述系统。在附图中,相似的参考标号表示贯穿不同的视图的相对应的部分。
图1示出了现有系统,其中内核I/O管理器解析到文件“Z”的路径。
图2示出了在系统中的不同的层,其包括应用层、操作系统层和存储器装置层,以及可以在该系统中操作的监控应用。
图3A示出了系统,其包括应用、内核I/O管理器、根目录、中间分区、多个文件系统、多个装置驱动器、盘C:和盘Y:。
图3B示出了使用根目录和中间分区以解析到盘C:上的文件“Z”的路径的内核I/O管理器。
图3C示出了将文件“Z”复制到盘Y:,以及对中间分区的改变以反映将文件“Z”复制到盘Y:。
图3D示出了利用根目录和中间分区以解析到盘Y:上的文件“Z”的路径的内核I/O管理器。
图4是监控应用确定是否移动文件并对其作出应答、更新中间分区以反映文件的移动的流程图。
图5是监控应用确定在远程盘上的文件使用的频率并对其作出应答、将文件复制到高速缓存的流程图。
图6是内核I/O管理器利用根目录和中间分区解析文件的路径的流程图。
图7是被编程为特定计算机系统的通用计算机系统,其可以表示这里引用的任何计算装置、诸如监控应用或内核I/O管理器。
具体实施方式
图2示出了在系统中的不同的层,包括应用层200、操作系统层210、存储器装置层220、以及可以在系统中操作的监控应用230。应用层200包括一个或多个应用。如图2所示,应用层包括应用1 202到应用N 204。操作系统层210包括内核212。
一般来说,内核212被用作操作系统的一部分,提供硬件(诸如在存储器装置层220中的存储器装置)以及在应用层200中运行的应用程序之间的层。
内核212通过请求使其服务对在系统上运行的应用是可用的。请求之一涉及对在存储器装置上的数据的访问,诸如打开()(open())、关闭()(close())、读取()(read())和写入()(write())请求。响应于请求,内核212用作应用和硬件之间的接口,提供硬件提取使得应用不需要知道具体细节以寻址硬件,并提供文件系统提取使得应用可以打开文件而不需要知道文件系统的特定结构。例如,响应于该请求,内核可以解析到硬件的路径,并向应用发送路径的表示(诸如以句柄的形式)使得应用可以与在存储器装置层中的存储器装置通信。以此方法,应用在寻址硬件时不需要知道细节,而是依赖于内核来解析寻址的细节。
如图2所示,系统可以包括存储器装置层220,所述存储器装置层220一般表示在系统中的一个或多个存储器装置。存储器装置层220可以包括多个存储器装置,诸如存储器装置1 222到存储器装置M 224。例如,一个存储器装置可以是硬盘盘,并且另一个存储器装置可以是可拆卸存储器贮存装置。硬盘盘可以具有一组规则以最优化数据的高速缓存。然而,可拆卸NAND闪速存储器贮存装置可以具有不同的一组规则以基于某些读取/写入模式来最优化数据的高速缓存。因此,在具有不同属性的存储器装置中可以采用为所使用的特定类型的数据以及其耐受力、错误校正和性能要求而优化的不同的物理分区。
图2还示出了监控应用230。监控应用230可以包括两个部分:(1)被配置为管理在存储器装置层中的文件系统对象(包括文件系统对象的移动(例如,复制))的软件(其一示例是对在存储器装置层中的文件和对中间分区软件234的管理,下文讨论);以及(2)一个或多个数据结构以使得对文件系统对象的管理对应用层200和/或操作系统层210透明(其一示例是中间分区232,如下所讨论的)。监控应用230确定在哪里放置文件系统对象,以及使用一个或多个数据结构,使得在解析文件的路径的过程中的至少一个额外的重定向,如在图3A-3D中讨论的。就这一点而言,监控应用230是对目录结构的补充,其中监控应用230引用目录结构。因此,监控应用230用作与应用层200和操作系统层210分开的并且除了应用层200和操作系统层210以外的虚拟层。
虚拟层可以动态地改变以便反映文件系统对象的移动。在一实施例中,与存储器装置相关联并被用于解析到文件系统对象的路径的一个或多个目录不响应于文件系统对象的移动而改变。例如,文件系统对象可以被贮存在盘C:中,如参考图3A-3D所讨论的。可以使用与盘C:相关联的目录以便解析到贮存在盘C:中的文件系统对象的路径。如下所讨论的,目录(诸如根目录)包括对虚拟层的重定向(诸如到虚拟层中的中间分区的重定向)。在一实施例中,监控应用230写入到目录(诸如根目录)使得目录包括到虚拟层的重定向。就这一点而言,当将文件系统对象从盘C:复制到盘Y:,所使用以解析路径的与盘C:相关联的目录(诸如根目录)不改变(例如,根目录在将文件系统对象复制到盘Y:之前和之后都包括到中间分区的重定向)。虚拟层(诸如中间分区)由监控应用230动态地改变以反映将文件系统对象复制到盘Y:。如在下文中更加详细讨论的,监控应用230可以修改虚拟层(例如,中间分区)的一部分以反映将系统文件对象复制到盘Y:。在操作中,在将文件系统对象复制到盘Y:之前,操作系统层(诸如内核212)访问目录(诸如根目录)以解析到文件系统对象的路径,被重定向到虚拟层,这导致返回到盘C:的另一重定向。同样地,在将文件系统对象复制到盘Y:之后的操作中,操作系统层访问目录以解析到所述文件系统对象的路径,被重定向到虚拟层,这导致到盘Y:的重定向。以此方法,对文件系统对象的复制对操作系统层透明。例如,操作系统层不需要被特别地通知文件系统对象到盘Y:的移动。相反,由于重定向到与盘C:相关联的目录中的虚拟层,并且由于对虚拟层的动态的修改以引导到对文件系统对象的新的复制,操作系统层能够解析到在盘Y:中的文件系统对象的复制品的路径。
在替换实施例中,与存储器装置相关联并且被用于解析到所述文件系统对象的路径的一个或多个目录响应于文件系统对象的移动而改变。更具体地,目录(诸如根目录)和虚拟层(诸如中间分区)可以被修改以反映对所述文件系统对象的复制。例如,文件系统对象可以贮存在盘C中。可以使用与盘C:相关联的目录(诸如根目录)以便解析到贮存在盘C:中的文件系统对象的路径。在将文件系统对象从盘C:复制到盘Y:之前,目录不包括到中间分区的重定向。相反,目录包括到贮存在盘C:上的文件系统对象的路径的指示,诸如图1所示。在将文件系统对象从盘C:复制到盘Y:之后,用于盘C:和虚拟层(诸如中间分区)的目录(诸如根目录)两者都动态地改变以反映将所述文件系统对象到盘Y:的复制。例如,改变盘C:的目录(诸如根目录),以指示到虚拟层的重定向(诸如到中间分区的重定向)。此外,虚拟层被修改以反映到盘Y:中的文件系统对象被复制的位置的另一重定向。在操作中,在将文件系统对象复制到盘Y:之前,操作系统层(诸如内核212)访问目录(诸如根目录)以解析到所述文件系统对象的路径。同样地,在将文件系统对象复制到盘Y:之后的操作中,操作系统层仍访问与盘C:相关联的目录以解析到所述文件系统对象的路径,被重定向到所述虚拟层,这导致到盘Y:的重定向。再一次,对所述文件系统对象的复制对所述操作系统层透明。例如,操作系统层不需要被特别地通知文件系统对象到盘Y:的移动。相反,因为操作系统使用与盘C:相关联的目录(诸如根目录),并且由于对到在与盘C:相关联的目录中的虚拟层的重定向的动态修改,以及虚拟层的动态修改以引导到文件系统对象的新的复制,操作系统层能够解析到文件系统对象在盘Y:中的复制品的路径。
就这一点而言,由于在系统中的该额外的虚拟层,在监控应用230在系统中移动文件系统对象的事件中,应用层200和/或操作系统层210不需要被修改。更具体地,监控应用230可以管理在存储器装置层中的文件系统对象以确定是否、何时和/或往哪里移动文件系统对象。决定在存储器装置层220中的不同的存储器装置之中是否、何时和/或往哪里移动文件系统对象可以取决于一个或多个条件,诸如例如,在系统中的文件系统对象的使用和/或在系统中的存储器装置的特性。
在存储器装置层220中的存储器装置可以是相同的或者可以相互不同。当不同时,存储器装置可以在一个或多个方面存在不同。不同的方面的示例包括,但不限于:位置(例如,在系统中所述存储器装置对于另一计算装置是被认为是远程的还是本地的);速度;大小(例如,目录大小);耐受力;性能;特定应用的信息(诸如,数据库和应用高速缓存位置);在监控器应用和贮存控制器固件之间交换的特定控制器的信息;等。
例如,在系统中的存储器装置的速度可能变化。更具体地,第一存储器装置在响应于用于文件系统对象的读取、写入和/或擦除请求方面相比于第二存储器装置可能更慢。特别地,第一存储器装置可以包含硬盘盘,而第二存储器装置可以包含高速缓存。因此,第一存储器装置的速度比第二存储器装置慢。如在下文中更加详细讨论的,监控应用可以确定将文件系统对象移动(诸如将其复制)到系统中的另一存储器装置。移动文件系统对象的决定可以例如基于一个或多个因素,诸如在系统中的存储器装置的速度(例如,当前贮存文件系统对象的存储器装置以及将接收文件系统对象的复制品的存储器装置)以及访问文件系统对象的频率。
尽管下文讨论了存储器装置的不同速度的例子,存储器装置之间的任何不同的方面可以是监控应用在不同的存储器装置之中移动文件系统对象的基础。作为另一示例,在系统中的两个存储器装置可以都是对于在系统中的另外的计算装置来说本地的,但存储器装置的不同之处可能在于一个存储器装置具有较大的存储器容量并且比另一存储器装置慢。所提供的示例仅是为了说明的目的。考虑了确定是否、何时和/或往哪里移动文件系统对象的其它基础。
当监控应用230确定移动文件系统对象时,监控应用230更新在系统中的一个或多个数据结构。该一个或多个数据结构可以由应用层200和/或操作系统层210使用以便访问移动的数据结构(诸如当解析到文件系统对象的路径时导致至少一个额外的重定向)。如在下文中更加详细讨论的,一个或多个数据结构可以以若干方式之一布置。例如,数据结构可以包括已有的数据结构(诸如,被用于解析到文件的路径的数据结构,其一个示例是存储器装置的挂载点(mouting point))以及与监控应用230相关联的数据结构(诸如,中间分区232)。更具体地,文件系统可以修改被用于解析到文件的路径的数据结构。例如,可以修改挂载点(其一个示例是根目录)以指向中间分区。对挂载点的修改可以进行一次(诸如当安装监控应用230时),可以在启动系统时进行,和/或可以当新的存储器装置安装在系统中时进行。此外,监控应用230可以响应于在系统中移动文件系统对象而修改中间分区232。
返回参考图2,监控应用230包括中间分区232以及对存储器装置层中的文件和对中间分区软件234的管理。对存储器装置层中的文件和对中间分区软件234的管理被配置为:(1)确定是否、何时和/或往哪里移动文件系统对象;以及(2)管理中间分区。如上所讨论的,对在系统中的文件系统对象的管理可以基于一个或多个条件。文件系统对象可以包括对应用层200和/或文件系统层210可用的任何信息。文件系统对象的一个特定示例包括文件,所述文件是对应用层200和/或文件系统层210可用的自我包含的信息。
对监控应用230及其组件部分的描述仅是用于说明的目的。例如,尽管图2将对存储器装置层中的文件以及对中间分区软件234的管理示出为单个软件体,在对存储器装置层中的文件以及对中间分区软件234的管理中包括的逻辑可以在不同的模块中被划分。此外,对存储器装置层中的文件以及对中间分区软件234的管理中的逻辑可以在单个计算装置中,或者可以在系统中的不同的计算装置之中被划分。此外,监控应用230——包括中间分区232和对存储器装置层中的文件以及对中间分区软件234的管理——可以被贮存在系统中的若干地点之一。例如,监控应用230可以被贮存在与在应用层200和/或操作系统层230中的装置相同的计算装置中。更具体地,监控应用230可以被贮存在主机计算装置上。在替换实施例中,中间分区232可以被贮存在与贮存对存储器装置层中的文件以及对中间分区软件234的管理的计算装置不同的计算装置上。
作为另一示例,中间分区232可以存在作为通过诸如FUSE或者专用的内核驱动器的技术(取决于操作系统)由对在存储器装置层中的文件和中间分区软件234的管理掌管(host)的临时文件系统。可替换地,中间分区232可以是物理分区或者正调用的应用可访问的已有分区中的目录。
如上所讨论的,中间分区232包含一个或多个数据结构以使能系统中的(一个或多个)不同的层(诸如应用层200和/或操作系统层210)来访问被移动的文件系统对象而不改变系统中的(一个或多个)不同的层的逻辑或固件。更具体地,如在下文中更加详细讨论的,在应用层200中的应用和/或在操作系统层210中的内核212可以使用中间分区232(并可以进一步使用(一个或多个)存储器装置的挂载点)以解析到移动的文件系统对象的路径。以此方法,文件系统对象的移动对在应用层200中的应用和在操作系统层210中的内核212透明,使得在任何一层中的软件不需要被修改。
图3A-D示出了用于系统的具有文件的贮存的改变、以及对中间分区的改变的一系列操作。图3A示出了主机系统300,所述主机系统300包括应用105、内核I/O管理器110、根目录310、中间分区305、多个文件系统120、122以及多个装置驱动器130、132。图3A还示出了多个存储器组件138,被示出为盘C:134和盘Y:136。图3A还示出了文件“Z”被贮存在盘C:上。图3A仅是主机系统和多个存储器组件之间的划分的一个示例。在替换实施例中,多个存储器组件(诸如盘C:130)的部分或全部可以包括在主机系统中。此外,主机系统300的指定仅是为了说明的目的。更少、更多或不同的组件可以被包括在主机系统中。
操作系统可以使用一个或多个数据结构以便解析访问存储器装置上的文件的路径。数据结构的一个示例是存储器装置的挂载点,所述存储器装置的挂载点可以被用于解析访问存储器装置上的文件的路径。挂载点的特定的示例是根目录。可替换地,解析访问存储器装置上的文件的路径的数据结构可以不同于根目录。如在下文的说明1中所述的,可以使用与根目录分开的目录(例如,子目录)。
根目录取决于操作系统可以采用不同的形式。在Windows类型的操作系统中,用于每个贮存装置以及硬盘盘(HDD)的分区(例如,逻辑上独立的区)的根目录,并且它们例如被标记为,Y:用于可拆卸闪速存储器装置,C:用于HDD的第一分区,D:用于HDD的第二分区等。Unix类型的操作系统对于系统上的所有存储器装置使用单个根目录,其中在文件系统的顶部处的目录由正斜杠(/)指定。此外,Unix类型的操作系统包括根目录中的第一级(firsttier)的目录,诸如/bin,/usr,/etc,/misc。
根目录310是用于盘C:的挂载点的示例。如图3A中所示,根目录310包括重定向(redirect)312。重定向312被配置为动作以将该路径的解析重定向到系统的另一部分。例如,当内核I/O管理器110正解析到系统中的文件的路径时,重定向作用为将该解析从根目录重定向到中间分区305。重定向312的一个示例是软链接。软链接(也被称为符号链接)是特殊类型的文件或目录入口(entry),所述特殊类型的文件或目录入口包含以绝对或相对路径的形式的到另一文件或目录的引用、并且影响路径名解析。以此方法,软链接可以被用作到另一文件的指针或者间接手段(indirection)。当应用要求文件时,操作系统自动地解引用该指针,从而从应用中提取文件的位置。软链接在大多数文件系统中是可用的,这些文件系统包括下述用于安卓的ext4文件系统。此外,一个软链接可以指向另一软链接。
以此方法,根目录被修改使得:在一实施例中,被用于解析在各个盘上的文件的路径的根目录的部分被替换为完全由到系统的不同部分(诸如,到中间分区305)的重定向(诸如,软链接)构成。
图3B示出了内核I/O管理器110使用根目录310和中间分区305以解析到盘C:上的文件“Z”的路径的一个示例。图3A-D仅是例示。每个操作系统实现其用于分析符号链接的各个逻辑,并且因此可能偏离该描述。在图3B和3D中的箭头例示了在解析文件“Z”的路径时的系统的不同部分之间的通信的逻辑路径。在下文中,针对图6讨论在解析路径时内核I/O管理器110的具体通信。如图3B中所示,内核I/O管理器110接收来自应用105的对于到文件“Z”的句柄的请求。该请求例如包括:以C:\1\2\3\4\5\Z的形式的串。内核I/O管理器110读取串中的C:\l并且访问在C:盘中的根目录310以解析到文件“Z”的路径。由于根目录310已经通过重定向被修改过,内核管理器改变串的路径。例如,重定向可以指示X:\7,其指向中间分区。因此,内核I/O管理器110用X:\7替换C:\l以将串修改为X:\7\2\3\4\5\Z。使用修改过的串,内核I/O管理器110与中间分区305通信。中间分区包括回到C:盘(在该例子中C:\2)上的部分的另一重定向(例如,另一软链接),使得内核I/O管理器110最终解析到C:盘上的文件“Z”的路径。因此,即使文件“Z”被贮存在C:盘上,但是C:盘根目录也将内核I/O管理器110重定向为离开根目录,仅被重定向到C:盘的另一部分。
图3C示出了文件“Z”向盘Y:的复制、以及对中间分区305的改变以反映文件“Z”向盘Y:的复制。如上所讨论的,监控应用230可以确定将文件复制到系统的另一部分、诸如,盘Y:。响应于将文件“Z”复制到盘Y:,修改中间分区305。具体地,将中间分区305中的重定向从指向C:\2改变为指向Y:\6。如上所讨论的,文件的移动(诸如,将文件“Z”复制到盘Y:)并不一定需要改变根目录310。
图3D示出了内核I/O管理器110使用根目录310和中间分区305以解析到盘Y:上的文件“Z”的路径。在包括以C:\1\2\3\4\5\Z的形式的串的请求的示例中,内核I/O管理器110读取串中的C:\l并且访问C:盘中的根目录310以解析到文件“Z”的路径。由于根目录310通过重定向修改过,内核管理器改变串的路径到X:\7,其指向中间分区。使用修改过的串,内核I/O管理器110与中间分区305通信,所述中间分区305包括到Y:盘(在该情况中是包括复制的Y:\6)上的一部分的另一重定向,使得内核I/O管理器110最终解析到Y:盘上的文件“Z”的路径。因此,即使文件“Z”被移动到Y:盘,但是内核I/O管理器使用到包括到复制的文件“Z”的路径的中间分区305的额外的重定向,仍然可以解析该路径。
以此方法,图3A-D示出了中间分区305的使用,其中通过中间分区305,使用指向其它链接的链接、指回适合于所使用的数据的类型的持久贮存介质,来路由关键应用目录。因此,监控器应用230检查数据是如何被使用的,并且在中间分区305中重新写入链接以在这些分区之间透明地移动数据而不影响正调用的应用。
例示1:
下文是使用监控应用230用于安卓(Android)操作系统的例示。在安卓操作系统中,/data/data/目录被用于贮存应用特定的(application-specific)内容。每个应用具有其自己的子目录,所述子目录通常进一步被分为多个子目录,每一个子目录具有其自己的内容特性。用于安卓操作系统的网络浏览器应用具有下述目录结构:
root@android:/data/data/com.google.android.browser#Is-1
drwxrwx--x app_57app 57 2012-02-01 15:14app_appcache
drwxrwx--x app_57app 57 2012-02-01 15:14app_databases
drwxrwx--x app_57app 57 2012-02-01 15:14app_geolocation
drwxrwx--x app_57app 57 2012-02-01 15:15app_icons
drwxrwx--x app_57app_57 2012-02-01 15:15cache
drwxrwx--x app_57app_57 2012-02-01 15:15databases
drwxr-xr-x system system 2011-11-29 12:16lib
drwxrwx--x app_57app_57 2012-02-01 15:14shared_prefs
上述目录的一些,诸如高速缓存和数据库(cache和databases),可能受益于移动到不同的物理分区。例如,高速缓存(cache)目录可以被移动到不同的分区,而留下符号链接。目录结构现在看起来如下:
root@android:/data/data/com.google.android.browser#1s-1
drwxrwx--x app_57app_57 2012-02-01 15:14app_appcache
drwxrwx--x app_57app_57 2012-02-01 15:14app_databases
drwxrwx--x app_57app_57 2012-02-01 15:15app_geolocation
drwxrwx--x app_57app_57 2012-02-01 15:15app_icons
lrwxrwx--x app_57app_57 2012-02-01 15:21cache->/intermediate/cache
drwxrwx-x app_57app_57 2012-02-01 15:15databases
drwxr-xr-x system system 2011-11-29 12:16lib
drwxrwx—x app_57app_57 2012-02-01 15:14shared_prefs
在中间分区305中的/intermediate目录具有下述内容:
root@android:/intermediate#1s-1
lrwxrwx-x app_57app_57 2012-02-01 15:21cache->/cache/browser cache/cache
在/intermediate目录中的链接可以被重写为指向任何其它位置(在该情况中指向装置的/cache物理分区)。以此方法,/intermediate目录可以被用于指向数据被移动的位置。
例示2:
下文是使用监控应用230回放电影或者其他类型的视频的另一例示。电影通常需要巨大的贮存容量。取决于贮存配置,电影可以由小文件的群组构成,每个小文件包括一段电影,其中小文件的群组被配置为按次序执行。在操作中,正调用的应用预期播放与调用的文件相关联的电影段而调用下一小文件。该示例包括,但不限于,HTTP上的动态自适应流媒体(DASH),以及苹果(Apple)的HTTP实时流媒体(HLS)。更具体地,DASH使能通过Internet从传统的HTTP网络服务器传送的高质量的媒体内容流。DASH通过将内容分为一系列小的基于HTTP的文件分段而运作,每个分段包含短时间间隔的回放时间的内容,该内容的持续时间可能是多个小时,诸如电影或者体育赛事的直播。使得可以以多个不同的比特率获得所述内容,即,使得可以以覆盖回放时间的对齐的短时间间隔的不同的比特率获得编码的可选分段。由于内容被DASH客户端回放,因此,客户端基于当前的网络环境自动地从各可选者中选择下一分段以下载并回放。
此外,因为电影需要巨大的贮存容量,电影通常被贮存在大的贮存装置(其可以是太位字节(Terabyte)量级的贮存容量)上,所述贮存装置可以是远离回放装置、并可以与回放装置分开。因此,电影文件可以在不同的装置上播放,所述不同的装置诸如具有较小的贮存容量的膝上型计算机(或其它数字播放器)。在操作中,数字播放器可以访问可用于播放的电影文件列表。用户通过数字播放器可以选择一个电影文件播放。监控应用230可以监控贮存在大贮存装置中的所选择电影文件的播放。此外,监控应用230可以将在选择的电影中尚未播放的文件复制到更快的贮存装置(诸如,与数字播放器相关联的存储器)。监控应用230也可以将文件的复制品的位置贮存在中间分区305(例如,指向与数字播放器相关联的存储器的软链接)中。因此,当内核I/O管理器访问文件以选择电影时,内核I/O管理器将被重定向到与数字播放器相关联的存储器。
除了操作性改变以外,监控应用230可以修改呈现给用户的文件的组织。在上述讨论的电影文件示例中,一些电影可以被贮存在大并且慢的贮存装置上,并且其它电影可以贮存在更快、更小的贮存装置(诸如,本地数字播放器)上。监控应用230还可以被配置将贮存在系统中的各种装置(诸如大并且慢的贮存和本地数字播放器)上的(诸如,在目录列表中)所有电影文件向用户示出为被贮存在单个盘(诸如,与本地数字播放器相关联的盘)上。以此方法,监控应用可以向用户呈现用于所有特定类型的文件(诸如,电影文件)的单个盘的目录列表,即使各文件位于不同的盘上。
图4是监控应用230确定是否移动文件并对其作出应答、更新中间分区以反映该文件的移动的流程图400。在402处,监控应用230确定对文件的移动(诸如复制)是否被正当(wanrrented)。该确定可以基于文件的使用和/或文件所贮存在之上的盘的一个或多个特征。例如,监控应用230可以监控一个或多个文件中的哪些已经被访问以便确定是否将访问相同的一个或多个文件。响应于确定相同的一个或多个文件将被访问,监控应用230可以确定移动文件。作为另一示例,监控应用230可以预期文件(或者一系列文件)的未来使用,并且基于预期的使用而移动文件(或者该一系列文件)。预期的未来使用可以基于分析过去的使用。例如,在上述例示2中,一系列文件相互相关联并且被配置为按次序执行。在一系列文件中的文件之一被访问的事件中,监控应用230可以确定在次序中在后的文件将被访问,并且预期地复制在次序中在后的文件。
在404处,监控应用230确定哪个盘来复制文件。如图4所示,是否移动文件以及往哪里移动文件的所述确定被示出为分开的步骤。可替换地,是否移动文件以及往哪里移动文件的所述决定可以在单个步骤中作出。在406中,响应于确定将文件复制到另外的盘,监控应用使得文件被移动(例如,被复制)到确定的盘。监控应用可以使得文件以若干方式之一被复制,诸如通过指示另外的装置进行文件到确定的盘的复制,或者通过监控应用自己进行到确定的盘的复制。此外,在408处,用文件已经被复制到哪个位置的信息来更新中间分区。
图5是监控应用230确定在远程盘上的文件使用的频率并对其作出应答、将文件复制到高速缓存的流程图500。在502处,监控应用230确定来自远程盘的文件是否被频繁地使用。监控应用230可以将频繁定义为在预定时间段中预定数量的访问。响应于确定文件被频繁地使用,在504处,文件被复制到高速缓存。因此,监控应用230例如可以基于容量管理来选择将高速缓存目录从一个分区移动到另一个。由于这通过中间链接完成,因此应用不知道该改变并且不需要任何信令来使用该新的位置。以此方法,监控应用使能目录结构的灵活的并且可扩展的改变以利用可变的性能分区,并且允许实时地将正确的数据定位到正确的位置,而不修改主机应用。
图6是内核I/O管理器110利用根目录310和中间分区305来解析文件的路径的流程图600。在602处,内核I/O管理器110接收来自应用105的解析到文件的路径的请求。响应于接收来自应用105的请求,在604处,内核I/O管理器110发送请求到文件系统驱动器,所述文件系统驱动器拥有如在来自应用的请求中指示的盘的根目录。由于根目录的之前的修改,在606处,内核I/O管理器110接收来自根目录的指示到中间分区305的重定向的信息。在608处,内核I/O管理器110访问中间分区305以解析到文件的路径。例如,内核I/O管理器110可以发送请求到文件系统驱动器,所述文件系统驱动器拥有中间分区305以便访问中间分区305。如上所讨论的,中间分区305可以包括第二重定向。在610处,响应于向中间分区305的请求,内核I/O管理器110接收第二重定向。在612处,内核I/O管理器110使用第二重定向以便解析到请求的文件的路径。
图7是一种通用计算机系统700,其被编程为可以表示这里所引用的任何计算装置的特定的计算机系统,所述计算装置诸如,但不限于,监控应用或者内核I/O管理器。监控应用和/或内核I/O管理器可以被部署在网络部署中使用的通用计算机系统中。计算机系统700可以作为服务器或作为在服务器-客户端用户网络环境中的客户端用户计算机,或作为在对等式(或分布式)网络环境中的对等计算机系统。计算机系统700也可以实现为或者合并在各种装置中,所述各种装置诸如个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动装置、掌上型计算机、膝上型计算机、桌上型计算机、通信装置、无线电话、陆线电话、控制系统、照相机、扫描仪、传真机、打印机、寻呼机、个人信赖装置、网络装置、网络路由器、交换机或网桥或者能够执行明确该机器将采取的行动的指令集(顺序的或相反)的任何其它机器。在特定的实施例中,计算机系统700可以利用提供声音、视频或数据通信的电子装置实现。此外,尽管可能描述了单个计算机系统,术语“系统”也应当被用来包括独自地或共同地执行一组或多组指令以进行一个或多个计算机功能的系统或子系统的任意集合。
计算机系统700可以包括处理器702,例如,中央处理单元(CPU)、图形处理单元(GPU)或两者。处理器可以是各种系统中的组件。例如,处理器可以是标准个人计算机或工作站的一部分。处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列、服务器、网络、数字电路、模拟电路、其组合或者其它现在已知的或将来开发的用于分析和处理数据的装置的一个或多个。在这里以及下述权利要求中所讨论的处理器和存储器可以被具体化在或实现在一个或多个物理芯片或电路组合中。处理器可以执行软件程序,诸如手动产生的代码(即,编程的)。
计算机系统700可以包括可以通过总线通信的存储器704。存储器可以是主存储器、静态存储器或者动态存储器。存储器可以包括,但不限于诸如各种类型的易失性和非易失性贮存介质的计算机可读贮存介质,其中所述计算机可读贮存介质包括但不限于随机存取存储器、只读存储器、可编程只读存储器、电可编程只读存储器、电可擦除只读存储器、闪速存储器、磁带或盘、光学介质及其类似者。在一情况中,存储器包括用于处理器的高速缓存或随机存取存储器。可替换地或者另外地,存储器可以与处理器分开,诸如处理器的高速缓存存储器、存储器或者其它存储器。存储器可以是用于贮存数据的外部存储器装置或数据库。示例包括硬盘驱动器、光盘(“CD”)、数字视频光盘(“DVD”)、存储器卡、存储器条、软盘、通用串行总线("USB")存储器装置或者可操作为贮存数据的任何其它装置。存储器可操作以贮存可以由处理器执行的指令706。在附图中(诸如图3A-D和4-6)所示出的或者这里所描述的功能、动作或任务可以通过编程的处理器执行贮存在存储器中的指令进行。所述功能、动作或任务独立于特定类型的指令集、贮存介质、处理器或处理策略并且可以由软件、硬件、集成电路、固件、微代码以及类似物单独或组合操作而进行。同样地,处理策略可以包括多重处理、多任务处理、并行处理以及类似者。
计算机系统700还可以包括显示单元712,诸如液晶显示器(LCD)、有机发光二极管(OLED)、平板显示器、固态显示器、阴极射线管(CRT)、投影仪、打印机或者用于输出确定的信息的其它现在已知或将来开发的显示装置。显示器可以作为用于使用户看到处理器的功能的界面,或者特别地作为具有软件贮存在存储器中的界面。
当计算机系统700包含监控应用时,存储器704包括中间分区305。尽管在图7中示出了单个存储器,中间分区305可以被贮存在与贮存指令706的存储器分开的存储器中,所述指令706被配置为进行这里所讨论的监控应用的功能。
此外,计算机系统700可以包括被配置为允许用户与系统的任何组件交互的输入装置714。输入装置可以是数字键盘、键盘或者光标控制装置(诸如鼠标)、或操纵杆、触屏显示器、遥控或可操作以与系统交互的任何其它装置。
计算机系统700还可以包括磁盘或光学盘单元。磁盘盘单元可以包括可嵌入一个或多个指令集(例如软件)的计算机可读介质。此外,指令可以进行一个或多个这里所述的方法或逻辑。在由计算机系统700执行的期间,指令可以完全或至少部分留在存储器704中和/或处理器702中。存储器704和处理器702还可以包括如上所讨论的计算机可读介质。
本公开考虑包括指令或者响应于传播的信号接收并执行指令的计算机可读介质,使得连接到网络716的装置可以在网络之上通信声音、视频、音频、图像或任何其它数据。此外,指令可以通过通信接口718在网络之上被发送和接收。通信接口可以是处理器的一部分或者可以是单独的组件。通信接口可以在软件中创建或者可以是硬件中的物理连接。通信接口被配置为与网络、外部介质、显示器或者系统中的任何其它组件或其组合连接。与网络的连接可以是物理连接(诸如有线以太网连接)或者可以如下文所讨论的无线地建立。同样地,与系统的其它组件的额外的连接可以是物理连接或者可以无线地建立。在服务提供者服务器的情况中,服务提供者服务器可以通过通信接口与用户通信。
网络可以包括有线网络、无线网络或其组合。无线网络可以是蜂窝电话网络、802.11、802.16、802.20或WiMax网络。此外,网络可以是公用网络(诸如因特网)、私有网络(诸如内联网)或其组合,并且可以利用现在可用或将来开发的多个网络协议,包括但不限于基于TCP/IP的网络协议。
计算机可读介质可以是单个介质,或者计算机可读介质可以是单个介质或多个介质,诸如贮存一个或多个指令集的中央式的或分布式的数据库和/或相关联的高速缓存和服务器。术语“计算机可读介质”还可以包括能够贮存、编码或携带指令集的任何介质,所述指令集用于由处理器执行或者使计算机系统700进行这里所公开的任何一个或多个的方法或操作。
计算机可读介质可以包括固态存储器,诸如存储器卡或者具有一个或多个非易失性只读存储器的其它包封。计算机可读介质也可以是随机存取存储器或者其它非易失性可重新写入的存储器。此外,计算机可读介质可以包括磁光的或者光学介质,诸如磁盘或磁带或者抓捕载波信号的其它贮存装置,所述载波信号诸如在传输介质之上通信的信号。附件到电子邮件的数字文件或者其它自我包含的信息文档或文档组可以被认为是分布介质,所述分布介质是有形的贮存介质。计算机可读介质优选地是有形的贮存介质。相应地,本公开可以被认为包括在其中可以贮存数据或指令的计算机可读介质的任何一个或多个或分布介质以及其它等价物和后续介质。
可替换地或者另外地,专用的硬件实现方式,诸如专用集成电路、可编程逻辑阵列和其它硬件装置,可以被构造为实现一个或多个这里所述的方法。可以包括各种实施例的设备和系统的应用可以宽泛地包括多种电子和计算机系统。这里所述的一个或多个实施例可以利用两个或多个特定互联的硬件模块或装置实现功能,或者作为专用集成电路的一部分,所述硬件模块或装置具有可以在模块之间或者穿过模块通信的数据信号和相关的控制。相应地,本系统可以包含软件、固件和硬件实现方式。
这里所述的方法可以被由计算机系统执行的软件程序实现。此外,实现方式可以包括分布式处理、组件/对象分布式处理和并行处理。可替换地,虚拟计算机系统处理可以被构造为实现如这里所述的方法或功能的一个或多个。
尽管关于特定标准和协议描述可以被实现在特定实施例中的组件和功能,但是组件和功能不限于这样的标准和协议。例如,用于因特网和其它分组交换网络传输的标准(例如,TCP/IP、UDP/IP、HTML、HTTP、HTTPS)表示现有技术的示例。这样的标准被基本上具有相同功能的更快或更加有效的等价物周期性地替代。相应地,具有与这里所公开的那些相同或相似的功能的替代的标准和协议被认为是其等价物。
这里所述的说明意欲提供对各种实施例的结构的普遍理解。所述说明不意欲作为使用这里所述的结构或方法的设备、处理器和系统的所有元件和特征的完整描述。在回顾本公开之后,许多其它实施例对本领域技术人员来说是显而易见的。本公开可以使用或从本公开中得出其它实施例,使得可以作出结构的和逻辑的替换和改变而不脱离本公开的范围。此外,所述说明仅是代表性的并且可能没有按比例绘制。所述说明中的某些比例可能被夸大,而其它比例可能被缩小。相应地,本公开和附图将本认为是示意性的而不是限制性的。
上述公开的主题将被认为是说明性的,而不是限制性的,并且所附权利要求意欲覆盖落入本说明书的真实精神和范围中的所有这样的修改、改进和其他实施例。因此,为最大化法律所允许的程度,所述范围由下述权利要求及其等价物的最宽允许的解释确定,并且不应被前述详细的说明限定或限制。

Claims (31)

1.一种对操作系统透明地选择性地路由文件系统对象的方法,所述方法包括:
由处理器进行如下步骤,其中,所述处理器被配置为在监控应用的控制之下实行选择性路由,所述监控应用可通过操作系统操作并且包括具有重定向信息的中间分区,其中所述处理器具有与第一和第二存储器装置的可操作连接以用于这样的选择性路由:
确定是否将文件系统对象从所述第一存储器装置路由到所述第二存储器装置;
响应于确定路由所述文件系统对象,使得所述文件系统对象被路由到所述第二存储器装置中的位置;以及
用文件系统对象在所述第二存储器装置中的位置来更新用于所述文件系统对象的中间分区的重定向信息,
使得所述第一存储器装置的目录重定向到中间分区,其中所述操作系统用来解析用于贮存在所述第一存储器装置中的文件系统对象的路径的目录,
其中,在将文件系统对象从第一存储器装置路由到第二存储器装置之前,所述操作系统使用第一存储器装置中的目录来解析到贮存在所述第一存储器装置中的文件系统对象的路径;
其中,在将文件系统对象从第一存储器装置路由到第二存储器装置之后,所述操作系统使用第一存储器装置中的目录来解析到贮存在所述第二存储器装置中的文件系统对象的路径并将其重定向到中间分区;以及
其中,在被重定向到中间分区并使用所述中间分区的重定向信息之后,所述操作系统解析到贮存在所述第二存储器装置中的文件系统对象的路径,使得在将所述文件系统对象路由到所述第二存储器装置的之前和之后,操作系统使用第一存储器装置中的目录,使得所述路由对所述操作系统透明。
2.如权利要求1所述的方法,其中,使得所述文件系统对象被路由到所述第二存储器装置中的位置包含使得所述文件系统对象被复制到所述第二存储器装置中的位置。
3.如权利要求2所述的方法,其中,在使得所述文件系统对象被复制到所述第二存储器装置中的位置之前:
所述文件系统对象被贮存在所述第一存储器装置中的位置中;
所述目录包括所述重定向到所述中间分区的信息;并且
用于所述文件系统对象的所述中间分区的重定向信息包含所述文件系统对象在所述第一存储器装置中的位置;
其中,所述文件系统对象在所述第一存储器装置中的位置的中间分区的重定向信息被用于将所述操作系统重定向到贮存在所述第一存储器装置中的位置处的所述文件系统对象。
4.如权利要求1所述的方法,其中,所述第一存储器装置和所述第二存储器装置在一个或多个方面不相同。
5.如权利要求4所述的方法,其中,所述一个或多个方面包含位置、速度、大小、耐受力或性能。
6.如权利要求5所述的方法,其中,所述第二存储器装置包含高速缓存。
7.如权利要求1所述的方法,其中,所述文件系统对象包含文件。
8.如权利要求1所述的方法,其中,所述文件系统对象包含多个文件的一个或多个,所述多个文件被配置为按次序执行;
其中,确定是否路由所述文件系统对象包含确定所述多个文件之一是否已经被访问以用于执行;并且
其中,路由所述文件系统对象包含复制所述多个文件中的、在所述次序中比用于执行的所述访问的文件更靠后的一个或多个文件。
9.如权利要求8所述的方法,其中,所述多个文件包含用于电影的一系列文件;
其中,所述多个文件之一已经被数字播放器访问;
其中,所述第一存储器装置远离所述数字播放器;并且
其中,所述第二存储器装置与所述数字播放器相关联。
10.如权利要求1所述的方法,其中,所述目录包含所述第一存储器装置的挂载点。
11.如权利要求10所述的方法,其中,所述挂载点包含所述第一存储器装置的根目录。
12.如权利要求11所述的方法,其中,用于解析所述文件系统对象的路径的所述根目录包含一个或多个中间分区软链接,所述一个或多个中间分区软链接的每一个被配置为重定向到所述中间分区。
13.如权利要求12所述的方法,其中,用于解析文件系统对象的所述中间分区包含软链接。
14.根据权利要求1所述的方法,其中,使得所述第一存储器装置的目录重定向到中间分区响应于确定路由所述文件系统对象。
15.根据权利要求1所述的方法,其中,使得所述第一存储器装置的目录重定向到中间分区在确定路由所述文件系统对象之前进行。
16.一种对操作系统透明地选择性地路由文件系统对象的监控装置,所述监控装置包括:
一个或多个存储器,其被配置为贮存中间分区,所述中间分区包括重定向信息;以及
处理器,其与所述一个或多个存储器通信,所述处理器被配置为在所述监控装置的控制之下实行选择性路由,所述监控装置可通过所述操作系统操作,其中所述处理器具有与第一和第二存储器装置的可操作连接以用于这样的选择性路由,并且所述处理器被配置为:
确定是否将文件系统对象从所述第一存储器装置路由到所述第二存储器装置;
响应于确定路由所述文件系统对象,使得所述文件系统对象被路由到所述第二存储器装置中的位置;以及
用在所述第二存储器装置中的文件系统对象的所述位置更新用于所述文件系统对象的中间分区的重定向信息,
使得所述第一存储器装置的目录重定向到中间分区,
其中,所述操作系统用来解析用于贮存在所述第一存储器装置中的文件系统对象的路径的目录,
其中,在将文件系统对象从第一存储器装置路由到第二存储器装置之前,所述操作系统使用第一存储器装置中的目录来解析到贮存在所述第一存储器装置中的文件系统对象的路径;
其中,在将文件系统对象从第一存储器装置路由到第二存储器装置之后,所述操作系统使用第一存储器装置中的目录来解析到贮存在所述第二存储器装置中的文件系统对象的路径并将其重定向到中间分区;以及
其中,在被重定向到中间分区并使用所述中间分区的重定向信息之后,所述操作系统解析到贮存在所述第二存储器装置中的文件系统对象的路径,使得在将所述文件系统对象路由到所述第二存储器装置的之前和之后,操作系统使用第一存储器装置中的目录,使得所述路由对所述操作系统透明。
17.如权利要求16所述的监控装置,其中,所述处理器被配置为通过使得所述文件系统对象被复制到所述第二存储器装置中的位置而使得所述文件系统对象被路由到所述第二存储器装置中的位置。
18.如权利要求17所述的监控装置,其中,在使得所述文件系统对象被复制到所述第二存储器装置中的位置之前:
所述文件系统对象被贮存在所述第一存储器装置中的位置中;
所述目录包括所述重定向到所述中间分区的信息;并且
用于所述文件系统对象的所述中间分区的重定向信息包含所述文件系统对象在所述第一存储器装置中的位置;
其中,所述文件系统对象在所述第一存储器装置中的位置的中间分区的重定向信息被用于将所述操作系统重定向到贮存在所述第一存储器装置中的位置处的所述文件系统对象。
19.如权利要求16所述的监控装置,其中,所述第一存储器装置和所述第二存储器装置在一个或多个方面不相同。
20.如权利要求19所述的监控装置,其中,所述一个或多个方面包含位置、速度、大小、耐受力或性能。
21.如权利要求20所述的监控装置,其中,所述第二存储器装置包含高速缓存。
22.如权利要求16所述的监控装置,其中,所述文件系统对象包含文件。
23.如权利要求16所述的监控装置,其中,所述文件系统对象包含多个文件的一个或多个,所述多个文件被配置为按次序执行;
其中,所述处理器被配置为通过确定所述多个文件之一是否已经被访问以用于执行而确定是否路由所述文件系统对象;并且
其中,所述处理器被配置为通过复制所述多个文件中的在次序中比用于执行的所述访问的文件更靠后的一个或多个文件而路由所述文件系统对象。
24.如权利要求23所述的监控装置,其中,所述多个文件包含用于电影的一系列文件;
其中,所述多个文件之一已经被数字播放器访问;
其中,所述第一存储器装置远离所述数字播放器;并且
其中,所述第二存储器装置与所述数字播放器相关联。
25.如权利要求16所述的监控装置,其中,所述目录包含所述第一存储器装置的挂载点。
26.如权利要求25所述的监控装置,其中,所述挂载点包含所述第一存储器装置的根目录。
27.如权利要求26所述的监控装置,其中,用于解析所述文件系统对象的路径的所述根目录包含一个或多个中间分区软链接,所述一个或多个中间分区软链接的每一个被配置为重定向到所述中间分区。
28.如权利要求27所述的监控装置,其中,用于解析文件系统对象的路径的所述中间分区包含软链接。
29.根据权利要求16所述的监控装置,其中,所述处理器被配置为响应于确定路由所述文件系统对象而使得所述第一存储器装置的目录重定向到中间分区。
30.根据权利要求16所述的监控装置,其中,所述处理器被配置为在确定路由所述文件系统对象之前使得所述第一存储器装置的目录重定向到中间分区。
31.一种确定文件系统对象在系统中的位置的方法,所述系统包括一个或多个应用、一个或多个操作系统、第一存储器装置以及第二存储器装置,所述方法包括:
接收访问所述文件系统对象的请求,所述请求包括路径;
请求访问所述路径的挂载点;
响应于请求访问,从所述挂载点接收到中间分区的第一重定向;
使用所述第一重定向将请求发送到所述中间分区;
从所述中间分区接收第二重定向;以及
使用来自所述中间分区的第二重定向而确定用于所述文件系统对象的句柄。
CN201380062426.3A 2012-12-31 2013-12-16 用于选择性地路由高速缓存的对象的系统和方法 Active CN104903890B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261747547P 2012-12-31 2012-12-31
US61/747,547 2012-12-31
US13/803,721 US9235587B2 (en) 2012-12-31 2013-03-14 System and method for selectively routing cached objects
US13/803,721 2013-03-14
PCT/US2013/075399 WO2014105481A2 (en) 2012-12-31 2013-12-16 System and method for selectively routing cached objects

Publications (2)

Publication Number Publication Date
CN104903890A CN104903890A (zh) 2015-09-09
CN104903890B true CN104903890B (zh) 2018-02-13

Family

ID=51018361

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380062426.3A Active CN104903890B (zh) 2012-12-31 2013-12-16 用于选择性地路由高速缓存的对象的系统和方法

Country Status (4)

Country Link
US (2) US9235587B2 (zh)
EP (1) EP2939145B1 (zh)
CN (1) CN104903890B (zh)
WO (1) WO2014105481A2 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10649961B2 (en) 2012-12-31 2020-05-12 Sandisk Technologies Llc System and method for selectively routing cached objects
US10754825B2 (en) * 2013-08-28 2020-08-25 Red Hat, Inc. Path resolver for client access to distributed file systems
CN105447043B (zh) * 2014-09-01 2018-09-11 光宝科技股份有限公司 数据库及其数据访问方法
CN105373734A (zh) * 2014-09-01 2016-03-02 中兴通讯股份有限公司 应用数据的保护方法及装置
US12079171B2 (en) 2016-08-02 2024-09-03 Microsoft Technology Licensing, Llc Symbolic link based placeholders
US10592470B2 (en) * 2016-08-10 2020-03-17 Microsoft Technology Licensing, Llc Discovery of calling application for control of file hydration behavior
US11368528B2 (en) 2016-09-20 2022-06-21 Microsoft Technology Licensing, Llc Dynamic storage management in cloud storage synchronization
US10616327B2 (en) 2016-09-20 2020-04-07 Microsoft Technology Licensing, Llc Policy based hydration behavior in cloud storage synchronization
US10735375B2 (en) * 2017-06-28 2020-08-04 Sap Se Web application security with service worker
CN107480281B (zh) * 2017-08-23 2020-06-26 金钱猫科技股份有限公司 一种异构文件系统之间的统一视图的构建方法
CN113076225B (zh) * 2021-03-30 2023-03-24 山东英信计算机技术有限公司 一种外接存储介质检测方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763437A (zh) * 2010-02-10 2010-06-30 成都市华为赛门铁克科技有限公司 高速缓冲存储实现方法及装置
CN102685194A (zh) * 2010-12-20 2012-09-19 微软公司 存储设备迁移和重定向
CN102696020A (zh) * 2009-11-16 2012-09-26 赛门铁克公司 基于可配置缓存映射的选择性文件系统缓存

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7340505B2 (en) 2001-04-02 2008-03-04 Akamai Technologies, Inc. Content storage and replication in a managed internet content storage environment
US7716187B2 (en) * 2003-05-21 2010-05-11 Microsoft Corporation System and method for transparent storage reorganization
US20070073638A1 (en) 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for using soft links to managed content
US20080155214A1 (en) 2006-12-21 2008-06-26 Hidehisa Shitomi Method and apparatus for file system virtualization
JP2012174113A (ja) * 2011-02-23 2012-09-10 Hitachi Ltd ファイルストレージシステム及び記憶制御方法
US20120254555A1 (en) * 2011-03-31 2012-10-04 Hitachi, Ltd. Computer system and data management method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102696020A (zh) * 2009-11-16 2012-09-26 赛门铁克公司 基于可配置缓存映射的选择性文件系统缓存
CN101763437A (zh) * 2010-02-10 2010-06-30 成都市华为赛门铁克科技有限公司 高速缓冲存储实现方法及装置
CN102685194A (zh) * 2010-12-20 2012-09-19 微软公司 存储设备迁移和重定向

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
采用路选择技术实现的低功耗高速缓存设计;崔昌栋 等;《清华大学学报(自然科学版)》;20071231(第01期);第116-122页 *

Also Published As

Publication number Publication date
CN104903890A (zh) 2015-09-09
WO2014105481A2 (en) 2014-07-03
US20160124982A1 (en) 2016-05-05
WO2014105481A3 (en) 2014-11-20
US20140188791A1 (en) 2014-07-03
EP2939145A2 (en) 2015-11-04
EP2939145B1 (en) 2018-11-07
US9235587B2 (en) 2016-01-12

Similar Documents

Publication Publication Date Title
CN104903890B (zh) 用于选择性地路由高速缓存的对象的系统和方法
CN103312761B (zh) 用于优化可下载内容传输的系统和方法
JP7129465B2 (ja) コグニティブ階層型ストレージ管理システムを訓練する際のユーザ満足度の最適化
US10242050B2 (en) Database caching in a database system
CN101506779B (zh) 生成存储系统命令
CN110291509A (zh) 在分散存储网络的区域中顺序地存储数据
US9189494B2 (en) Object file system
CN107111636A (zh) 用于顺序传输优化存储装置的卷级冗余编码技术
US9773012B2 (en) Updating map structures in an object storage system
CN106095337A (zh) 一种基于san网络存储的云盘快速共享方法
CN103262031A (zh) 管理目录树中显示的记录
CN106874357A (zh) 一种Web应用的资源定制方法和装置
US10649961B2 (en) System and method for selectively routing cached objects
US20170199877A1 (en) Storage Performance Based on Data Placement
CN109558082B (zh) 分布式文件系统
US10831794B2 (en) Dynamic alternate keys for use in file systems utilizing a keyed index
US10169343B2 (en) Deferring the cost of virtual storage
Fisk Mastering Ceph: Infrastructure storage solutions with the latest Ceph release
Isaacson Understanding Big Data Scalability: Part 1
US12079177B2 (en) Object versioning support for a file system
US9715549B1 (en) Adaptive topic marker navigation
US12072863B1 (en) Data ingestion using data file clustering with KD-epsilon trees
Americas et al. USENIX Open Access Policy
CN108351797A (zh) 控制与中间目录相关联的重解析行为
US20190171570A1 (en) Modified consistency hashing rings for object store controlled wan cache infrastructure

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: texas

Applicant after: DELPHI INT OPERATIONS LUX SRL

Address before: texas

Applicant before: Sandisk Corp.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant