CN102696020B - 基于可配置缓存映射的选择性文件系统缓存 - Google Patents

基于可配置缓存映射的选择性文件系统缓存 Download PDF

Info

Publication number
CN102696020B
CN102696020B CN201080060162.4A CN201080060162A CN102696020B CN 102696020 B CN102696020 B CN 102696020B CN 201080060162 A CN201080060162 A CN 201080060162A CN 102696020 B CN102696020 B CN 102696020B
Authority
CN
China
Prior art keywords
cache
request
type
buffer memory
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.)
Active
Application number
CN201080060162.4A
Other languages
English (en)
Other versions
CN102696020A (zh
Inventor
E·梦泽
R·马利革
B·古玛勒善
T·瑞西
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.)
NortonLifeLock Inc
Original Assignee
Symantec 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 Symantec Corp filed Critical Symantec Corp
Publication of CN102696020A publication Critical patent/CN102696020A/zh
Application granted granted Critical
Publication of CN102696020B publication Critical patent/CN102696020B/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/303In peripheral interface, e.g. I/O adapter or channel

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)

Abstract

一种执行选择性文件系统缓存的方法。该方法包括从一个应用程序接收多个I/O请求;并且将这些I/O请求中的每一个与一个可配置缓存映射进行比较,其中该可配置缓存映射基于I/O类型和文件类型来控制选择性缓存。处理这些I/O请求中的每一个以便基于该可配置缓存映射来作出多个缓存决策.根据这些缓存决策在这些I/O请求中的每一个上执行选择性缓存。

Description

基于可配置缓存映射的选择性文件系统缓存
发明领域
本发明总体上涉及数字计算机系统。
发明背景
信息促进商业。当今的公司前所未有地依赖于联机的、频繁存取的、不断变化的数据以开展它们的业务。联机事务处理(OLTP)系统是商业运转的重要组成部分。
典型的OLTP系统包括利用数据库上产生的多次更新来处理从简单到中等复杂的事务。OLTP环境中的数据库性能在较大程度上依赖于数据库应用程序的I/O速度和存储器配置以及支持数据库应用程序的文件系统。存在大量的正在进行的开发,目的是提高I/O性能和存储器子系统性能。
Oracle磁盘管理器(ODM)是一种可以由数据库应用程序所使用的替代I/O接口。通过在每次系统呼叫时允许多个I/O请求,减少管理文件描述符上的开销并增强文件管理语义,该I/O接口提供了优于标准POSIXI/O接口的改进。
然而,ODM具有一些潜在性能问题。例如,ODM提供了直接I/O接口,从而绕过了文件系统缓存方案。这种直接I/O接口的优点是它简化了某些I/O请求(例如,通过绕过文件锁定机制和方案)。然而,由主文件系统阻止缓存在其他类型的I/O请求上具有性能缺陷。这样,传统的ODM接口会强加给数据库管理员一个不受欢迎的命题。
发明内容
本发明的实施方案可以提供绕过文件系统缓存结构的一种直接I/O能力。本发明的实施方案实现一种有条件的缓存功能,其中由应用程序产生的某些I/O请求实际上使用该文件系统结构。该选择性缓存或非缓存决策是基于配置设定和从应用程序接收的元数据,该元数据提供了应用程序将如何使用该I/O请求的指示。
在一个实施方案中,本发明包括一种基于计算机的方法,该方法用于执行选择性文件系统缓存。该方法包括从一个应用程序接收多个I/O请求并将这些I/O请求中的每一个与一个可配置缓存映射进行比较,其中该可配置缓存映射基于I/O类型和文件类型来控制选择性缓存。处理这些I/O请求中的每一个以便基于该可配置缓存映射来作出多个缓存决策。根据这些缓存决策在这些I/O请求中的每一个上执行选择性缓存。
在一个实施方案中,该I/O类型和文件类型被接收为与这些I/O请求相关联的元数据。
在一个实施方案中,该应用程序向一个应用程序缓存器中执行应用程序I/O请求的面向应用程序的缓存,该应用程序缓存器与一个文件系统缓存器相分离。
在一个实施方案中,该应用程序向该文件系统提供一个非缓存指示以便执行直接I/O,从而使该文件系统不对该直接I/O进行缓存。
在一个实施方案中,该应用程序是数据库应用程序。
在一个实施方案中,该应用程序通过ODM兼容接口模块与该文件系统相对接。
在一个实施方案中,该可配置缓存映射是通过该文件系统的命令行接口由用户定义的。
在一个实施方案中,该可配置缓存映射是通过该文件系统的GUI接口由用户定义的。
在一个实施方案中,至少一个缓存决策使得该文件系统向一个文件系统缓存器中执行预读缓存。
在一个实施方案中,该缓存决策和可配置缓存映射来执行该预读缓存。
在另一个实施方案中,本发明被实施为一种计算机可读存储介质,在该介质上存储有计算机可读指令,如果由计算机系统执行,该指令使得该计算机系统执行一种方法。该方法包括从一个数据库应用程序接收多个I/O请求并且将这些I/O请求中的每一个与一个可配置缓存映射进行比较,其中该可配置缓存映射基于I/O类型和文件类型来控制选择性缓存。该I/O类型和文件类型包括与这些I/O请求相关联的元数据。该方法进一步包括处理这些I/O请求中的每一个以便基于该可配置缓存映射来作出多个缓存决策,并且根据这些缓存决策在这些I/O请求中的每一个上执行选择性缓存。
在另一个实施方案中,本发明被实施为一种数据库计算机系统。该数据库计算机系统包括连接到一个计算机可读存储介质并执行计算机可读代码的一个处理器,该代码使得该计算机系统从一个数据库应用程序接收多个I/O请求并将这些I/O请求中的每一个与一个可配置缓存映射进行比较。该可配置缓存映射基于I/O类型和文件类型来控制选择性缓存。该I/O类型和文件类型包括与这些I/O请求相关联的元数据。该计算机系统处理这些I/O请求中的每一个以便基于该可配置缓存映射来作出多个缓存决策。该计算机系统根据该缓存决策在这些I/O请求中的每一个上执行选择性缓存。
前述内容是一个概述并因此必然包含细节的简化、概括和省略;因此本领域的熟练技术人员将会认识到此概述只是示例性的并且不用于任何形式的限制。仅由权利要求定义的本发明的其他方面、创新性特征以及优点在以下的非限定性详细描述中将变得显而易见。
附图简要说明
本发明在附图图示中通过实例而并非通过限制进行说明,在附图中相似的参考号指代相似的元素。
图1示出了根据本发明一个实施方案的一个示例性计算节点的示意图。
图2示出一个流程图,该流程图展示了当执行根据本发明一个实施方案的选择性缓存功能时的信息和数据的流向。
图3示出了根据本发明一个实施方案的接收自一个应用程序的I/O请求。
图4展示了根据本发明一个实施方案的可配置缓存映射。
图5示出了一个示意图,该示意图描绘了根据本发明一个实施方案的一个ODM兼容组件和文件系统以及文件系统核之间的关系。
图6示出了一个示意图,该示意图描绘了根据本发明一个实施方案的一个ODM兼容组件和文件系统以及文件系统核之间的用户模式关系。
图7示出了根据本发明一个实施方案的一个监视器,该监视器显示了用于配置一个可配置缓存映射的命令行接口。
图8示出了根据本发明一个实施方案的一个监视器,该监视器显示了用于配置一个可配置缓存映射的GUI(图形用户接口)。
图9示出了根据本发明一个实施方案的选择性缓存处理的多个步骤的流程图。
图10示出了根据本发明一个实施方案的一种计算机可读存储介质,该计算机可读介质存储了多个模块的基于软件的实例。
图11示出了根据一个实施方案的示例性计算机系统。
发明详述
尽管已经结合一个实施方案描述了本发明,但不希望将本发明限制于本文阐述的具体形式。相反的是,本发明意在涵盖可以合理地包含在所附权利要求定义的本发明范围内的这些替代形式、修改形式以及等效形式。
在以下的详细描述中,已经给出了很多具体细节,例如特定的方法顺序、结构、元件以及连接体。然而应当理解的是,这些以及其他具体细节不一定用于实施本发明的实施方案。在其他情况下,众所周知的结构、元件或连接体已经省略,或并未更详细地描述,目的是避免不必要地混淆本说明。
说明书中对“一个实施方案”或“一种实施方案”的引用意在表示结合该实施方案所描述的具体特征、结构或特性包含在本发明的至少一个实施方案中。说明书中不同位置上出现的短语“在一个实施方案中”不一定都指代相同的实施方案,也不是与其他实施方案相互排斥的独立或替代的实施方案。另外,所描述的各种特征可能由一些实施方案来展示,而其他实施方案未展示。类似地,所描述的各种要求可能是一些实施方案的要求,而非其他实施方案的要求。
随后给出的部分详细说明是针对在计算机存储器中的数据位上操作的程序、步骤、逻辑块、处理以及其他符号表示而给出的。这些描述和表示是数据处理领域中熟练技术人员所使用的向本领域其他熟练技术人员最有效传递他们工作的本质的方法。本文的过程、计算机执行的步骤、逻辑块、处理过程等通常被设想为是前后一致的步骤顺序或产生所需结果的指令。这些步骤是那些需要对物理量进行物理操作的步骤。通常,尽管不是必要的,但这些量采取计算机可读存储介质的电或磁信号的形式,并且能够在计算机系统中进行存储、传输、组合、比较以及在其他方面进行操作。已经证明有时将这些信号称为位、值、元素、符号、字符、术语、编号等是很方便的,主要是出于习惯用法的原因。
然而应当考虑到,这些以及相似术语的全部应该与适合的物理量相关并且只是用于这些量的一些方便标记。除非另有说明如以下讨论中明显的是,应当认识到贯穿本发明,利用术语例如“处理”或“访问”或“写入”或“存储”或“重定位”等的讨论是指计算机系统或相似电子计算装置的动作和处理,这些装置将计算机系统的寄存器和存储器以及其他计算机可读介质中表示为物理(电子)量的数据处理并转换为计算机系统存储器或寄存器或其他这类信息存储、传输或显示装置中的相似表示为物理量的其他数据。
本发明的实施方案有利地可以提供直接I/O能力,该功能绕过了文件系统缓存方案或缓存结构。本发明的实施方案实现了一种有条件的缓存功能,其中应用程序(例如,数据库应用程序)所产生的某些I/O请求实际上会使用该文件系统缓存结构。在一个实施方案中,选择性缓存或非缓存决策基于配置设定和从应用程序接收的元数据。这种元数据提供应用程序如何处理数据(包括I/O请求)的一种“提示”或指示。现在描述图1中描绘的一个示例性文件系统。
图1展示了根据本发明一个实施方案的一个示例性计算节点100的示意图。图1实施方案展示了访问一个多卷卷集(例如,卷集110)的一个计算机系统的实例。卷管理器106典型地被配置用于在包括多卷集110的卷上进行操作。该卷管理器与文件系统104相结合地进行操作以便向在节点100上执行的一个或多个应用程序102提供数据存储和数据I/O服务。在图1的实施方案中,应用程序102包括它自己的应用程序缓存数据结构119并且被配置用于支持它自己的缓存方案和技术。文件系统维护它自己的文件系统缓存器120。计算节点100通过计算机网络140(例如,LAN、WAN、互联网等)连接至其他外部计算机和其他网络。
图1还示出了选择性缓存接口105、决策引擎118、可配置缓存映射130以及文件系统缓存器120。
选择性缓存接口106用于从应用程序接收I/O请求并将这些I/O请求中的每一个与可配置缓存映射相比较,其中可配置缓存映射基于I/O类型和文件类型来控制选择性缓存。决策引擎118用于处理该I/O请求中的每一个以便基于可配置缓存映射来作出多个缓存决策。然后根据缓存决策对该I/O请求中的每一个执行选择性缓存。
图2示出一个流程图,该流程图展示了当执行根据本发明一个实施方案的选择性缓存功能时的信息和数据的流向。如图2所描绘,所示的数据流关系与应用程序102、选择性缓存接口105、决策引擎118和缓存映射130、以及文件系统104和文件系统缓存器120相关。
如以上描述,本发明的实施方案可以提供绕过文件系统缓存结构(例如,文件系统缓存器120)的直接I/O能力。本发明的实施方案实现了一种有条件的缓存能力,其中由应用程序产生的某些I/O请求实际上将使用该文件系统缓存结构。选择性缓存或非缓存决策是基于配置设定和从应用程序接收的元数据的,该元数据提供如何处理这些I/O请求的指示。这样,应用程序向文件系统提供“提示”,表示它希望如何使用从该I/O请求得到的数据。
图2展示了从应用程序102接收I/O请求的选择性缓存接口105。I/O请求包括描述每个具体I/O请求的I/O类型和文件类型的元数据。当I/O请求传送到文件系统104时,决策引擎118将I/O请求中的每一个与可配置缓存映射130进行比较。
可配置缓存映射是一种用户(例如,系统管理员等)可配置组件,它基于从应用程序102接收的I/O类型和文件类型来控制选择性缓存。I/O请求的每一个由决策引擎118进行处理,以便基于可配置缓存映射130来作出多个缓存决策。
然后文件系统104利用数据存储器111的卷来处理I/O请求。文件系统根据缓存决策对每个I/O请求来实施选择性缓存。例如,根据一个缓存或非缓存决策,包括一个具体I/O请求的数据在文件系统缓存器120内部进行缓存或不进行缓存。
在一个实施方案中,选择性缓存接口105包括一个ODM兼容接口模块。换言之,选择性缓存接口看起来就像是Oracle磁盘管理器(ODM)这样的应用程序。ODM是可以由数据库应用程序(例如,Oracle10TM等)使用的一种I/O接口。在应用程序102是数据库应用程序的那些情况下,这是特别有帮助的。
本发明的实施方案解决了传统ODM中出现的问题。如以上所描述,选择性缓存接口105可以为应用程序提供直接I/O接口,从而绕过了文件系统缓存方案。这种直接I/O接口的优点是它简化了某些请求(例如,通过绕过文件锁定机制和方案)。选择性缓存接口105还可以具有文件系统缓存功能,通过利用文件系统,该功能允许将I/O请求缓存到特定的文件,同时保留其他性能益处(例如,避免I/O锁定)中的一些。
在一个实施方案中,将选择性缓存具体配置用于避免双重缓存问题。这种问题出现在一些情况,即应用程序具有它自己的缓存方案和缓存规范,并且应用程序利用应用程序缓存器119执行它自己的缓存系统。在文件系统缓存器120中不应该重复这种I/O信息。例如,在应用程序是数据库应用程序的实施方案中,由数据库应用程序本身在应用缓存中进行缓存的读取操作不应该由文件系统缓存进行缓存。这是特别有帮助的,因为很多数据库应用程序采用像ODM和QIO这样的直接I/O接口来显式地避免这种双重缓存。另一方面,用于顺序读取操作以便填充每进程存储器的文件系统缓存对于文件系统本身之内的缓存而言是较好的候选方案,因为除应用程序102之外的其他进程可以受益于这种缓存。
在一个实施方案中,针对某些I/O类型和文件类型,预读缓存由文件系统具体执行。如上所描述,在很多处理和/或应用程序正在节点100内执行的这种情况中,文件系统缓存向这些进程中的每一个提供性能益处。在这种实施方案中,顺序预读缓存可以由文件系统利用文件系统缓存器来具体实施。
应当注意,选择性缓存功能还可以扩展到群集文件系统上的文件。当写入文件时,缓存适当地在整个群集上是无效的。
图3展示了根据本发明一个实施方案的接收自应用程序的I/O请求。如图3所描绘,I/O请求300包括I/O请求元数据301和I/O数据请求302。I/O数据请求302是由文件系统操作用来向卷110或从它读取或写入数据的模块。如上所描述,选择性缓存或非缓存决策是基于接收自应用程序的元数据的,该元数据提供应用程序如何处理I/O请求的指示。应用程序向文件系统提供“提示”,以表明它希望如何使用从I/O请求得到的数据。I/O请求包括描述每个具体I/O请求的I/O类型和文件类型的元数据301。
图4展示了根据本发明一个实施方案的可配置缓存映射400。如上描述,选择性缓存或非缓存决策是基于配置设定和接收自应用的元数据的,该元数据提供如何处理I/O请求的指示。这些配置设定由可配置缓存映射来提供。
如上所描述,可配置缓存映射是一个用户(例如,系统管理员等)可配置组件,它基于从应用程序102接收的I/O类型和文件类型来控制选择性缓存。I/O请求的每一个由决策引擎118进行处理,以便基于可配置缓存映射130来作出多个缓存决策。
该缓存映射的用户可配置之处在于对于每种文件类型和对于每种I/O类型(例如,在一个实施方案中,文件类型和I/O类型对),可以指示文件系统对I/O请求进行缓存还是不进行缓存。对于类型对,缓存将会失效,该类型对提示应用程序本身正在缓存共享的存储器(可用于所有数据库进程)中的数据。除了缓存,可以指示文件系统对特定的文件类型和I/O类型对有条件地执行预读缓存。可以指示文件系统始终进行缓存或对某些文件类型和某些I/O类型执行预读缓存。
图5示出了一个示意图,该示意图描绘了根据本发明一个实施方案的ODM兼容组件501和文件系统104以及文件系统核510之间的关系。如图5所示,选择性缓存接口被实施为ODM兼容组件501。如上所描述,在一个实施方案中,选择性缓存接口105包括一个ODM兼容接口模块。ODM兼容组件501看起来就像是Oracle磁盘管理器(ODM)这样的应用程序。ODM是一种可由数据库应用程序(例如,Oracle10TM等)使用的I/O接口。
在图5的实施方案中,ODM兼容组件501位于应用程序存储器空间之内、受保护的内核510之外。选择性缓存文件系统组件502与内核空间内的文件系统104相对接。因此,当I/O请求来自应用程序102时,在用户模式和内核模式之间存在环境切换。
图6示出了一个示意图,该示意图描绘了根据本发明一个实施方案的ODM兼容组件601和文件系统104以及文件系统核610之间的用户模式关系。如图6所示,ODM兼容组件601和选择性缓存文件系统组件602被实施为用户模式组件。在这种配置中,包括文件系统内核的代码可以保持在相对平稳的状态中。文件系统内核代码趋向于扩展性地进行调试并扩展性地进行测试。这对保持内核代码稳定性提供了较强的激励措施。
在图6的实施方案中,ODM兼容组件501位于应用程序存储器空间之内、受保护的内核510之外。选择性缓存文件系统组件502与内核空间内的文件系统104相对接,该文件系统也位于受保护的内核510之外。因此,正如图5的实施方案,当I/O请求来自应用程序102时,在用户模式和内核模式之间存在环境切换。
图7示出了根据本发明一个实施方案的监视器700,该监视器显示了用于配置一个可配置缓存映射的命令行接口。如上所描述,可配置缓存映射是一个用户(例如,系统管理员等)可配置组件,它基于从应用程序102接收的I/O类型和文件类型来控制选择性缓存。该缓存映射的用户可配置之处在于对于每种文件类型和对于每个I/O类型,可以指示文件系统如何处理I/O请求。在图7的实施方案中,这种配置通过命令行接口来实施。
图8示出了根据本发明一个实施方案的监视器800,该监视器显示了用于配置一个可配置缓存映射的GUI(图形用户接口)。可配置缓存映射的功能基本上与图7的实施方案中描述的相同。然而,图8的实施方案示出了GUI元件,用户(例如,服务器管理员)可以与该元件进行交互并利用它来配置映射。
图9示出了根据本发明一个实施方案的选择性缓存处理900的多个步骤的流程图。如图9所描绘,处理900示出了在来自应用程序的I/O请求的处理过程中选择性缓存处理的示例性操作步骤。
处理900开始于步骤901,其中选择性缓存接口从一个应用程序接收I/O请求。在步骤902,决策引擎将该I/O请求与一个配置缓存映射进行比较。如上所描述,可配置缓存映射基于I/O类型和文件类型来控制选择性缓存。在步骤903,I/O请求由决策引擎进行处理以便作出缓存决策。如上所描述,这种决策是基于可配置缓存映射的。接着,在步骤904,根据缓存决策,文件系统对I/O请求执行选择性缓存。如步骤905所指,当从应用程序接收新的I/O请求时,继续进行选择性缓存处理。
图10示出了根据本发明一个实施方案的一个计算机可读存储介质,该计算机可读介质存储了模块1001至1004的基于软件的示例。如图10所描述,模块1001至1004用于实施一个处理(例如,图9的处理900)以便选择性地缓存来自应用程序的I/O请求。
I/O请求接收模块901用于接收来自在计算机系统上执行的应用程序(例如,数据库应用程序)的I/O请求。I/O比较模块902用于将I/O请求与一个可配置缓存映射相比较。如上所描述,可配置缓存映射基于I/O类型和文件类型来控制选择性缓存。I/O缓存决策制定模块903用于处理I/O请求以作出缓存决策。如上所描述,这种决策是基于可配置缓存映射的。选择性缓存执行模块用于通过文件系统来执行选择性缓存。
应当注意,在应用程序是数据库应用程序的一个实施方案中,数据库应用程序可以吸纳直接I/O的优点,从而绕过文件系统页面缓存并进行异步I/O。这有助于提高写密集型OLTP(在线事物处理)工作量的性能。数据仓库应用程序是写密集型的,并且由于缺乏文件系统页面缓存,可能受到传统ODM的影响。然而,利用本发明的实施方案,同时提供了文件系统页面缓存和数据库应用程序异步直接I/O的优点。
在一个实施方案中,选择性缓存功能具有内建的预读能力和通写缓存能力。在一个实施方案中,为了优化选择性I/O缓存,在根据命中率在每文件的基础上选择性地关闭缓存时,对工作量进行管理并进行测量统计数据。执行此操作是为了搜集统计数据。这些统计数据使系统能够仔细地调整选择性I/O缓存算法。当工作量随时间变化时,这种处理还保持了选择性I/O缓存的最佳性能。
在被配置为与Oracle10gTM数据库应用程序一起工作的一个具体实施方案中,数据库传递I/O提示,如上所描述,该提示表明了数据库将要执行何种类型的I/O操作。现在描述几种示例性提示。
利用Oracle10gTM,每个ODMI/O请求都具有odm_ioc结构的提示。在文件创建和文件识别过程中,这些类型通过应用程序瞬时地与文件相关联。已经定义了如下的示例性文件类型。
typedefswordodm_ft;/*OracleTM,文件类型*/
#定义ODM_FT_CTL1/*控制文件*/
#定义ODM_FT_DATA2/*数据文件*/
#定义ODM_FT_OLG3/*在线日志文件*/
#定义ODM_FT_ALG4/*归档日志文件*/
#定义ODM_FT_TRC5/*跟踪文件*/
#定义ODM_FT_TSORT6/*临时排序文件*/
#定义ODM_FT_DBKUP9/*数据文件备份块*/
#定义ODM_FT_DIBKUP10/*数据文件增量备份块*/
#定义ODM_FT_ABKUP11/*归档日志备份块*/
#定义ODM_FT_DCOPY12/*数据文件拷贝*/
#定义ODM_FT_INIT13/*延续性初始化参数*/
#定义ODM_FT_DRC14/*灾难恢复配置*/
可能从文件类型中推断的提示中的一些:“FT_OLG和FT_ALG的I/O总是顺序的并且大小固定”,而“FT_TRC,FT_INIT的I/O并不重要”。
I/O提示与通过ODM接口的每个I/O请求相关联。可以利用动态缓存的I/O提示中的一些是:
#定义ODM_REDOLOG_WRITE1/*重新进行日志写操作*/
#定义ODM_REDOLOG_READ2/*重新进行日志读取以便恢复*/
#定义ODM_ARCHLOG_READ3/*归档日志读取以便恢复*/
#定义ODM_MIRROR_READ5/*错误块的重新读取*/
#定义ODM_DATA_CACHE_LOAD13/*缓存器缓存读取*/
#定义ODM_READ_DATA_HEADER14/*数据头读取*/
#定义ODM_DATA_READ_SEQ16/*对私有存储器进行数据文件读取*/
#定义ODM_REDOLOG_AREAD32/*重新进行日志读取以便归档*/
#定义ODM_DATAPUMP36/*数据泵I/O*/
应当注意的是,出于性能的原因,选择性缓存算法需要具有良好的算法以便关闭预读缓存。当数据库长时间运行时,对于选择性缓存算法而言这是获得提示并在大部分包含数据库的文件上开启预读缓存的好机会。在不具有使预读缓存无效的较好算法的情况下,由于额外的预读缓存和分页,性能会逐渐地下降。
在一个实施方案中,当系统已经达到低存储状态(例如,空余内存<总内存的20%)时关闭预读缓存。在一个实施方案中,当文件经受过多的写操作时关闭预读缓存,因为写操作导致很多缓存无效。在一个实施方案中,在缓存了多于某个百分比的数据文件之后,关闭预读缓存。
图11展示了根据一个实施方案的示例性计算机系统1100。计算机系统1100描绘了一个种基本计算系统的多个组件,该系统为上述实施方案提供某些基于硬件的和基于软件的功能的执行环境。例如,计算机系统1100可以是一个或多个软件栈以及多个软件模块在其上实例化的一种系统。可以将计算机系统1100实施为例如服务器计算机系统、工作站计算机系统、桌面计算机系统、或膝上计算机系统。相似地,计算机系统1100可以实施为一种手持装置。计算机系统1100典型地包括至少某种形式的计算机可读介质(例如,计算机可读存储介质1101)。计算机可读介质可以是很多不同类型的可利用介质,该介质可以由计算机系统1100进行存取并包括但不限于计算机存储介质。
在其最基本的配置中,计算机系统1100典型地包括处理单元1103和存储器1101。根据所使用的计算机系统1100的确切配置和类型,存储器1101可以是易失存储器1101a(例如,像DRAM等)、非易失存储器1101b(例如,像ROM、闪存等)或这两种形式的某种组合。类似地,存储器1101可以包括其他装置,例如固态装置,例如像基于磁盘的介质、光介质等。
另外,计算机系统1100可以包括其他大存储系统(例如,可移除存储器1105和/或不可移除存储器1107),例如磁或光盘或磁带。类似地,计算机系统1100可以包括输入装置1109和/或输出装置1111(例如,像显示器)。计算机系统1100可以进一步包括利用有线的或无线的介质连接至其他装置、计算机、网络、服务器等的网络连接1113。由于所有这些装置在本领域是众所周知的,无需对其进行详细讨论。
应当进一步注意的是,计算机系统1100可以具有由分布式计算机系所代替的功能的一些、大部分或全部,该分布式计算机系统具有大量的分布计算节点,这种情况是计算机系统1100的功能部分地或全部地利用一个云计算环境而执行。
应当注意的是,本文所用的术语“卷”可以指代一个或多个存储装置上的任意确切数量的存储器。除了它的尺寸以及存储装置或它所处的装置,在某些情况下,卷可以具有其他属性(例如,保护/性能特征,例如镜像、条带化、RAID等级、生成或级联等。术语卷还可以包括例如在Unix型操作系统(例如Linux)、IBM公司的AIX、Sun微系统的Solaris等中使用的逻辑卷。术语卷还可以包括例如由各种卷管理器软件定义的卷,例如VERITAS软件公司的VERITAS卷管理器.TM.。术语卷可以进一步包括例如在微软Windows.TM.和/或磁盘操作系统(DOS)操作系统中使用的分区。分区可以是一个单一磁盘驱动器上的存储器的一部分,从而将划分的存储器与磁盘驱动器上的其他存储器分隔开。分区可以是主或扩展的。术语卷可以进一步指代卷组。
为了解释的目的,已经参照具体实施方案对前述说明作出了描述。但是,这些示意性的说明并不旨在穷举或者将本发明限制在所披露的准确形式。鉴于以上传授内容,许多修改与变形都是可能的。为了最好地解释本发明的原理及其实际应用,选择并说明了这些实施方案,从而使得本领域的其他技术人员能够最好地利用本发明,以及针对预期的具体用途而作了各种适当修改的不同实施方案。

Claims (21)

1.一种用于文件系统缓存的方法,包括:
从一个应用程序接收多个I/O请求,每一个I/O请求包括元数据,该元数据确定该I/O请求的I/O类型和文件类型;
将从该应用程序接收的这些I/O请求中的每一个的元数据与一个可配置缓存映射进行比较,其中该可配置缓存映射基于包括在所接收的I/O请求的该元数据中的该I/O类型和该文件类型来控制选择性缓存,其中,该可配置缓存映射包括多个文件类型和I/O类型对以及对于多个对的每个的相对应缓存决策,并且其中该可配置缓存映射指示该多个文件类型和I/O类型对的第一个被缓存、该多个文件类型和I/O类型对的第二个不被缓存并且该多个文件类型和I/O类型对的第三个被缓存并被预读;
处理这些I/O请求中的每一个以便基于每一个I/O请求与该可配置缓存映射的比较来为这些I/O请求中的每一个作出缓存或不缓存决策;并且
根据这些缓存或不缓存决策在这些I/O请求中的每一个上执行选择性缓存,其中,当对于这些I/O请求中的第一个作出缓存决策时,这些I/O请求中的该第一个被缓存到文件系统缓存器中,当对于这些I/O请求中的第二个作出不缓存决策时,通过绕过该文件系统缓存器,这些I/O请求中的该第二个不被缓存到该文件系统缓存器中,并且其中这些I/O请求中的该第一个被缓存并且这些I/O请求中的该第二个不被缓存。
2.如权利要求1所述的方法,其中该元数据指示该应用程序如何处理与该I/O请求相对应的数据,并且其中该多个文件类型和I/O类型对的第二个对应于正被该应用程序在分别的应用程序缓存器中缓存的数据。
3.如权利要求1所述的方法,其中该应用程序向一个应用程序缓存器中执行应用程序I/O请求的面向应用程序的缓存,该应用程序缓存器与一个文件系统缓存器相分离。
4.如权利要求1所述的方法,其中该元数据向文件系统提供一个非缓存指示以便执行直接I/O,从而基于每个I/O请求与该可配置缓存映射的比较,使该文件系统不对该直接I/O进行缓存。
5.如权利要求1所述的方法,其中该应用程序是数据库应用程序。
6.如权利要求1所述的方法,其中该应用程序通过一个ODM兼容接口模块与文件系统相对接。
7.如权利要求1所述的方法,其中该可配置缓存映射是通过文件系统的命令行接口和该文件系统的GUI接口中的至少一种由用户定义的,并且其中这些I/O请求中的该第一个自动被缓存并且这些I/O请求中的该第二个自动不被缓存。
8.如权利要求1所述的方法,进一步包括:
执行工作量管理;和
测量与所述工作量管理有关的统计数据,
其中,根据所测量的统计数据执行选择性缓存,并且其中基于命中率,在每文件的基础上选择性地禁用该选择性缓存。
9.如权利要求1所述的方法,其中至少一个缓存决策使得该文件系统向一个文件系统缓存器中执行预读缓存。
10.如权利要求9所述的方法,其中根据这些缓存决策和可配置缓存映射来执行该预读缓存。
11.一种计算机系统,包括:
用于从一个应用程序接收多个I/O请求的装置,其中每一个I/O请求包括元数据,该元数据确定该I/O请求的I/O类型和文件类型;
用于将从该应用程序接收的这些I/O请求中的每一个的元数据与一个可配置缓存映射进行比较的装置,其中该可配置缓存映射基于包括在所接收的I/O请求的该元数据中的该I/O类型和该文件类型来控制选择性缓存,其中,该可配置缓存映射包括多个文件类型和I/O类型对以及对于多个对的每个的相对应缓存决策,并且其中该可配置缓存映射指示该多个文件类型和I/O类型对的第一个被缓存、该多个文件类型和I/O类型对的第二个不被缓存并且该多个文件类型和I/O类型对的第三个被缓存并被预读;
用于处理这些I/O请求中的每一个以便基于每一个I/O请求与该可配置缓存映射的比较来为这些I/O请求中的每一个作出缓存或不缓存决策的装置;并且
用于根据这些缓存或不缓存决策在这些I/O请求中的每一个上执行选择性缓存的装置,其中,当对于这些I/O请求中的第一个作出缓存决策时,这些I/O请求中的该第一个被缓存到文件系统缓存器中,当对于这些I/O请求中的第二个作出不缓存决策时,通过绕过该文件系统缓存器,这些I/O请求中的该第二个不被缓存到该文件系统缓存器中,并且其中这些I/O请求中的该第一个被缓存并且这些I/O请求中的该第二个不被缓存。
12.如权利要求11所述的计算机系统,其中该元数据指示该应用程序如何处理与该I/O请求相对应的数据,并且其中该多个文件类型和I/O类型对的第二个对应于正被该应用程序在分别的应用程序缓存器中缓存的数据。
13.如权利要求11所述的计算机系统,其中该应用程序向一个应用程序缓存器中执行应用程序I/O请求的面向应用程序的缓存,该应用程序缓存器与一个文件系统缓存器相分离。
14.如权利要求11所述的计算机系统,其中该元数据向文件系统提供一个非缓存指示以便执行直接I/O,从而基于每个I/O请求与该可配置缓存映射的比较,使该文件系统不对该直接I/O进行缓存。
15.如权利要求11所述的计算机系统,其中该应用程序是数据库应用程序。
16.如权利要求11所述的计算机系统,其中该应用程序通过一个ODM兼容接口模块与文件系统相对接。
17.如权利要求11所述的计算机系统,其中该可配置缓存映射是通过文件系统的命令行接口和该文件系统的GUI接口中的至少一种由用户定义的,并且其中这些I/O请求中的该第一个自动被缓存并且这些I/O请求中的该第二个自动不被缓存。
18.如权利要求11所述的计算机系统,进一步包括:
用于执行工作量管理的装置,和
测量与所述工作量管理相关的统计数据的装置,
其中,根据所测量的统计数据执行选择性缓存,并且其中基于命中率,在每文件的基础上选择性地禁用该选择性缓存。
19.如权利要求11所述的计算机系统,其中至少一个缓存决策使得文件系统向一个文件系统缓存器中执行预读缓存。
20.如权利要求19所述的计算机系统,其中根据这些缓存决策和可配置缓存映射来执行该预读缓存。
21.一种数据库计算机系统,包括:
一个计算机系统,该计算机系统具有连接到计算机可读存储介质并执行计算机可读代码的一个处理器,该代码使得该计算机系统:
从一个应用程序接收多个I/O请求,每一个I/O请求包括元数据,该元数据确定该I/O请求的I/O类型和文件类型;
将从该应用程序接收的这些I/O请求中的每一个的元数据与一个可配置缓存映射进行比较,其中该可配置缓存映射基于包括在所接收的I/O请求的该元数据中的该I/O类型和该文件类型来控制选择性缓存,其中,该可配置缓存映射包括多个文件类型和I/O类型对以及对于多个对的每个的相对应缓存决策,并且其中该可配置缓存映射指示该多个文件类型和I/O类型对的第一个被缓存、该多个文件类型和I/O类型对的第二个不被缓存并且该多个文件类型和I/O类型对的第三个被缓存并被预读;
处理这些I/O请求中的每一个以便基于每一个I/O请求与该可配置缓存映射的比较来为这些I/O请求中的每一个作出缓存或不缓存决策;并且
根据这些缓存或不缓存决策在这些I/O请求中的每一个上执行选择性缓存,其中,当对于这些I/O请求中的第一个作出缓存决策时,这些I/O请求中的该第一个被缓存到文件系统缓存器中,当对于这些I/O请求中的第二个作出不缓存决策时,通过绕过该文件系统缓存器,这些I/O请求中的该第二个不被缓存到该文件系统缓存器中,并且其中这些I/O请求中的该第一个被缓存并且这些I/O请求中的该第二个不被缓存。
CN201080060162.4A 2009-11-16 2010-11-09 基于可配置缓存映射的选择性文件系统缓存 Active CN102696020B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/619417 2009-11-16
US12/619,417 US8825685B2 (en) 2009-11-16 2009-11-16 Selective file system caching based upon a configurable cache map
PCT/US2010/056038 WO2011059979A1 (en) 2009-11-16 2010-11-09 Selective file system caching based upon a configurable cache map

Publications (2)

Publication Number Publication Date
CN102696020A CN102696020A (zh) 2012-09-26
CN102696020B true CN102696020B (zh) 2016-06-29

Family

ID=43587553

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080060162.4A Active CN102696020B (zh) 2009-11-16 2010-11-09 基于可配置缓存映射的选择性文件系统缓存

Country Status (5)

Country Link
US (2) US8825685B2 (zh)
EP (1) EP2502148B1 (zh)
JP (1) JP5802983B2 (zh)
CN (1) CN102696020B (zh)
WO (1) WO2011059979A1 (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458239B2 (en) * 2009-12-16 2013-06-04 International Business Machines Corporation Directory traversal in a scalable multi-node file system cache for a remote cluster file system
US9158788B2 (en) 2009-12-16 2015-10-13 International Business Machines Corporation Scalable caching of remote file data in a cluster file system
US8473582B2 (en) * 2009-12-16 2013-06-25 International Business Machines Corporation Disconnected file operations in a scalable multi-node file system cache for a remote cluster file system
US8495250B2 (en) 2009-12-16 2013-07-23 International Business Machines Corporation Asynchronous file operations in a scalable multi-node file system cache for a remote cluster file system
US20110252208A1 (en) * 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine
EP2538334B1 (en) * 2011-06-21 2019-08-21 Lantiq Beteiligungs-GmbH & Co.KG Cache streaming system
CN102521260B (zh) 2011-11-18 2014-04-02 华为技术有限公司 数据预热方法及装置
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US10073656B2 (en) 2012-01-27 2018-09-11 Sandisk Technologies Llc Systems and methods for storage virtualization
JP5870213B2 (ja) * 2012-05-16 2016-02-24 株式会社日立製作所 ストレージシステム及びストレージシステムにおけるデータ転送制御方法
US8984097B1 (en) 2012-05-23 2015-03-17 Symantec Corporation Efficient file replication which preserves the underlying extent structure
US10037279B1 (en) * 2012-06-20 2018-07-31 EMC IP Holding Company LLC Host device caching of a business process data
WO2014015409A1 (en) * 2012-07-24 2014-01-30 Institute Of Computer Science Of The Foundation For Research And Technology - Hellas (Ics-Forth) System and method for implementing ssd-based i/o caches
US9235587B2 (en) * 2012-12-31 2016-01-12 Sandisk Technologies Inc. System and method for selectively routing cached objects
US10649961B2 (en) 2012-12-31 2020-05-12 Sandisk Technologies Llc System and method for selectively routing cached objects
CN103544287B (zh) * 2013-10-28 2017-04-19 中国软件与技术服务股份有限公司 一种文件私有缓存建立方法和装置
RU2643642C2 (ru) 2013-12-11 2018-02-02 Интел Корпорейшн Использование кэш-памяти и памяти другого типа в распределённой запоминающей системе
US9483310B2 (en) 2014-04-29 2016-11-01 Bluedata Software, Inc. Associating cache memory with a work process
US9378152B2 (en) 2014-05-09 2016-06-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for I/O processing using out-of-band hinting to block driver or storage controller
US9218407B1 (en) 2014-06-25 2015-12-22 Pure Storage, Inc. Replication and intermediate read-write state for mediums
WO2016000147A1 (zh) * 2014-06-30 2016-01-07 华为技术有限公司 一种访问存储设备的方法和主机
WO2016051593A1 (ja) * 2014-10-03 2016-04-07 株式会社日立製作所 計算機システム
US9866647B2 (en) * 2015-03-26 2018-01-09 Alcatel Lucent Hierarchical cost based caching for online media
JP2016207096A (ja) 2015-04-27 2016-12-08 富士通株式会社 階層ストレージ装置、階層ストレージシステム、階層ストレージ方法、および階層ストレージプログラム
CN106940660B (zh) * 2016-01-05 2020-08-14 阿里巴巴集团控股有限公司 缓存的实现的方法和装置
US11113247B1 (en) 2016-05-10 2021-09-07 Veritas Technologies Llc Routing I/O requests to improve read/write concurrency
CN107870872B (zh) * 2016-09-23 2021-04-02 伊姆西Ip控股有限责任公司 用于管理高速缓存的方法和设备
CN106528927B (zh) * 2016-09-29 2019-07-30 京微齐力(北京)科技有限公司 输入输出i/o工艺映射方法和装置
CN108874615A (zh) * 2017-05-16 2018-11-23 惠州市德赛西威汽车电子股份有限公司 一种车载多媒体系统性能检测装置及检测方法
US10824562B2 (en) * 2018-01-09 2020-11-03 Hossein Asadi Reconfigurable caching
CN110688329B (zh) * 2019-09-06 2021-08-10 无锡江南计算技术研究所 一种可同时支持多套Cache数据私有段动态设置的方法
US20230083798A1 (en) * 2021-09-14 2023-03-16 International Business Machines Corporation Maintaining metadata from a catalog in a repository to return to requests for the metadata

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6301605B1 (en) * 1997-11-04 2001-10-09 Adaptec, Inc. File array storage architecture having file system distributed across a data processing platform
US6463509B1 (en) * 1999-01-26 2002-10-08 Motive Power, Inc. Preloading data in a cache memory according to user-specified preload criteria
CN1682193A (zh) * 2002-07-11 2005-10-12 维瑞泰斯操作公司 存储服务与系统
US7383392B2 (en) * 2005-05-31 2008-06-03 Hewlett-Packard Development Company, L.P. Performing read-ahead operation for a direct input/output request

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399503A (en) * 1978-06-30 1983-08-16 Bunker Ramo Corporation Dynamic disk buffer control unit
US4408273A (en) 1980-05-27 1983-10-04 International Business Machines Corporation Method and means for cataloging data sets using dual keyed data sets and direct pointers
JPH0664536B2 (ja) 1986-01-17 1994-08-22 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 仮想端末サブシステムの制御方法
US5097533A (en) 1988-11-29 1992-03-17 International Business Machines Corporation System and method for interfacing computer application programs written in different languages to a software system
US5544347A (en) 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5301295A (en) * 1991-05-22 1994-04-05 Analog Devices, Inc. Data processor apparatus and method with selective caching of instructions
CA2121852A1 (en) * 1993-04-29 1994-10-30 Larry T. Jost Disk meshing and flexible storage mapping with enhanced flexible caching
US5854942A (en) * 1996-09-06 1998-12-29 International Business Machines Corporation Method and system for automatic storage subsystem configuration
US6092149A (en) * 1997-05-28 2000-07-18 Western Digital Corporation Disk drive cache system using a dynamic priority sequential stream of data segments continuously adapted according to prefetched sequential random, and repeating types of accesses
US6098149A (en) 1997-06-13 2000-08-01 Emc Corporation Method and apparatus for extending commands in a cached disk array
US6012104A (en) 1997-10-24 2000-01-04 International Business Machines Corporation Method and apparatus for dynamic extension of channel programs
US6044415A (en) 1998-02-27 2000-03-28 Intel Corporation System for transferring I/O data between an I/O device and an application program's memory in accordance with a request directly over a virtual connection
JPH11345164A (ja) 1998-06-03 1999-12-14 Sony Corp 情報処理装置
US6301640B2 (en) 1998-07-02 2001-10-09 Lucent Technologies, Inc. System and method for modeling and optimizing I/O throughput of multiple disks on a bus
US6349363B2 (en) * 1998-12-08 2002-02-19 Intel Corporation Multi-section cache with different attributes for each section
US6453321B1 (en) * 1999-02-11 2002-09-17 Ibm Corporation Structured cache for persistent objects
US6421761B1 (en) * 1999-11-09 2002-07-16 International Business Machines Corporation Partitioned cache and management method for selectively caching data by type
JP3710351B2 (ja) * 2000-03-17 2005-10-26 三菱電機株式会社 データ処理装置
JP4068798B2 (ja) 2000-10-31 2008-03-26 株式会社日立製作所 記憶サブシステム及びi/oインタフェースの制御方法ならびに情報処理システム
US6687765B2 (en) * 2001-01-16 2004-02-03 International Business Machines Corporation System, method, and computer program for explicitly tunable I/O device controller
US6721814B1 (en) * 2001-05-15 2004-04-13 Emc Corporation System and method of improving host performance characteristics by intelligent shift of data caching from host to cache-enabled mass storage subsystem
US7113937B2 (en) 2001-12-18 2006-09-26 International Business Machines Corporation Systems, methods, and computer program products to improve performance of ported applications, such as a database, operating on UNIX system services for the OS/390
US6754734B2 (en) 2001-12-18 2004-06-22 International Business Machines Corporation Systems, methods, and computer program products to improve performance of ported applications, such as a database
US7159025B2 (en) * 2002-03-22 2007-01-02 Microsoft Corporation System for selectively caching content data in a server based on gathered information and type of memory in the server
US6981112B2 (en) * 2002-08-26 2005-12-27 International Business Machines Corporation Dynamic cache disable
US7010645B2 (en) * 2002-12-27 2006-03-07 International Business Machines Corporation System and method for sequentially staging received data to a write cache in advance of storing the received data
JP4252828B2 (ja) 2003-03-19 2009-04-08 株式会社日立製作所 キャッシュ制御方法、ノード装置、プログラム
US7493450B2 (en) * 2003-04-14 2009-02-17 Hewlett-Packard Development Company, L.P. Method of triggering read cache pre-fetch to increase host read throughput
US7836261B2 (en) * 2004-01-12 2010-11-16 International Business Machines Corporation Managing caching of data on a client
US20050246501A1 (en) * 2004-04-30 2005-11-03 Intel Corporation Selective caching systems and methods
US7493465B2 (en) * 2004-05-17 2009-02-17 Oracle International Corporation Method and system for extended memory with user mode input/output operations
US7831642B1 (en) * 2004-09-30 2010-11-09 Symantec Operating Corporation Page cache management for a shared file
US7228388B2 (en) * 2004-11-19 2007-06-05 International Business Machines Corporation Enabling and disabling cache bypass using predicted cache line usage
WO2006116293A2 (en) * 2005-04-25 2006-11-02 Network Appliance, Inc. System and method for restoring data on demand for instant volume restoration
US7756909B2 (en) * 2005-04-29 2010-07-13 Microsoft Corporation Configuration profiles for output cached pages
US8001538B2 (en) * 2005-12-07 2011-08-16 Microsoft Corporation Software accessible cache metadata
US7685367B2 (en) * 2006-03-08 2010-03-23 Microsoft Corporation Multi-cache cooperation for response output caching
US7640395B2 (en) * 2006-03-30 2009-12-29 Intel Corporation Maintaining write ordering in a system
US7996623B2 (en) * 2006-06-30 2011-08-09 Seagate Technology Llc Read ahead storage control
JP4767127B2 (ja) * 2006-08-10 2011-09-07 株式会社日立製作所 ファイルサーバ、計算機システム及びファイルの先読み方法。
JP2008090378A (ja) * 2006-09-29 2008-04-17 Seiko Epson Corp ハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体
US8224813B2 (en) 2006-10-20 2012-07-17 Oracle International Corporation Cost based analysis of direct I/O access
US20080184003A1 (en) 2007-01-30 2008-07-31 Kabushiki Kaisha Toshiba Data transmission control apparatus and data transmission control method
CA2685437C (en) 2007-02-08 2015-06-02 Aspenbio Pharma, Inc. Compositions and methods including expression and bioactivity of bovine follicle stimulating hormone
US7730265B1 (en) * 2007-03-06 2010-06-01 Oracle America, Inc. Starvation-avoiding unbounded transactional memory
US7856530B1 (en) * 2007-10-31 2010-12-21 Network Appliance, Inc. System and method for implementing a dynamic cache for a data storage system
US20090150511A1 (en) * 2007-11-08 2009-06-11 Rna Networks, Inc. Network with distributed shared memory
US8255627B2 (en) * 2009-10-10 2012-08-28 International Business Machines Corporation Secondary cache for write accumulation and coalescing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6301605B1 (en) * 1997-11-04 2001-10-09 Adaptec, Inc. File array storage architecture having file system distributed across a data processing platform
US6463509B1 (en) * 1999-01-26 2002-10-08 Motive Power, Inc. Preloading data in a cache memory according to user-specified preload criteria
CN1682193A (zh) * 2002-07-11 2005-10-12 维瑞泰斯操作公司 存储服务与系统
US7383392B2 (en) * 2005-05-31 2008-06-03 Hewlett-Packard Development Company, L.P. Performing read-ahead operation for a direct input/output request

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Performance Measurements of a User-Space DAFS Server with a Database Workload;Samuel A.Fineberg等;《PROCEEDINGS OT THE ACM SIGCOMM 2003 WORKSHOPS》;20030825;第185-195页 *

Also Published As

Publication number Publication date
WO2011059979A1 (en) 2011-05-19
EP2502148A1 (en) 2012-09-26
EP2502148B1 (en) 2018-07-04
US9529814B1 (en) 2016-12-27
US8825685B2 (en) 2014-09-02
CN102696020A (zh) 2012-09-26
US20110119228A1 (en) 2011-05-19
JP5802983B2 (ja) 2015-11-04
JP2013511091A (ja) 2013-03-28

Similar Documents

Publication Publication Date Title
CN102696020B (zh) 基于可配置缓存映射的选择性文件系统缓存
US10380078B1 (en) Dynamic storage tiering in a virtual environment
US11347443B2 (en) Multi-tier storage using multiple file sets
US8578096B2 (en) Policy for storing data objects in a multi-tier storage system
US8521986B2 (en) Allocating storage memory based on future file size or use estimates
US7984259B1 (en) Reducing load imbalance in a storage system
US8566550B2 (en) Application and tier configuration management in dynamic page reallocation storage system
CN102467352B (zh) 减少存储系统请求的响应延迟
US10521345B2 (en) Managing input/output operations for shingled magnetic recording in a storage system
US8560801B1 (en) Tiering aware data defragmentation
US9176881B2 (en) Computer system and storage control method
US20110283062A1 (en) Storage apparatus and data retaining method for storage apparatus
US8572338B1 (en) Systems and methods for creating space-saving snapshots
US9600354B1 (en) VTL adaptive commit
US10324794B2 (en) Method for storage management and storage device
CN103037004A (zh) 云存储系统操作的实现方法和装置
CN109918352B (zh) 存储器系统和存储数据的方法
US9152490B2 (en) Detection of user behavior using time series modeling
US20130346724A1 (en) Sequential block allocation in a memory
US9665581B1 (en) Managing file system checking
US11537597B1 (en) Method and system for streaming data from portable storage devices
CN115826882A (zh) 一种存储方法、装置、设备及存储介质
US8364905B2 (en) Storage system with middle-way logical volume
WO2016181640A1 (ja) 計算装置、方法、及び、プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant