CN101145132B - 用于编目高速缓存中的对象的元数据的方法和设备 - Google Patents
用于编目高速缓存中的对象的元数据的方法和设备 Download PDFInfo
- Publication number
- CN101145132B CN101145132B CN2007101287920A CN200710128792A CN101145132B CN 101145132 B CN101145132 B CN 101145132B CN 2007101287920 A CN2007101287920 A CN 2007101287920A CN 200710128792 A CN200710128792 A CN 200710128792A CN 101145132 B CN101145132 B CN 101145132B
- Authority
- CN
- China
- Prior art keywords
- evicting
- candidate target
- speed cache
- module
- criterion
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
逐出候选排序工具(ECST)与现有的利用数据库跟踪存储在高速缓存中的对象的逐出算法一起使用。ECST从元数据仅提取某些属性,建立列出所有高速缓存对象和选定属性的″逐出表″或″类″,而不是将所有与对象有关的元数据存储在高速缓存中。所述表可以依据基于逐出算法的类来排序。逐出机制可使用该排序的表来识别逐出候选。
Description
技术领域
本发明一般涉及电子计算机和数字处理系统中的存储器,并且尤其涉及识别从高速缓存中逐出的对象。
背景技术
应用程序是在计算机上执行任务的程序。应用程序由于种种原因将计算机上的对象保存到高速缓存。应用程序通常将对象保存到存储设备上的高速缓存中,使得应用程序在后续时间可以快速访问对象。由应用程序放入高速缓存中的对象可被反复不断地使用,或实际上其使用可以是暂时的。放入高速缓存中的会被反复不断地使用的对象的例子是包含电子邮件读者的登录信息的对象文件。放入缓存器中的实际上会是暂时的对象的例子是在很少访问的Web页面上出现的、或在很少访问的流视频广播中出现的图像。在很少访问的Web页面或流视频广播的情况下,一旦已经看过暂时缓存的对象,查看者就移到别的对象上,并且可能再也不观看该对象。为正在进行的使用而缓存的对象以及为暂时使用而缓存的对象二者都占用易失存储器和永久存储空间。由于占用易失存储器和永久存储空间,缓存的对象降低了计算机系统的总性能。各种程序、算法或例程(此后称为程序)通过从高速缓存中移除不需要的文件来改进计算机系统性能。
本领域技术人员将从高速缓存中自动移除不需要的文件的程序称作逐出(eviction)程序。逐出程序的其他名字是高速缓存逐出程序和垃圾收集程序。如此处所使用的,术语逐出程序将意指从对象被存储于其中的高速缓存中自动移除对象的任何程序、算法或例程。当高速缓存中需要更多空间时,最简单的逐出程序从高速缓存中删除最老的对象。更精细的逐出程序识别并且删除不需要的对象,而保留高速缓存中有用的对象。更精细的逐出程序分为两个类别:I/O反馈逐出程序和数据库跟踪逐出程序。
I/O反馈逐出程序在逐出一个对象期间监视输入/输出(I/O)操作,并且使用来自所逐出的对象的反馈以便识别之后将被逐出的候选对象。美国专利6,718,438是反馈逐出程序的一个例子,其使用来自所逐出的候选的反馈来识别新的候选。I/O反馈逐出程序的另一个形式每当对象被获取或更新时重新组织高速缓存,以便允许更快地访问为了逐出而识别的对象。重新组织高速缓存可包括将高速缓存的对象从一个存储介质移动到另一个存储介质。美国专利6,480,939公开了加强高速缓存对象的逐出的过滤获取方法。I/O反馈逐出程序耗用计算机硬件和软件资源以从高速缓存中识别和逐出对象。
因为利用数据库来跟踪和删除高速缓存中的对象的数据库跟踪逐出程序要求较少的硬件资源来维护高速缓存,所以其优于反馈逐出程序。数据库跟踪逐出程序将与高速缓存中的对象相关的元数据编目,并且重新组织高速缓存中的对象列表并划分优先级,而无需在存储设备上重新组织高速缓存的对象自身。
数据库跟踪逐出程序利用来自对象的元数据的属性来识别逐出候选。用于确定逐出候选的通常使用的属性是对象的年龄(age)。可被用于逐出确定的对象的元数据中的其它属性包括对象的创建者,最近使用的时间或对象类型。对象的元数据中的属性可表明对象是有用的并且不应被删除。虽然数据库跟踪逐出程序不需要I/O反馈逐出程序的I/O硬件开销,但是数据库跟踪逐出程序随着高速缓存大小的增长而耗用大量存储器资源。数据库跟踪逐出程序的存储器使用最终降低了计算机系统的性能。因此,存在对减少数据库跟踪逐出程序的存储器需求的方法的需要。
发明内容
满足以上所述需要的本发明是“逐出候选排序工具”(“ECST”),其具有配置部件,表输入部件,排序部件,以及逐出部件。ECST与逐出机制,配置文件,逐出条目表,以及盘位置表结合工作。
ECST将高速缓存的对象的位置存储在分立的″盘位置表″中。逐出条目表中的被排序条目被映射到相应的盘位置表条目,以利于定位对象。配置部件允许管理员设置或改变配置文件,逐出条目表,以及盘位置表的值。表输入部件从对象的元数据中提取相关属性,并且在逐出条目表和盘位置表中输入定义对象的对象属性和共享相同属性的一组对象。排序部件根据配置文件中的排序准则重新排序逐出条目表中的条目。逐出部件选择先前排序的逐出条目表中的第一条目作为逐出的候选,参考被映射条目到盘位置表以定位高速缓存中的一组候选对象的第一候选对象,将对象的元数据与逐出机制的逐出准则相比较,如果满足准则,则发送对象的标识到逐出机制以便删除。
附图说明
在所附权利要求书中记载了被认为是本发明的特征的新颖特性。然而参照下面结合附图对一个示例性实施例进行的详细描述可以更好地理解本发明自身,最优使用模式,其它目标和优点,其中:
图1是一个示例性计算机网络;
图2描述了计算机上的存储器中的程序和文件;
图3是配置部件的流程图;
图4是表输入部件的流程图;
图5是排序部件的流程图;
图6是逐出部件的流程图;以及
图7是本发明所使用的表的例子。
具体实施方式
本发明的原理适用于各种计算机硬件和软件配置。此处所使用的术语″计算机硬件″或″硬件″是指任何机器或装置,其能够接受数据、对数据执行逻辑操作、存储数据或显示数据,并且包括但不限于处理器和存储器。术语″计算机软件″或″软件″是指可以使计算机硬件执行操作的任何指令组。此处所使用的术语″计算机″包括但不限于任何有用的硬件和软件的组合,″计算机程序″或″程序″包括但不限于可以使计算机硬件接受数据、对数据执行逻辑操作、存储数据或显示数据的任何软件。计算机程序可以并且经常由多个较小编程单元组成,所述编程单元包括但不限于子程序、模块、函数、方法和过程。因此,本发明的功能可被分给多个计算机和计算机程序。尽管本发明被优选地描述为单一计算机程序,其配置并且使一个或多个通用计算机能实现本发明的新颖方面。为了图解的目的,本发明的计算机程序将被称为″逐出候选排序工具″(ECST)。
此外,参考如图1中所述的硬件设备的示例性网络,下面描述ECST。″网络″包括通过诸如因特网的通信介质相互连接和通信的任意数量的硬件设备。″通信介质″包括但不限于可被硬件或软件用来传送数据的任何物理、光学、电磁或其它介质。为了描述的目的,示例性网络100仅具有有限数量的节点,包括工作站计算机105,工作站计算机110,服务器计算机115,以及永久存储设备120。网络连接125包括使网络节点105-120之间能进行通信的所必需的所有硬件、软件和通信介质。除非下文中另有声明,所有网络节点使用公开可用的协议或消息传送业务通过网络连接125互相通信。
ECST200通常被存储在存储器中,图2中被示意性地表示为存储器220。此处所使用的术语″存储器″包括但不限于任何易失或永久介质,例如电路,磁盘,或光盘,计算机可以将数据或软件存储于其中任何时间段。单个存储器可包括以及分布于多个介质。ECST200可进一步驻留在分布于不同计算机、服务器逻辑分区或其它硬件设备上的不止一个的存储器中。存储器220中所示的单元可以任何组合的方式位于或分布于分立存储器中,并且ECST200可适合于识别、定位和访问任何单元,以及协调分布单元的操作。因此,图2仅为描述方便而被包含,不必反映存储器220的任何具体物理实施例。如图2中所描述的,存储器220可包含附加数据和程序。就具体输入ECST200而言,存储器220可包含逐出机制230、高速缓存240中的对象、配置文件250、逐出条目表260以及ECST200与之交互的盘位置表270。ECST200具有4个部件:配置部件300、表输入部件400、排序部件500以及逐出部件600。逐出机制230是本领域现有的,此处不详细说明。逐出机制230包括但不限于已知数据库跟踪逐出程序、算法、例程或子程序。逐出机制230适于与ECST200的各部件通信,特别是通过请求逐出部件600识别候选对象240以从高速缓存中移除。
图3示出了由计算机系统管理员启动的配置部件300(310)。配置部件300给管理员提供提示以进行改变(312)。提示可以是数据文件中的文本,或可包含图形表示,例如无线按钮或下拉式菜单。如果管理员想要改变逐出条目表260的设置(314),则增加或从表中移除类(316),并且将改变保存到配置文件250中(318)。数据库表中的类字段,在这种情况下类对应于特定的对象元数据属性。针对逐出条目表260选择的类应当仅包含识别逐出候选所必需的那些对象元数据属性。如果管理员想要改变盘位置表270的设置(320),则增加或从表中移除类(322),并且将改变保存到配置文件250中(324)。针对盘位置表270选择的类应当仅包含定位所识别的逐出候选所必需的那些对象元数据属性。如果管理员想要改变排序准则(326),则增加,移除或重新排序类(328),并且将改变保存到配置文件250中(330)。针对排序准则选择的类和排序次序应当尽可能接近地匹配由逐出机制230所使用的逐出算法。如果管理员结束配置改变(332),配置部件300停止(334)。配置部件300的实施例基于逐出机制230所使用的设置自动配置其自身。
每当对象240被保存到高速缓存中时,图4中所示的表输入部件400启动(410)。表输入部件400参考来自配置文件250的针对逐出条目表260和盘位置表270的类设置(412)。表输入部件400从对象的元数据240中提取诸如散列标识符、文件大小或最近访问时间的相关属性(414),并且在逐出条目表260(416)和盘位置表270(418)中输入属性作为类。共享相同属性的一组对象可以被归入逐出条目表260中的相同类。利用盘位置标识符,来自盘位置表270的条目被映射到逐出条目表260的条目(420)。在启动排序部件500之后(422),表输入部件400停止(424)。
参照图5,当由表输入部件400或逐出部件600启动时,排序部件500启动(510)。当由逐出机制230启动时,排序部件500也可以启动。排序部件500参考保存在配置文件250中的排序准则,根据排序准则重新排序逐出条目表260中的条目(514),然后停止(516)。
参照图6,当逐出机制230表明需要从高速缓存中删除对候选的身份(identity)时,逐出部件600启动(610)。逐出部件600通过选择以前排序的逐出条目表260中的第一条目来识别逐出的候选(612)。逐出部件600参考映射到盘位置表270的条目(614)来定位高速缓存中的对象240(616)。逐出部件600将对象高速缓存240中的对象的元数据属性与由逐出机制230所使用的逐出准则比较(618)。如果逐出准则不满足(620),则逐出部件600确定是否盘中的另一个对象与对象240共享相同属性组(622),并且重复验证是否另一个对象满足逐出准则的过程(614-620)。如果在步骤622中另一个对象不共享相同的属性组,则逐出部件600启动排序部件500(624),并且重复识别和验证新的逐出候选的过程(612-620)。如果高速缓存中的对象240满足逐出准则,则对象的身份被发送到逐出机制230以便删除(626)。逐出部件600确认候选的逐出(628),并且将相应的条目从逐出条目表260和盘位置表270中移除(630)。逐出部件600启动排序部件500(632),以便重新排序剩余的条目,然后停止(634)。
图7示出了与逐出条目表260和盘位置表270交互的ECST200的例子。对象元数据710是与高速缓存240中的对象相关的元数据的例子。第一个箭头720表示表输入部件400从对象元数据710中提取某些类的属性,并且所提取的属性被示为逐出条目730。所提取的属性包括创建时间″CT5″,到期时间″ET5″,大小″1.20MB″,以及文件类型″.wav″。高速缓存240中的对象被分配给盘位置标识符″DLI5″。如图7所示,第二个箭头725表示表输入部件400从对象元数据710中提取物理位置属性作为盘条目735。第三个箭头740表示表输入部件400将逐出条目730放到逐出条目表750中作为条目5。逐出条目表750包含以前放入的、所提取的属性对应于其它高速缓存的对象的条目(条目1-条目4)。第四个箭头745表示表输入部件400将盘条目735放到盘位置表790中。盘位置表790包含以前放入的描述其它高速缓存的对象的位置的条目。第五个箭头760表示排序部件500根据文件大小重新排序逐出条目表750中的条目。重新排序的表被示为逐出条目表770。第六个箭头780表示逐出部件600参考盘位置表790中有关高速缓存240中的对象的物理位置。ECST200将高速缓存240中对象的身份传递给逐出机制230以便删除。
本发明的优选形式已在附图中示出并且已在上面做了描述,但是本领域的技术人员将明白优选形式的各种变化。前面的描述仅仅是为了说明的目的,本发明不应被看作是局限于所示和所述的特定形式。本发明的范围应当仅仅由以下权利要求的语言来限定。
Claims (10)
1.一种用于编目高速缓存中的对象的元数据的方法,该方法包括:
定义用于从高速缓存中删除对象的逐出准则;
识别对应于逐出准则的逐出属性;
从保存到高速缓存的对象的元数据中提取逐出属性;
将对象的逐出属性输入到逐出条目表中;
根据所输入的逐出属性并使用盘位置标识符,将每个盘位置条目映射到逐出表条目;
根据逐出准则排序所述逐出条目表;
通过选择在排序的逐出条目表中的第一条目来识别候选对象;以及
根据所识别的候选对象并参考映射到盘位置表的条目来定位高速缓存中的候选对象,将所述候选对象的属性与逐出准则比较,
如果所述候选对象满足逐出准则,则候选对象的身份被发送以便删除;
确认候选对象从排序的逐出条目表中逐出,并且将相应的条目从逐出条目表和盘位置表中移除。
2.如权利要求1所述的方法,进一步包括:
将对象物理位置输入到位置表中;
将所述位置表中的条目映射到所述逐出表中的对应条目;以及
利用位置表定位高速缓存中的候选对象。
3.如权利要求2所述的方法,进一步包括:
验证所述候选对象的元数据满足逐出准则。
4.如权利要求2所述的方法,进一步包括当从高速缓存中删除所述候选对象时,从位置表中移除所述候选对象的条目。
5.如权利要求1所述的方法,其中逐出准则与对象的年龄有关。
6.一种用于编目高速缓存中的对象的元数据的装置,该装置包括:
定义用于从高速缓存中删除对象的逐出准则的模块;
识别对应于逐出准则的逐出属性的模块;
从保存到高速缓存的对象的元数据中提取逐出属性的模块;
将对象的逐出属性输入到逐出条目表中的模块;
根据所输入的逐出属性并使用盘位置标识符,将每个盘位置条目映射到逐出表条目的模块;
根据逐出准则排序所述逐出条目表的模块;
通过选择在排序的逐出条目表中的第一条目来识别候选对象的模块;以及
根据所识别的候选对象并参考映射到盘位置表的条目来定位高速缓存中的候选对象,将所述候选对象的属性与逐出准则比较的模块,
如果所述候选对象满足逐出准则,则候选对象的身份被发送以便删除的模块;
确认候选对象从排序的逐出条目表中逐出,并且将相应的条目从逐出条目表和盘位置表中移除的模块。
7.如权利要求6所述的装置,进一步包括:
将对象物理位置输入到位置表中的模块;
将所述位置表中的条目映射到所述逐出表中的对应条目的模块;以及
利用位置表定位高速缓存中的候选对象的模块。
8.如权利要求7所述的装置,进一步包括:
验证所述候选对象的元数据满足逐出准则的模块。
9.如权利要求7所述的装置,进一步包括当从高速缓存中删除所述候选对象时,从位置表中移除所述候选对象的条目的模块。
10.如权利要求6所述的装置,其中逐出准则与对象的年龄有关。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/531,818 | 2006-09-14 | ||
US11/531,818 US7536512B2 (en) | 2006-09-14 | 2006-09-14 | Method and apparatus for space efficient identification of candidate objects for eviction from a large cache |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101145132A CN101145132A (zh) | 2008-03-19 |
CN101145132B true CN101145132B (zh) | 2012-02-22 |
Family
ID=39242281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101287920A Expired - Fee Related CN101145132B (zh) | 2006-09-14 | 2007-07-12 | 用于编目高速缓存中的对象的元数据的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7536512B2 (zh) |
CN (1) | CN101145132B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8032714B2 (en) * | 2007-09-28 | 2011-10-04 | Aggregate Knowledge Inc. | Methods and systems for caching data using behavioral event correlations |
US8650228B2 (en) * | 2008-04-14 | 2014-02-11 | Roderick B. Wideman | Methods and systems for space management in data de-duplication |
CN101834801B (zh) * | 2010-05-20 | 2012-11-21 | 哈尔滨工业大学 | 基于缓冲池的数据缓存排序在线处理方法 |
US8397028B2 (en) * | 2010-06-15 | 2013-03-12 | Stephen SPACKMAN | Index entry eviction |
US9954971B1 (en) * | 2015-04-22 | 2018-04-24 | Hazelcast, Inc. | Cache eviction in a distributed computing system |
US11223528B2 (en) * | 2017-01-27 | 2022-01-11 | Box. Inc. | Management of cloud-based shared content using predictive cost modeling |
US10210086B1 (en) | 2017-08-16 | 2019-02-19 | International Business Machines Corporation | Fast cache demotions in storage controllers with metadata |
KR20200008759A (ko) * | 2018-07-17 | 2020-01-29 | 에스케이하이닉스 주식회사 | 캐시 메모리 및 이를 포함하는 메모리 시스템, 캐시 메모리의 축출 방법 |
US11287995B2 (en) | 2020-05-18 | 2022-03-29 | Oracle International Corporation | Heap, garbage collection, and empty-sensitive object pools |
US12026129B2 (en) * | 2022-03-30 | 2024-07-02 | Snowflake Inc. | Atomic cache management of file collections |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6959320B2 (en) * | 2000-11-06 | 2005-10-25 | Endeavors Technology, Inc. | Client-side performance optimization system for streamed applications |
US6718438B2 (en) * | 2000-12-13 | 2004-04-06 | Sun Microsystems, Inc. | Using feedback to determine the size of an object cache |
US6480939B2 (en) * | 2000-12-29 | 2002-11-12 | Intel Corporation | Method and apparatus for filtering prefetches to provide high prefetch accuracy using less hardware |
US7076611B2 (en) * | 2003-08-01 | 2006-07-11 | Microsoft Corporation | System and method for managing objects stored in a cache |
US7552284B2 (en) * | 2004-12-28 | 2009-06-23 | Sap Ag | Least frequently used eviction implementation |
US7971001B2 (en) * | 2004-12-28 | 2011-06-28 | Sap Ag | Least recently used eviction implementation |
US7512737B2 (en) * | 2004-12-28 | 2009-03-31 | Sap Ag | Size based eviction implementation |
US7437516B2 (en) * | 2004-12-28 | 2008-10-14 | Sap Ag | Programming models for eviction policies |
US7539821B2 (en) * | 2004-12-28 | 2009-05-26 | Sap Ag | First in first out eviction implementation |
US20060248285A1 (en) * | 2005-04-29 | 2006-11-02 | Petev Petio G | Cache coherence protocol |
-
2006
- 2006-09-14 US US11/531,818 patent/US7536512B2/en not_active Expired - Fee Related
-
2007
- 2007-07-12 CN CN2007101287920A patent/CN101145132B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7536512B2 (en) | 2009-05-19 |
US20080071992A1 (en) | 2008-03-20 |
CN101145132A (zh) | 2008-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101145132B (zh) | 用于编目高速缓存中的对象的元数据的方法和设备 | |
US20160292255A1 (en) | Hybrid data management system and method for managing large, varying datasets | |
US8219544B2 (en) | Method and a computer program product for indexing files and searching files | |
CN106021445B (zh) | 一种加载缓存数据的方法及装置 | |
JP7080033B2 (ja) | タスク管理システム、タスク管理方法、及びタスク管理プログラム | |
US20230016909A1 (en) | Coordinator for preloading time-based content selection graphs | |
US9928178B1 (en) | Memory-efficient management of computer network resources | |
CN104881466A (zh) | 数据分片的处理以及垃圾文件的删除方法和装置 | |
CN108140040A (zh) | 存储器中数据库的选择性数据压缩 | |
CN101211365A (zh) | 用于建立搜索索引的方法和系统 | |
CN102819586A (zh) | 一种基于高速缓存的url分类方法和设备 | |
US11720488B2 (en) | Garbage collection of preloaded time-based graph data | |
KR102144534B1 (ko) | 검색 캐시 업데이트 방법 및 장치 | |
CN106155934B (zh) | 一种云环境下基于重复数据的缓存方法 | |
CN107329910A (zh) | 一种基于localStorage的Web前端数据本地存储和访问方法 | |
CN107153643A (zh) | 数据表连接方法及装置 | |
CN106161193B (zh) | 一种邮件处理方法、装置和系统 | |
CN109086141A (zh) | 内存管理方法和装置以及计算机可读存储介质 | |
CN1996312A (zh) | 用于管理海量存储系统的方法和数据处理系统 | |
US8346780B2 (en) | Integrated search server and integrated search method | |
CN105915619B (zh) | 顾及访问热度的网络空间信息服务高性能内存缓存方法 | |
JP5331050B2 (ja) | データ同期システム、データ同期方法、情報処理装置、情報処理方法、およびプログラム | |
US9298934B1 (en) | Managing presentation of online content | |
US11474943B2 (en) | Preloaded content selection graph for rapid retrieval | |
US20150106884A1 (en) | Memcached multi-tenancy offload |
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 |
Granted publication date: 20120222 Termination date: 20150712 |
|
EXPY | Termination of patent right or utility model |