CN102349055B - 对存储在存储器上的文件的访问时间最优化 - Google Patents

对存储在存储器上的文件的访问时间最优化 Download PDF

Info

Publication number
CN102349055B
CN102349055B CN200980158066.0A CN200980158066A CN102349055B CN 102349055 B CN102349055 B CN 102349055B CN 200980158066 A CN200980158066 A CN 200980158066A CN 102349055 B CN102349055 B CN 102349055B
Authority
CN
China
Prior art keywords
file
storer
speed
accessed
storage arrangement
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.)
Expired - Fee Related
Application number
CN200980158066.0A
Other languages
English (en)
Other versions
CN102349055A (zh
Inventor
马克·K·霍坎森
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN102349055A publication Critical patent/CN102349055A/zh
Application granted granted Critical
Publication of CN102349055B publication Critical patent/CN102349055B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Landscapes

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

Abstract

当访问多个文件的每个文件时,至少知悉每个文件已被访问的次数。每个文件存储在多个存储器的一个存储器上。至少基于每个文件已被访问的次数来周期性地在多个存储器之间移动多个文件的至少一个文件。因此,将至少一个文件从多个存储器的该文件正存储于其上的第一存储器上移动来存储到多个存储器的第二存储器上,以最优化至少一个文件的后续访问时间。多个存储器是物理独立的存储器装置。存储器装置的至少一个与存储器装置的其它一个或多个相比具有不同的存储特性。

Description

对存储在存储器上的文件的访问时间最优化
背景技术
在计算环境语境中的文件是表示一个或多个不同事物的计算机可读数据的集合。例如,一个文件可以是表示能够使用字处理计算机程序来浏览和编辑的文本的字处理文件。作为另一个示例,一个文件可以是表示能够使用电子数据表计算机程序来浏览和编辑的电子数据表的电子数据表文件。作为第三个示例,一个文件可以是表示能够被执行或运行的计算机程序的计算机程序文件。文件存储在存储器装置上,比如硬盘驱动器上。
附图说明
图1是根据本公开一个实施例的对存储在存储器装置上的文件的访问时间最优化并且对整个***性能最优化的方法的流程图。
图2A、图2B和图2C是根据本公开一个实施例的可以在实现图1方法的各部分时采用的表格的示图。
图3是根据本公开一个实施例的典型计算装置或计算***的示图。
具体实施方式
问题描述和技术方案概述
在计算环境语境中的文件具有归属位置(home location)。归属位置指定了将不确定地存储该文件的非易失性存储器装置,直到由用户手动移动到另一存储器装置或直到该文件被删除。通常,当初始创建一个文件时,就指定了它的归属位置——将不确定地存储该文件的非易失性存储器装置。此后,计算装置从该位置访问该文件。
注意,一些类型的计算装置可以将文件高速缓存在可以更容易地访问该文件的地方,比如将文件从硬盘驱动器临时复制到易失性半导体随机存取存储器,但这种移动仅仅是临时的,并且没有改变归属位置。还要注意,公知为碎片整理程序的实用计算机程序可以将特定存储器装置(比如特定硬盘驱动器)的文件在该特定存储器装置中实际存储的方式最优化。然而,碎片整理程序不将文件从一个存储器装置移动到另一个存储器装置。
本公开的发明人提供的一个创造性见解是,假设现代计算装置可自由支配各种各样不同的存储器装置,那么可以在这些不同存储器装置之间移动文件,以使得文件被存储在提供了被频繁访问文件的最优或接近最优访问时间的存储器装置上。即,初始存储给定文件的存储器装置可能不是能够改善该文件的访问时间并从而改善***整体性能的最优存储器装置。然而,本发明人已经创造性地确定应当周期性地在可用于计算装置的不同存储器装置之间移动文件,以确保最优文件访问时间。
周期性地在计算装置可自由支配的不同存储器装置之间移动文件意味着文件的归属位置发生改变。换句话说,这种移动不仅仅是简单地将文件高速缓存在较快的存储器装置上。文件访问时间是计算装置访问(比如读或写)文件所耗费的时间长度。文件访问时间很大程度上取决于存储该文件的存储器装置的存储特性。这样的存储特性包括顺序访问速度以及随机访问速度。顺序访问速度是指从存储器装置中数据被顺序存储在该装置上的地方取出数据的速度,也可以称为持续吞吐速度。比较起来,随机访问速度是指数据初始定位到存储器装置上的速度,也可以称为查找时间速度。
不同类型的存储器装置具有不同的存储特性。本地存在于计算装置中的现代硬盘驱动器例如通常具有相对较快的顺序访问速度,但是具有相对较慢的随机访问速度。比较起来,闪存驱动器(其为非易失性半导体存储器装置)与最快的现代硬盘驱动器相比通常具有相对较快的随机访问速度,但具有相对较慢的顺序访问速度。网络驱动器(其通常是可由计算装置通过网络远程访问的硬盘驱动器)相比之下通常具有最慢的顺序访问速度以及最慢的随机访问速度。就存储空间而言,本地硬盘驱动器通常比闪存驱动器具有更多存储空间,并且网络驱动器通常比本地硬盘驱动器具有更多存储空间。
因此,本公开的实施例在可用于计算装置的不同存储器装置之间周期性地移动文件,以最优化文件的访问时间并最优化***整体性能。一般地,访问最多的文件被移动来使得它们的归属位置从较慢存储器装置改变到较快存储器装置。较小的频繁访问文件可以移动到提供相对较快的随机访问速度的闪存驱动器。较大的频繁访问文件可以移动到提供相对较快的顺序访问速度的本地硬盘驱动器。不常访问的文件可以移动到本地硬盘驱动器,或者甚至移动到网络驱动器。最终结果是改善了***性能,因为访问频繁的文件被存储在更快的存储器装置中并因而从更快的存储器装置来访问。
换句话说,本发明人面对的问题是如何在不必改善给定计算装置的各个硬件部件的情况下改善***性能。改善***性能的容易方式是将计算装置的现有硬件部件替换为更快的硬件部件。可以将现有的处理器替换为更快的处理器,可以将现有的硬盘驱动器替换为更快的硬盘驱动器,等等。然而,将计算装置的现有部件替换为更快的部件是一种昂贵的尝试,并且在大规模、企业环境下常常难以证明是有效的。因而,本发明人的将文件移动到存储器装置以改善***整体性能的技术方案尤为巧妙。不需要新硬件,从而本发明人的技术方案比采用更快硬件部件替代相应部件更节省成本。
对本公开的各种实施例的描述
图1示出根据本公开一个实施例将存储在存储器装置上的文件的访问时间进行最优化并从而将计算装置的整体性能最优化的方法100。可以通过存储在计算机可读介质(比如半导体或磁数据存储介质之类的有形计算机可读介质)上的并且由计算装置(比如台式或便携式计算机)的一个或多个处理器执行的计算机程序来实现方法100。在这个示例中,处理器从计算机可读介质执行计算机程序使得该计算机程序执行该方法100。
方法100保持可用于计算装置的每个存储器装置的存储特性(102)。例如,针对每个存储器装置,这些存储特性可以包括存储器装置的顺序读速度、存储器装置的顺序写速度、存储器装置的随机访问速度、存储器装置的顺序读速度、以及存储器装置的大小。在一个实施例中,方法100质询每个存储器装置,并响应于该质询来从存储器装置接收该存储器装置的存储特性。在另一个实施例中,方法100测试每个存储器装置来自己确定存储特性。例如,方法100可以从/向存储器装置读/写非常小的文件来确定该存储器装置的读或写随机访问速度,并且可以从/向存储器装置读/写非常大的文件来确定该存储器装置的读或写顺序访问速度。
存储器装置的顺序写速度是将数据写入存储器装置的速度,也可以称为持续写吞吐速度。类似地,存储器装置的顺序读速度是从存储器装置读出数据的速度,也可以称为持续读吞吐速度。对于许多类型的存储器装置,顺序写速度通常低于顺序读速度。存储器装置的写随机访问速度是数据初始定位到存储器装置上的用于写目的的速度,并且读随机访问速度是数据初始定位到存储器装置上的用于读目的的速度。对于许多类型的存储器装置,写和读随机访问速度至少是实质相等的,并且也可以统称为查找时间速度。
当访问给定文件时,方法100至少知悉该文件已被访问的次数(104)。多个文件中的每一个存储在可用于所讨论的计算装置的多个存储器装置中的给定存储器装置上。例如,可用于计算装置的存储器装置可以包括:本地安装的硬盘驱动器,其被称为本地硬盘驱动器;本地安装的闪存驱动器,其被简称为闪存驱动器;和网络驱动器,其通常是硬盘驱动器并且计算装置可通过网络进行访问。方法100还可以在部分104中知悉当访问该文件(即读或写该文件)时该文件的其它特性。这些其它特性可以包括每个文件的大小,以及文件已被写的具体次数和文件已被读的次数。在这个方面,注意文件已被访问的次数等于文件已被写的次数加上文件已被读的次数。
在一个实施例中,方法100可以通过依靠操作***跟踪功能来执行部分104。例如,一些类型的操作***可以自动跟踪文件已被访问的次数。这样的操作***可以包括LINUX操作***的多个版本,其中LINUX是Linus Torvalds的商标。这样的操作***还可以包括MicrosoftWindows操作***,其中Microsoft和Windows是Redmond,Wash的微软公司的商标。
在另一个实施例中,方法100可以通过对已经访问了给定文件进行检测并且响应于这种检测来将该文件已被访问的次数进行增量来执行部分104。因此,可以存在对文件已被读的次数和文件已被写的次数计数的计数器。对已经访问了给定文件进行检测本身可以通过许多不同方式来执行。例如,在一个实施例中,可以将计算机可执行代码***操作***中,当使得操作***访问文件时,通过该代码本身或者通过与操作***相关地运行的计算机程序来触发该计算机可执行代码。作为另一个示例,在另一个实施例中,计算机可执行代码可以总是在后台运行,以检测文件被访问的时刻。
另外,在一个实施例中,方法100还在部分104中跟踪关于每个文件的高速缓存特性。这些高速缓存特性例如可以包括已经高速缓存了每个文件、是否每个文件当前正被高速缓存、每个文件已被高速缓存的次数、和/或每个文件已被高速缓存的时间长度。当将文件从其不确定地所处的非易失性存储器装置(即该文件的归属位置)临时复制到另一个更快的存储器装置(比如动态随机存取存储器(DRAM)之类的易失性存储器装置)时,对该文件进行了高速缓存,在进行高速缓存的同时实际是对该易失性存储器装置进行访问,以改善***性能。在某些时候,对文件的高速缓存版本的改变被写回存储在其归属位置处的文件。在给定计算装置内可用的高速缓存空间量通常小于为文件提供归属位置的存储器装置上的空间量。因此,可以周期性地从高速缓存刷新高速缓存文件以便在高速缓存内为其它文件腾出空间。
方法100至少基于每个文件已被访问的次数来在存储器装置之间周期性地移动至少一个文件,以将这些移动的文件的后续访问时间最优化,并从而最优化***整体性能(106)——即,最优化计算装置本身的整体性能。因此,例如,可以将给定文件从第一存储器装置上移动到第二存储器装置上进行存储。这意味着给定文件的归属位置从第一存储器装置变为第二存储器装置。
在各种实施例中,在存储器装置之间移动至少一个文件还基于每个存储器装置的存储特性、已被访问的每个文件的大小、每个文件已被具体读出的次数、和/或每个文件已被具体写入的次数。即,当确定应当将哪些文件从一个存储器装置移动到另一个存储器装置时,要考虑这些参数中的一个或多个。然而,总的来说,确定应当在存储器装置之间移动哪些文件,通过将从文件的当前存储器装置移动到不同存储器装置的文件的后续访问时间最优化,提供了计算装置的***整体性能的最优化。
例如,在一个实施例中,可以将访问次数最多的文件移动到一个或多个具有最快访问速度的存储器装置。因此,这些文件的顺序访问更快地发生,这改善了计算装置整体的***性能。在该实施例中,可以将被写次数最多的文件移动到具有最快(顺序和/或随机访问)写速度的存储器装置。类似地,可以将被读次数最多的文件移动到具有最快(顺序和/或随机访问)读速度的存储器装置。
作为另一个示例,在另一实施例中,可以将访问次数最多的文件移动到具有最快访问速度的一个或多个存储器装置,但也要考虑文件大小和存储器装置大小,以使得不会让一个文件占据了给定存储器装置的全部存储空间。例如,可以针对每个文件确定文件已被访问的次数与文件大小的比值。该比值较大的文件——对应于被频繁访问的较小文件和被更频繁访问的较大文件——可以被移动到具有最快访问速度但可能具有最小存储容量的存储器装置。该比值较小的文件——对应于被频繁访问的较大文件和被非常少地访问的较小文件——可以被移动到具有相对快的访问速度并且也具有大存储容量的存储器装置。
作为第三示例,在另一实施例中,访问次数最多的较小文件可以移动到具有最快随机访问速度的一个或多个存储器装置,并且访问次数最多的较大文件可以移动到具有最快顺序访问速度的一个或多个存储器装置。这是因为,文件越小,则文件的访问时间越取决于在给定存储器装置上定位文件的初始查找时间。类似地,这是因为,文件越大,则文件的访问时间越取决于从给定存储器装置读文件或将文件写入给定存储器装置的顺序持续吞吐速度。
因此,一般而言,本公开的实施例不限于应当如何在存储器装置之间移动频繁访问的文件的具体最优化方式。可以在不脱离本公开预期范围内的情况下例如修改前文提供的示例。一般地,在存储器装置之间移动被频繁访问的文件来最优化这些文件的后续访问时间,以便最优化计算装置的整体的***性能。
在一个实施例中,按照预定进度安排在定期安排的时刻处周期性地在存储器装置之间移动至少一个文件。该进度安排可以由用户提前设置,例如使得在由进度安排所指示的定期安排的时刻处无需用户直接启动就发生存储器装置之间的顺序周期性文件移动。例如,进度安排可以规定存储器装置之间的文件移动应当基于每日、每周或每月发生。然而,在另一个实施例中,用户可以手动启动存储器装置之间的文件移动。例如,用户可以手动运行控制前文所述的存储器装置之间的文件移动的计算机程序。
另外,在一个实施例中,一旦已经在存储器装置之间移动了文件,则将每个文件的已被访问次数重置为零。因此,下一次在存储器装置之间移动文件时,仅基于自之前最近一次移动文件起文件已被访问的次数来移动文件。比较起来,在第二实施例中,一旦已经在存储器装置之间移动了文件,每个文件已被访问的次数特别地并不重置为零。因此,下一次在存储器装置之间移动文件时,不是仅基于自之前最近一次移动文件起文件已被访问的次数,而是基于文件总共被访问的次数来移动文件。
在第三实施例中,一旦已经在存储器装置之间移动了文件,可以通过除以预定常数来减小每个文件已被访问的次数。于是,在该实施例中,下一次在存储器装置之间移动文件时,基于文件总共被访问的次数以及基于自之前最近一次移动文件起文件已被访问的次数两者来移动文件。然而,因为将每个文件已被访问的次数除以了一个预定常数,所以下一次在存储器装置之间移动文件时,更多地基于自之前最近一次移动文件起文件已被访问的次数来移动文件,而更少地基于文件总共被访问的次数来移动文件。
例如,第一次在存储器装置之间移动文件之前给定文件可能被访问了二十次,并且第二次在存储器装置之间移动文件之前该给定文件可能被访问了十次。在上述第一实施例中,第二次在存储器装置之间移动给定文件是基于给定文件已被访问了十次,而在上述第二实施例中,此二次移动给定文件是基于给定文件已被访问了二十次加上十次,或者说三十次。与之相比,在上述第三实施例中,第二次在存储器装置之间移动给定文件是基于给定文件已被访问了二十次除以一个常数并加上十次。
另外,在一个实施例中,基于或根据关于每个文件的高速缓存特性来在存储器装置之间移动文件。例如,频繁地高速缓存和/或高速缓存了相对长的时间段的文件可以不从它们的归属位置移动到新归属位置。如果文件被频繁地高速缓存,那么即使该文件被频繁地访问,一般也不能在将文件归属位置从较慢存储器装置移动到较快存储器装置时很大地改善***性能。这是因为,如果文件被频繁高速缓存,那么这表明不经常从该文件的非易失性存储器装置上的归属位置访问该文件,相反,将会频繁从高速缓存访问其高速缓存版本。因此,在该实施例中,对不常被高速缓存的文件最好地保留了最快存储器装置上的存储空间。
对本公开的特定实施例的描述
图2A、图2B和图2C分别示出了根据本公开特定实施例的可用于分别实现图1的方法100的部分102、104和106的表格200、210和220。图2A的表格200用于方法100的部分102中。图2B的表格210用于方法100的部分104中。图2C的表格220用于方法100的部分106中。注意,在各种实施例中,不是必须使用所有表格200、210和220。例如,在一个实施例中,仅在方法100的部分102和/或104中采用了表格200和/或表格210,而在方法100的部分106中可以不采用表格200。
在图2A中,表格200具有总称为行202的多个行202A、202B、...、202M,以及多个列204。行202对应于可用于计算装置的存储器装置。针对每一行202的存储器装置,保持了存储器装置的各种存储特性,如在列204中组织起来的那些。这些存储特性可以包括标识符(比如存储器装置的永久唯一标识符(GUID,guaranteedunique identifier))、装置名称、装置的存储容量、装置的顺序读速度、装置的顺序写速度、装置的随机访问读速度、和装置的随机访问写速度。注意,存储器装置的标识符通常不改变,因为它唯一地标识了该存储器装置,而不考虑例如存储器装置名称的变化。
在图2B中,表格210具有总称为行212的多个行212A、212B、...、212N,以及多个列214。行212对应于可用于计算装置的存储器装置上存储的文件。针对每一行212的文件,保持了文件的各种文件特性,如在列214中组织起来的那些。这些文件特性可以包括标识符(比如文件的GUID)、文件的文件名、文件的文件大小、文件的读计数、和文件的写计数。当访问一个文件时,根据是读还是写该文件来适当地对其读计数或写计数增量。如果文件名或文件的大小发生改变,还可以更新文件名和文件大小。文件的标识符通常不改变,因为它唯一地标识了该文件,而不考虑该文件所存储的存储器装置,以及不考虑文件名。
在图2C中,表格具有总称为行222的多个行222A、222B、...、222L,以及多个列224。行222对应于管理要将哪些文件移动到哪些存储器装置的条件,如在列224中组织起来的那些。例如,行222A规定如果给定文件的访问计数的总数等于在图2B的表格210中针对该文件存储的读计数数量与写计数数量之和,那么将该文件移动到具有特定标识符的存储器装置,其与图2A表格200中具有该标识符的存储器装置相对应。作为另一示例,行222B规定如果给定文件的访问计数的总数小于B(但大于或等于A),那么将该文件移动到具有特定标识符的存储器装置。在图2C的实施例中,一个文件的访问计数的总数规定了该文件移动到的存储器装置。
代表性计算装置或计算***
图3示出了根据本公开的一个实施例的计算装置300。计算装置300还可以更一般地称为计算***。计算装置300包括硬件301,以及总称为存储器装置302的存储器装置302A、302B、...、302M,和三个机构304、306、308。硬件301包括除了存储器装置302以外的硬件,比如处理器、易失性半导体存储器、网络适配器等。机构304、306和308每一个可以由硬件(比如硬件301)、软件、或硬件与软件结合来实现。
一个或多个存储器装置302每一个可以是本地安装在计算装置300中的硬盘驱动器。一个或多个其它存储器装置302每一个可以是本地安装在计算装置300中的闪存驱动器。存储器装置302还可以包括一个或多个网络存储器装置,比如不是本地安装在计算装置300中但可以由计算装置300通过网络远程访问的硬盘驱动器。一般而言,存储器装置302存储了在计算装置300内访问或由计算装置300访问的多个文件。
存储器装置302是物理独立的存储器装置。这表明存储器装置302每一个是物理独立于或不同于其它存储器装置302的单独的存储器装置。例如,在一个实施例中,每个存储器装置物理封装在其自己的外壳内,而在其它实施例中,多个存储器装置每一个可以仍然是物理独立或不同的,然而却封装在同一物理外壳内。在这一点上,两个或多个存储器装置302不包含相同存储器装置的不同部分。例如,一个存储器装置可以是封装在它自己外壳内的物理独立的硬盘驱动器。然而,不能说一个存储器装置是该物理独立的硬盘驱动器的一个部分,而另一个存储器装置是该物理独立的硬盘驱动器的另一个部分。
存储特性保持机构304执行图1的方法100的部分102,并且在一个实施例中可以使用图2A的表格200。因此,机构304保持存储器装置302的存储特性。文件访问跟踪机构306执行方法100的部分104,并且在一个实施例中可以使用图2B的表格210。因此,机构306对存储在存储器装置302上的每个文件被访问的次数进行跟踪。文件移动机构308执行方法100的部分106,并且在一个实施例中可以使用图2C的表格220。因此,机构308在存储器装置302之间移动文件,改变这些文件的归属位置,至少基于文件已被访问的次数来最优化所移动文件的后续访问时间,从而最优化计算装置300的***性能。
最后要注意,在本公开的一些实施例中,可以通过文件的相同路径和文件名来访问文件而不考虑该文件被物理存储的存储器装置。例如,与物理存储器装置相对而言的逻辑存储卷可以由诸如“c:”、“d:”等字母表示。每个逻辑存储容卷还可以分成目录或文件夹。例如,一个卷的基本目录或根目录可以具有目录“目录_1”和“目录_2”,并且第一个目录还可以具有子目录“子目录_a”和“子目录_b”。因此,一个文件可以被指示为存储在由“c:”标识的通过路径“c:directory_one\subdirectory_a”的逻辑卷的给定目录的给定子目录下。
在这一点上要注意,在本公开的一些实施例中,即使给定文件所在的物理独立的存储器装置由于例如图1的方法100的部分106的执行而发生了改变,包含该文件的逻辑卷也是不变的。例如,文件可以物理地存储在存储器装置302A上,并且可以逻辑地存储在使用路径“c:directory_one\subdirectory_a”的给定逻辑卷的给定目录下。如果在方法100执行以后,该文件被物理地移动以使其物理地存储在存储器装置302B上,在这样的实施例中,仍然说该文件逻辑存储在使用路径“c:directory_one\subdirectory_a”的给定逻辑卷的给定目录下。因此,从用户角度而言,用户仍然使用相同路径“c:directory_one\subdirectory_a”在逻辑卷“c:”处访问所讨论的该文件,尽管该文件物理存储的物理存储器装置已经发生了改变。

Claims (15)

1.一种用于对访问时间最优化的方法,包括;
当访问多个文件中的每个文件时,至少知悉每个文件已被访问的次数,其中每个文件存储在多个存储器中的一个存储器上;和
至少基于每个文件已被访问的次数来周期性地在所述多个存储器之间移动多个文件中的至少一个文件,以使得所述至少一个文件从存储在所述多个存储器中的第一存储器上移动为存储在所述多个存储器中的第二存储器上,以最优化所述至少一个文件的后续访问时间,
其中,所述多个存储器包括物理独立的多个存储器装置,所述多个存储器装置中的至少一个与所述多个存储器装置中的其它一个或多个相比具有不同的存储特性;
其中所述存储特性包括相对较快的顺序访问速度但是相对较慢的随机访问速度;相对较快的随机访问速度但相对较慢的顺序访问速度;最慢的顺序访问速度以及最慢的随机访问速度。
2.如权利要求1所述的方法,还包括保持所述多个存储器中的每个存储器的存储特性。
3.如权利要求2所述的方法,其中保持所述多个存储器中的每个存储器的存储特性包括针对每个存储器来存储如下项中的一个或多个:
存储器的顺序读速度;
存储器的顺序写速度;
存储器的随机访问读速度;
存储器的随机访问写速度;和
存储器的大小。
4.如权利要求2或3所述的方法,其中周期性地在所述多个存储器之间移动多个文件还基于每个存储器的存储特性。
5.如权利要求1、2或3所述的方法,其中至少知悉每个文件已被访问的次数还包括知悉已被访问的每个文件的大小,并且
其中周期性地在所述多个存储器之间移动多个文件还基于已被访问的每个文件的大小。
6.如权利要求1、2或3所述的方法,其中至少知悉每个文件已被访问的次数还包括依靠至少知悉每个文件已被访问的次数的操作***跟踪功能。
7.如权利要求1、2或3所述的方法,其中至少知悉每个文件已被访问的次数包括;
对多个文件中的给定文件已被访问进行检测;和
响应于对给定文件已被访问的检测,将给定文件已被访问的次数进行增量。
8.如权利要求1、2或3所述的方法,其中至少知悉每个文件已被访问的次数包括知悉每个文件已被读的次数和知悉每个文件已被写的次数,并且
其中周期性地在所述多个存储器之间移动多个文件还基于每个文件已被读的次数和每个文件已被写的次数。
9.如权利要求1、2或3所述的方法,其中至少知悉每个文件已被访问的次数还包括知悉关于每个文件的高速缓存特性,并且
其中周期性地在所述多个存储器之间移动多个文件还基于关于每个文件的高速缓存特性。
10.如权利要求9所述的方法,其中关于每个文件的高速缓存特性包括如下项中的一个或多个:
是否已经高速缓存了每个文件;
是否当前正在高速缓存每个文件;
每个文件已被高速缓存的次数;和
每个文件已被高速缓存的时间长度。
11.如权利要求1、2或3所述的方法,其中周期性地在所述多个存储器之间移动多个文件中的至少一个文件包括将多个文件中已被访问了最多次数的文件子集移动到一个或多个具有最快访问速度的存储器装置。
12.如权利要求1、2或3所述的方法,其中周期性地在所述多个存储器之间移动多个文件中的至少一个文件包括将多个文件中已被访问了最多次数的文件子集移动到一个或多个具有最快访问速度的存储器装置,并且考虑所述已被访问了最多次数的文件子集的大小和所述具有最快访问速度的存储器装置的大小,以使得没有一个文件占据所述多个存储器的给定存储器上的全部存储空间。
13.如权利要求1、2或3所述的方法,其中周期性地在所述多个存储器之间移动多个文件的至少一个文件包括如下项中的一个或多个;
按照预定进度安排在定期安排的时刻处周期性地在所述多个存储器之间移动多个文件中的至少一个文件;和
响应于用户手动启动来周期性地在所述多个存储器之间移动多个文件中的至少一个文件。
14.一种用于对访问时间最优化的设备,包括:
用于当访问多个文件中的每个文件时至少知悉每个文件已被访问的次数的装置,其中每个文件存储在多个存储器中的一个存储器上;和
用于至少基于每个文件已被访问的次数来周期性地在所述多个存储器之间移动多个文件中的至少一个文件,以使得所述至少一个文件从存储在所述多个存储器中的第一存储器上移动为存储在所述多个存储器中的第二存储器上,以最优化所述至少一个文件的后续访问时间的装置,
其中,所述多个存储器包括物理独立的多个存储器装置,所述多个存储器装置中的至少一个与所述多个存储器装置中的其它一个或多个相比具有不同的存储特性;
其中所述存储特性包括相对较快的顺序访问速度但是相对较慢的随机访问速度;相对较快的随机访问速度但相对较慢的顺序访问速度;最慢的顺序访问速度以及最慢的随机访问速度。
15.一种计算***,包括;
多个存储器,包括了物理独立的多个存储器装置,所述多个存储器装置中的至少一个与所述多个存储器装置中的其它一个或多个相比具有不同的存储特性,所述多个存储器存储了多个被访问的文件;和
移动机构,至少基于每个文件已被访问的次数来周期性地在所述多个存储器之间移动多个文件中的至少一个文件,以使得所述至少一个文件从存储在所述多个存储器中的第一存储器上移动为存储在所述多个存储器中的第二存储器上,以最优化所述至少一个文件的后续访问时间;
其中所述存储特性包括相对较快的顺序访问速度但是相对较慢的随机访问速度;相对较快的随机访问速度但相对较慢的顺序访问速度;最慢的顺序访问速度以及最慢的随机访问速度。
CN200980158066.0A 2009-03-10 2009-03-10 对存储在存储器上的文件的访问时间最优化 Expired - Fee Related CN102349055B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2009/036675 WO2010104505A1 (en) 2009-03-10 2009-03-10 Optimizing access time of files stored on storages

Publications (2)

Publication Number Publication Date
CN102349055A CN102349055A (zh) 2012-02-08
CN102349055B true CN102349055B (zh) 2015-08-12

Family

ID=42728601

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980158066.0A Expired - Fee Related CN102349055B (zh) 2009-03-10 2009-03-10 对存储在存储器上的文件的访问时间最优化

Country Status (6)

Country Link
US (1) US8533183B2 (zh)
CN (1) CN102349055B (zh)
DE (1) DE112009004503T5 (zh)
GB (1) GB2480985B (zh)
TW (1) TWI483176B (zh)
WO (1) WO2010104505A1 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110019240A1 (en) * 2009-07-21 2011-01-27 Harris Technology, Llc Digital control and processing of transferred Information
US9785641B2 (en) * 2011-04-01 2017-10-10 International Business Machines Corporation Reducing a backup time of a backup of data files
DE102011111045B4 (de) * 2011-08-19 2014-02-20 Fujitsu Technology Solutions Intellectual Property Gmbh Arbeitsverfahren für ein Speichersystem, Speichersystem und Computerprogrammprodukt
US8972680B2 (en) 2012-01-23 2015-03-03 International Business Machines Corporation Data staging area
CN103581051B (zh) * 2012-08-02 2018-04-20 深圳市腾讯计算机***有限公司 一种文件缓存方法、装置和***
US9355036B2 (en) * 2012-09-18 2016-05-31 Netapp, Inc. System and method for operating a system to cache a networked file system utilizing tiered storage and customizable eviction policies based on priority and tiers
US8990524B2 (en) * 2012-09-27 2015-03-24 Hewlett-Packard Development Company, Lp. Management of data elements of subgroups
US9984083B1 (en) 2013-02-25 2018-05-29 EMC IP Holding Company LLC Pluggable storage system for parallel query engines across non-native file systems
US9805092B1 (en) 2013-02-25 2017-10-31 EMC IP Holding Company LLC Parallel processing database system
US9311331B2 (en) 2013-08-27 2016-04-12 Netapp, Inc. Detecting out-of-band (OOB) changes when replicating a source file system using an in-line system
US20160041996A1 (en) 2014-08-11 2016-02-11 Netapp, Inc. System and method for developing and implementing a migration plan for migrating a file system
US10860529B2 (en) 2014-08-11 2020-12-08 Netapp Inc. System and method for planning and configuring a file system migration
US9304997B2 (en) 2013-08-27 2016-04-05 Netapp, Inc. Asynchronously migrating a file system
US9311314B2 (en) 2013-08-27 2016-04-12 Netapp, Inc. System and method for migrating data from a source file system to a destination file system with use of attribute manipulation
US9300692B2 (en) 2013-08-27 2016-03-29 Netapp, Inc. System and method for implementing data migration while preserving security policies of a source filer
US9152346B2 (en) * 2013-10-17 2015-10-06 International Business Machines Corporation Storage and retrieval of high importance pages in an active memory sharing environment
TWI507975B (zh) * 2014-02-27 2015-11-11 Nat Univ Chung Cheng Storage device with multiple threshold and its method
US10133488B2 (en) * 2014-03-17 2018-11-20 Primaryio, Inc. Apparatus and method for cache provisioning, configuration for optimal application performance
US10146437B2 (en) 2014-03-17 2018-12-04 Primaryio, Inc. Tier aware caching solution to increase application performance
CN105700819B (zh) * 2014-11-28 2019-04-12 国际商业机器公司 用于网络数据存储的方法和***
CN105242977B (zh) * 2015-10-20 2018-03-09 广东欧珀移动通信有限公司 一种智能终端的存储访问性能的测试方法及装置
US10452273B2 (en) 2016-09-24 2019-10-22 International Business Machines Corporation Preemptive event-based data migration
CN107426271A (zh) * 2017-03-21 2017-12-01 咪咕文化科技有限公司 一种服务器中数据处理方法及***
CN109002543A (zh) * 2018-07-24 2018-12-14 北京京东尚科信息技术有限公司 一种文件存储的方法和装置
US11972361B2 (en) * 2020-01-29 2024-04-30 Samsung Electronics Co., Ltd. Performance optimization of object grouping schema in a network key-value storage device using adaptive regression
US11500555B2 (en) * 2020-09-04 2022-11-15 Micron Technology, Inc. Volatile memory to non-volatile memory interface for power management
CN117215972A (zh) * 2023-11-09 2023-12-12 ***政治工作部军事人力资源保障中心 一种基于云原生基础架构的缓存分层方法及***

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148294A (en) * 1996-12-20 2000-11-14 Siemens Information And Communication Networks, Inc. System and method for computer directory updating and presentation based on frequency of access

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032224A (en) * 1996-12-03 2000-02-29 Emc Corporation Hierarchical performance system for managing a plurality of storage units with different access speeds
DE19961499A1 (de) * 1999-12-20 2001-07-05 Ericsson Telefon Ab L M Caching von Objekten in Platten-gestützten Datenbanken
JP4144727B2 (ja) * 2001-07-02 2008-09-03 株式会社日立製作所 情報処理システム、記憶領域提供方法、およびデータ保持管理装置
US7130229B2 (en) * 2002-11-08 2006-10-31 Intel Corporation Interleaved mirrored memory systems
US20050120265A1 (en) * 2003-12-02 2005-06-02 Pline Steven L. Data storage system with error correction code and replaceable defective memory
US20060136668A1 (en) 2004-12-17 2006-06-22 Rudelic John C Allocating code objects between faster and slower memories
US8131689B2 (en) * 2005-09-30 2012-03-06 Panagiotis Tsirigotis Accumulating access frequency and file attributes for supporting policy based storage management
US20090132621A1 (en) * 2006-07-28 2009-05-21 Craig Jensen Selecting storage location for file storage based on storage longevity and speed
US7870128B2 (en) * 2006-07-28 2011-01-11 Diskeeper Corporation Assigning data for storage based on speed with which data may be retrieved
JP4859595B2 (ja) * 2006-09-01 2012-01-25 株式会社日立製作所 記憶システム、そのデータ再配置方法、データ再配置プログラム
US7899987B2 (en) * 2007-05-15 2011-03-01 Sandisk Il Ltd. File storage in a computer system with diverse storage media
KR101553532B1 (ko) * 2008-04-17 2015-09-16 삼성전자주식회사 스토리지 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148294A (en) * 1996-12-20 2000-11-14 Siemens Information And Communication Networks, Inc. System and method for computer directory updating and presentation based on frequency of access

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ludmila Cherkasova,Gianfranco Ciardo.Role of Aging, Frequency, and Size.《HPCN Europe 2001》.2001,1-10. *

Also Published As

Publication number Publication date
CN102349055A (zh) 2012-02-08
GB2480985B (en) 2014-12-17
TWI483176B (zh) 2015-05-01
GB2480985A (en) 2011-12-07
US8533183B2 (en) 2013-09-10
DE112009004503T5 (de) 2012-05-31
TW201040830A (en) 2010-11-16
WO2010104505A1 (en) 2010-09-16
GB201117455D0 (en) 2011-11-23
US20110320436A1 (en) 2011-12-29

Similar Documents

Publication Publication Date Title
CN102349055B (zh) 对存储在存储器上的文件的访问时间最优化
US9052826B2 (en) Selecting storage locations for storing data based on storage location attributes and data usage statistics
AU2006331830B2 (en) Optimizing write and wear performance for a memory
US7966289B2 (en) Systems and methods for reading objects in a file system
CN107168657B (zh) 一种基于分布式块存储的虚拟磁盘分层缓存设计方法
US8990502B2 (en) Write cache structure in a storage system
US8819367B1 (en) Accelerated translation power recovery
US9779027B2 (en) Apparatus, system and method for managing a level-two cache of a storage appliance
CN104025059B (zh) 用于数据存储存储器的空间收回的方法和***
US20170024140A1 (en) Storage system and method for metadata management in non-volatile memory
CA2511304C (en) Dual journaling store method and storage medium thereof
CN105242871A (zh) 一种数据写入方法及装置
TW201232260A (en) Semiconductor storage device
Chen et al. A unified framework for designing high performance in-memory and hybrid memory file systems
US9152352B1 (en) Filemark cache to cache filemark metadata for virtual tapes
CN104571959A (zh) 数据处理方法和装置
Wang et al. A new self-adaptive extendible hash index for flash-based DBMS
US7260693B2 (en) Adaptive disk layout techniques and tools
Wünsche et al. Intelligent Data Migration Policies in a Write-Optimized Copy-on-Write Tiered Storage Stack
KR101373613B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬를 포함하는 하이브리드 스토리지 장치
US20240070061A1 (en) Logical to physical (l2p) address mapping with fast l2p table load times
US20210263648A1 (en) Method for managing performance of logical disk and storage array
KR101051504B1 (ko) 저전력과 입출력 성능 향상을 위한 n-블록 선반입 기반의 하이브리드 하드디스크 입출력 시스템
US8417664B2 (en) Method and apparatus for database unloading
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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150812