CN102047231A - 数据存储和访问 - Google Patents

数据存储和访问 Download PDF

Info

Publication number
CN102047231A
CN102047231A CN2009801196261A CN200980119626A CN102047231A CN 102047231 A CN102047231 A CN 102047231A CN 2009801196261 A CN2009801196261 A CN 2009801196261A CN 200980119626 A CN200980119626 A CN 200980119626A CN 102047231 A CN102047231 A CN 102047231A
Authority
CN
China
Prior art keywords
cache
subobject
speed cache
data
speed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2009801196261A
Other languages
English (en)
Inventor
H·S·纳加
N·纳延
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.)
Nokia Oyj
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Publication of CN102047231A publication Critical patent/CN102047231A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs

Landscapes

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

Abstract

一种数据高速缓存,其中高速缓存的内容根据层级来布置和组织。当访问第一层级的成员时,该成员的所有内容被拷贝到高速缓存中。该高速缓存可以根据包含数据或数据块的文件夹来布置。还提供了用于使用这种布置对数据进行高速缓存的过程。

Description

数据存储和访问
技术领域
本发明涉及数据存储和访问领域。具体地,本发明的实施方式涉及数据高速缓存以及存储在数据高速缓存中数据的结构及访问这一领域。
背景技术
存储器、盘输入/输出和微处理器高速缓存是已知的,并且用于改进访问和操作数据以及指令的速度。某些高速缓存通过将数据或指令拷贝到比通常使用的存储介质更小但更快的一类存储器来进行操作。其他高速缓存(诸如,web高速缓存)通过定位比常规数据位置可更快访问的位置中的数据来进行操作。例如,web代理服务器可以保留那些经常访问的web页面的记录,并且将那些页面拷贝到本地存储。当代理服务器的客户端访问那些页面时,该代理服务器将提供本地存储页面的拷贝,这样可以明显快于在页面的远程位置访问这些网页。
Windows XP操作系统捆绑了被称为预取(Prefetch)的应用。预取监测那些在系统启动期间访问的应用和文件,并且试图在启动过程开始之前将那些应用和文件加载至存储器,以期加速启动过程。预取的操作不考虑应用与文件之间的相关,而是依赖于应用和文件是否在启动过程期间被访问的指示来确定是否应当将他们加载至存储器。
发明内容
根据第一实施方式,本发明提供一种方法,包括:
(i)标识将被包括到高速缓存中的高速缓存对象,该高速缓存对象存储在存储介质上;
(ii)标识与该高速缓存对象有关的至少一个子对象;以及
(iii)在将该高速缓存对象包括到高速缓存中时,将至少一个已标识的子对象包括到高速缓存中。
将所述高速缓存对象包括到所述高速缓存中可以包括将每个已标识的子对象包括到高速缓存中。
根据本发明此实施方式的方法,首先标识与高速缓存对象有关的子对象,继而通过将高速缓存对象和子对象包括到高速缓存中来填写高速缓存。这可以保证相关的对象将包括在高速缓存中,并且如果高速缓存中没有足够的空间来容纳高速缓存对象和子对象两者,则可以采取适当的措施。
根据本发明此实施方式的高速缓存能够根据相关的子对象而被访问和管理,由此当其被按照高速缓存对象和子对象相关的形式对其进行寻址的程序使用时,可以显著地改进性能。此外,通过使用相关的子对象和高速缓存对象,管理操作(诸如,填写高速缓存以及删除存储在高速缓存中的对象)可以批次执行,这比逐个执行更为有效和快速。
高速缓存对象和子对象可以借助于层级进行相关。层级可以是多层的,其中一层的高速缓存对象是另一层的子对象。这里使用人类的关系术语“父亲”、“孩子”和“子孙”来描述存储在高速缓存中的各种对象彼此相关的方式。然而,应当理解,取决于所涉及的实际对象的特性,一个对象的父亲本身可以是另一对象的孩子。
高速缓存对象可以是子对象的持有者(holder)。
高速缓存对象可以包括一个或多个子对象。例如,高速缓存对象可以是文件夹,子对象可以是包含在该文件夹中的项。
子对象可以包括一个或多个相关的孙对象。例如,高速缓存对象可以对应于服务,子对象可以对应于文件夹,孙对象可以对应于存储在文件夹中的消息。
所述相关可以通过客户端应用或通过数据结构或者两者来定义。
该方法还可以包括步骤:
根据高速缓存管理策略从高速缓存删除对象;以及
在从高速缓存删除高速缓存对象时,删除与该高速缓存对象相关的每个子对象。
对存储在高速缓存中的对象的批次移除保证了存储在高速缓存中的对象参考其相关的方式保持相关,因此高速缓存可以继续由根据对象的相关方式来寻址对象的应用加以使用。注意,对象的批次移除可以比逐个移除高速缓存所存储的对象更加有效。
高速缓存可以包括与高速缓存对象相关的不止一个子对象,并且子对象可以按照块来布置,每个块具有固定的地址范围。
根据块来布置高速缓存的内容有助于保证内容可以容易地寻址和管理。
子对象与相关高速缓存对象之间的相关可以由软件应用来建立。在此情况下,相关可以具有针对软件应用的上下文意义,并且根据这些相关来管理高速缓存可以保证应用以更加有效、快速的方式进行操作。
软件应用可以使用数据库,高速缓存对象可以是数据库表,并且子对象可以是数据库表条目。
软件应用可以包括发送、接收和编辑消息,高速缓存对象可以包括消息文件夹,并且子对象可以包括消息数据。软件应用可以是运行在移动计算设备上的消息收发应用。
标识将包括到高速缓存中的高速缓存对象可以包括:记录软件应用的用户对文件夹的访问。当应用访问高速缓存对象时,可以将所有相关的子对象保存到高速缓存,由此在访问或操作这样存储的子对象时加速应用的性能。
子对象可以存储在存储介质上,该存储介质与数据存储相关联。
存储介质可以通过以下一个或多个与高速缓存介质区分:高速缓存介质具有比存储介质更快的访问时间;高速缓存介质具有比存储介质更快的数据读取时间;或者高速缓存介质具有比存储介质更快的数据写入时间。高速缓存介质的访问、读取或写入可以快于通常用于存储数据的存储介质,从而保证了使用上述方法的应用的操作可以比没有使用前述方法的相同应用的操作更快。
高速缓存介质和存储介质可以包含在相同设备中。
该方法还可以包括:
在将高速缓存对象和子对象包括到高速缓存中的步骤之前,标识高速缓存中的空闲空间量;
当确定高速缓存中没有足够的空间时,标识可替代的高速缓存对象,并且从高速缓存删除与该可替代的高速缓存对象相关联的一个或多个子对象和/或该可替代的高速缓存对象;以及
此后,将高速缓存对象和子对象包括到高速缓存中。
对存储在高速缓存中的相关对象的批次删除保证了可以根据前面提到的数据与子对象之间的相关来管理高速缓存。
可替代的高速缓存对象可以基于高速缓存对象的访问频率进行标识。
可替代的高速缓存对象可以标识为高速缓存的所有对象中最近最少使用的对象。
数据高速缓存可以包括至少一个高速缓存对象和至少一个子对象,其中子对象与高速缓存对象相关,以及其中高速缓存包括该相关的指示。
根据其他实施方式,本发明提供一种方法,包括:
(i)标识将要从高速缓存删除的高速缓存对象;
(ii)标识与所述高速缓存对象相关的至少一个子对象;以及
(iii)在删除所述高速缓存中的高速缓存对象时,从所述高速缓存删除一个或多个所述已标识的子对象。
根据其他实施方式,本发明提供一种高速缓存,该高速缓存包括其成员之间的相关的指示,其中该高速缓存适于根据该相关来填写和管理。这种高速缓存能够提供对存储在高速缓存中的数据的增强访问。
该数据高速缓存还可以包括:包含在该高速缓存内的所有高速缓存对象的列表。
该列表可以根据高速缓存对象的访问频率来排序。这样可以根据成员的访问频率来辅助快速标识该高速缓存的成员。
子对象可以布置在块中,每个块具有预定的地址范围。对应于子对象的每个块可以具有相同大小的地址范围。
高速缓存对象与子对象之间的相关的指示可以包括与该高速缓存对象相关联的表,该表包括针对与该高速缓存对象相关的每个子对象的条目。
存储介质和高速缓存介质可以包含在单个设备内。
根据其他实施方式,本发明提供包括如之前所述的数据高速缓存的装置。在某些实施方式中,该装置可以是移动计算设备。
根据其他实施方式,本发明提供一种数据高速缓存,其包括多个高速缓存对象、彼此相关的高速缓存对象的子集,该高速缓存适于存储、删除或替代高速缓存对象的子集,其中该子集包括不止一个高速缓存对象,以及其中该子集的所有成员都彼此相关。
该子集的高速缓存对象可以通过作为相同父对象的子对象而彼此相关。
根据其他实施方式,本发明涉及布置用于提供操作系统的多个软件应用,所述操作系统包括这里所描述的数据高速缓存。
根据其他实施方式,本发明涉及用于存储程序指令的可记录介质,所述指令适于提供这里描述的数据高速缓存。本发明的实施方式可以扩展到任何软件、个体计算机程序、计算机程序组、计算机程序产品或配置用于执行上文记载方法的计算机可读介质。
附图说明
下面参考附图描述本发明的实施方式,其中:
图1是可在其中实现本发明实施方式的移动计算设备的示意图;
图2是表示图1的移动计算设备的一部分的框图;
图3是在操作消息收发应用时图1的移动计算设备的显示器的视图;
图4是图1的移动计算设备的消息存储的一部分的示意框图;
图5示出了图4的消息存储的一部分;
图6示出了图5的消息存储的一部分的文件夹的结构化列表;
图7示出了根据本发明实施方式的用于构造高速缓存的示意图;
图8示出了本发明实施方式的高速缓存的索引表;以及
图9是示出了管理本发明实施方式的数据高速缓存的操作方法的框图。
具体实施方式
图1是具有外壳12的移动计算设备10的示意图。外壳12封装有小键盘14、屏幕16、扬声器18和麦克风20。设备10还包括天线22。图1中所示的移动计算设备10可以充当电话,并且在这种情况下,经由天线22发送和接收电信信号。
图2示意性示出了移动计算设备10的某些组件。设备10包括内核12,其表示设备10的操作系统。在所示的实施方式中,操作系统是Symbian操作系统。然而,本发明在这方面并无限制。内核12连接到借助于高速缓存管理单元34来控制的易失性系统存储器14。设备驱动器18、20和22连接到内核12,并且控制相应设备键盘206、显示器16和网卡24的行为并与之通信。应当理解,移动计算设备10包括的设备和组件比在此示出的要多。移动计算设备在本领域中是已知的,因此这里将不作进一步描述。
移动计算设备10还包括连接到高速缓存管理单元34的存储器高速缓存30。
在图2中,高速缓存管理单元34被示为与内核12、存储器14和高速缓存30不同的组件。在其他实施方式中,高速缓存管理单元可以并入内核12、存储器14、高速缓存30中的任何一个或者驻留在别处。将会理解,下面描述的本发明的实施方式的操作与高速缓存管理单元驻留在哪里无关。还有可能的是,这里描述的高速缓存管理单元34的功能将由除专用组件(例如,内核12)之外的移动计算设备组件来执行。
存储器14是已知类型的易失性系统存储器。类似地,高速缓存30的构造是已知的。对于下面讨论的本发明的原理至关重要的是:高速缓存存储器通常比系统存储器14更小但更快。高速缓存30比系统存储器14更小是因为高速缓存30能够存储较少的数据,而更快是因为移动计算设备能够在高速缓存30上比在系统存储器14上更快地写入、查找和擦除数据。因此,将会理解,与图1中所示高速缓存30(高速缓存存储介质)和系统存储器14(存储介质)的符号化组件对应的物理组件将会根据前面提到的大小和能力特性而有所区别。此外,如下面描述的本发明的操作方式同样适用于这样的系统,其中高速缓存管理单元管理被用作系统存储器的硬盘驱动和被用作高速缓存的易失性存储器(并且可以在不一定是移动的计算设备中实现)。
移动计算设备10还包括多个用户软件应用,其允许用户控制诸如显示器16之类的附接设备。图2中示出了一个软件应用:消息收发程序32。消息收发程序32借助于内核12和高速缓存管理单元34来访问存储在系统存储器14中的消息存储60。
图3示出了当用户操作消息收发程序32时移动计算设备10的显示器16。显示器顶部的图标40对应于消息收发程序32。图标40周围的醒目显示部分42指示消息收发程序是活跃的,并且显示器16上显示的信息对应于消息收发程序32的操作。显示器16的右上部显示标记有“收件箱”的标签44,并且在该标签旁边放置有下指箭头。这指示当前选定了该收件箱文件夹。用户可以选择备选的文件夹46,如图3的显示器16的右手部分中所示。
如所示,在显示器16的左手边显示有消息48的列表,其部分地被文件夹46的列表遮挡。消息46是包含在当前选定文件夹(这里是收件箱44)中的那些消息。
图4示出了消息收发程序32所访问的消息存储60的一部分。如图所示,消息存储的数据按照层级式布置来存储。层级的最顶层由根文件夹62表示。根文件夹62分为多个二级文件夹:“本地”64、“ISP_1”66、“传真”68和“ISP_2”70。消息存储60包括其他二级文件夹,如虚线勾勒的文件夹100所示。每个二级文件夹都表示服务。因此,文件夹“本地”64表示本地消息、文件夹66表示利用因特网服务提供商ISP_1的电子邮件账户的所有消息。在所示的实施方式中,消息存储60还存储针对传真服务的消息(文件夹68)和针对在因特网服务提供商的第二电子邮件账户的消息(ISP_2,文件夹70)。如虚线勾勒的文件夹100所示,可以提供用于诸如多媒体消息服务(MMS)、短消息服务(SMS)等其他服务的其他文件夹。
每个二级文件夹充当三级文件夹的容器。三级文件夹包括:收件箱文件夹72、76、84和90;发件箱文件夹74、78、86和92;草稿箱文件夹80和94;以及已发送文件夹82、88和96。如图4中所示,这些文件夹中的每一个都对应于较高级的服务文件夹。某些服务要求特定文件夹,因此例如,由文件夹66和文件夹70表示的电子邮件服务要求收件箱76、90,发件箱78、92,已发送82、96,以及草稿箱80、94文件夹;而传真服务要求收件箱84、发件箱86和已发送88文件夹。
图5示出了图4中所示的消息存储60的一部分。图5示出了图4中所示ISP_1文件夹66的电子邮件服务的收件箱76、发件箱78、草稿箱80和已发送82文件夹。消息存储60(图2)包括多个消息“条目”。每个消息条目将对应于特定文件夹,并且可以对应于消息。消息包括头部、主体并且可以具有其他数据(诸如,附件)。因此,消息条目所对应的数据在大小方面可能显著变化。为了保证高速缓存30易于管理,将消息条目的数据布置在文件夹层级上的块中。每个块将具有相同的最大大小,因此充当高速缓存中消息数据的占位符。
如图所示,文件夹76、78、80和82的每一个都存储有布置在块中的消息条目。因此,收件箱76具有块120、块122和块124;发件箱78具有块126;草稿箱80具有块128;以及已发送82具有块130和块132。如下面所描述的,图5的每个块都表示相同的最大消息数据量,并且用于简化高速缓存和存储器管理。这里,通过指定文件夹“包含”消息条目以及消息条目构成文件夹的“内容”来参考文件夹及其对应的消息条目。然而,应当理解,这些关系由相关的应用(在这个例子中是消息收发应用)来定义。当存储在消息存储60中时,文件夹条目是描述该文件夹以及指针集合的数据,该指针指向指定为属于该文件夹的消息的消息条目。
在所示的实施方式中,每个块都表示最多64K的消息数据。然而应当理解,块的最大大小可以改变,并将取决于高速缓存30的大小、块的写入和访问速度以及消息存储60的总大小。当消息存储60开始创建时,将会设置消息块的最大大小。此外,每个文件夹不会包含相同量的数据,因此虽然块具有相同的最大大小,但是文件夹的最后块经常小于预定最大大小。
图6示出了图5的消息存储的ISP_1服务文件夹66的文件夹的结构化列表140。列表140根据文件夹的访问频率以及最近访问时间来布置。高速缓存管理单元34记录列表140中每个文件夹的访问频率,因此列表140驻留在高速缓存管理单元34中。当在高速缓存30中访问文件夹时,高速缓存管理单元34便将对应的条目添加到对应于该文件夹的本地表中。在每个高速缓存条目访问之后,高速缓存管理单元比较每个文件夹的访问次数,并且相应地布置列表140。因此,列表140以访问次数的降序来表示图5数据存储部分的文件夹。在图6所示的列表中,文件夹的访问次数按照降序是:收件箱76、草稿箱80、已发送82和发件箱78。
图7示出了用于高速缓存30的索引表的模式。索引表包括多个条目150。每个条目150包括指向父文件夹152的名称的指针以及针对文件夹152的每个块的行154。每行包括指向最大ID 154、最小ID156和该块的对应条目158的指针。因此,每行与消息存储60中的消息数据条目的最小和最大标识号所标识的消息数据的块相关。消息条目根据其创建日期来编号,因此索引表的每行的条目将按照表中的创建日期来排序。
图8示出了应用于图5的收件箱文件夹76的图7的模式,并且对应于消息高速缓存30中的条目。高速缓存条目76包括:父对象76.2的名称,这里是标签“收件箱”;以及多个行,每行都对应于数据块。因此,块1在行76.4中具有条目;块2在行76.6中具有条目;以及块3在行76.8中具有条目。在此示例中,收件箱具有三个数据块。然而,只有对于父文件夹的大小超过预定大小的特定文件夹,才需要使用不止一个数据块。在此实施方式中,块具有64千字节大小。因此,针对任意特定文件夹,只要文件夹的孩子的条目大小总和超过64千字节,就会需要不止一个块用以在高速缓存中表示该文件夹的内容。
高速缓存30包括根据图7中所示模式的多个索引表(每个索引表对应于消息存储60的文件夹)。在文件夹的内容超过64千字节的情况下,该文件夹的内容将跨不止一个块。块根据其创建日期来编号和存储。在示出的实施方式中,根据块的编号(即,根据块的创建日期)将其添加到高速缓存以及从高速缓存删除。因此,高速缓存包括:根据访问次数布置的成员(即,文件夹),以及根据创建日期布置的成员(块)。在备选的布置中,前面提到的由高速缓存管理器保存的表还保存每个块的访问次数的记录,并且通过删除最不经常访问的块来管理高速缓存。
图9是示出本发明优选实施方式的管理数据高速缓存的操作方法的流程图。在框202中,高速缓存管理单元记录对文件夹以及该文件夹内容的所有块(如果可行)的访问。这对应于使用消息收发程序32的用户选择图3中所示文件夹46中的一个文件夹。作为此步骤的一部分,高速缓存管理单元34的列表140将被更新,以反映对该文件夹的访问。
过程继而进入框204,在此,高速缓存管理单元34确定被访问的文件夹以及该被访问文件夹的内容是否在高速缓存中。如果该文件夹及其内容在高速缓存中,则过程将在框216终止。
然而,如果文件夹及其内容没有在高速缓存中,则过程将进入框206,在此,使用GetChildren()函数来获取文件夹的内容。作为此获取的一部分,高速缓存管理单元34将确定存储文件夹及其内容所需的空间。在图9未示出的过程中,如果文件夹及其内容的大小超过高速缓存的大小,则过程将以错误终止。
在随后的框(框208),高速缓存管理单元34将确定高速缓存中是否存在足够的空间用于存储该文件夹及其内容。如果没有足够的空间,则过程进入框212,在此,通过从存储文件夹的存储器读取相关数据并且将此数据写入高速缓存30来将该文件夹添加到高速缓存。同时,创建针对该文件夹的索引表(如果先前没有创建的话),以及创建指向被写入索引块的该文件夹内容的块的指针。
如果高速缓存中没有足够的空间,则过程进入框210,在此在高速缓存中创建足够的空间用于容纳访问的文件夹及其内容。如上文参考图6所描述的,维护有指示高速缓存30中文件夹的访问次数的列表140。因此,如果高速缓存中需要附加空间,则高速缓存管理单元34将从高速缓存删除最少访问的文件夹的内容(参考列表140确定)。如果这没有向访问文件夹的内容提供足够的空间,则删除第二最少访问的文件夹,以此类推,直到高速缓存30中具有足够的空间。参考图7,删除文件夹是通过移除指向该文件夹的所有块的条目的指针(即,对于所有行,使索引表150的部分158为空)。如果被指定为删除的文件夹的任何内容由于另一应用的使用而被锁定因此不能删除,则高速缓存管理单元34将删除未被锁定的文件夹的内容部分。在这种情境下,高速缓存将存储被指定为从该高速缓存删除的文件夹的一部分。
如果在框208确定高速缓存中具有足够的空间,或者在框210通过删除高速缓存条目而创建了足够的空间,则过程将进入框212,在此,文件夹及其内容被添加到高速缓存。文件夹的一个或多个块的数据被写入高速缓存,并且创建或更新针对该高速缓存的索引表。过程继而终止在框216。在备选的实施方式中,如果高速缓存中可用的空间小于将要高速缓存的文件夹的大小,则高速缓存管理单元将写入大小适合可用高速缓存的文件夹内容。在这种情况中,根据文件夹块的创建日期(因为这是块的存储顺序)将文件夹的内容填写到高速缓存。
一旦以指定的方式填写了高速缓存30,该高速缓存30便以已知的方式来访问。例如,当访问文件夹(图9过程的框202)时,从高速缓存读取经访问文件夹的内容并将其组织到列表中,其中该列表由客户端应用指定。列表继而根据由客户端应用指定的标准来存储。例如,客户端应用可以请求收件箱76的消息的所有头部的列表,该列表根据接收的日期进行存储。继而从存储器读取块,即块1120、块2122和块3124(图5),并且将这些块中对应于消息头部的那些消息条目编入列表。该列表继而根据接收的日期进行排序。
在前面提到的实施方式中,通过根据文件夹的访问频率删除文件夹在高速缓存中创建空间。用于标识可替代高速缓存对象的其他标准在本领域是已知的,诸如最近最多使用的(MRU)、伪最近最少使用的(PLRU)、最不常使用的(LFU)等,并且任何已知算法都可以结合根据本发明实施方式的高速缓存来使用。
继而将会看到,高速缓存30根据由用户应用(诸如,上文讨论的消息收发程序32)定义的层级来组织和布置。因此,一旦访问了此应用的收件箱(或任意其他文件夹),便可将收件箱的内容拷贝到高速缓存,并且每个这样拷贝的条目的访问将会比其存储在易失性系统存储器14中的情况更加容易和快速。
此外,由于高速缓存30包括高速缓存对象(诸如,文件夹)和文件夹内容(诸如,消息块),当应用访问高速缓存对象时,该高速缓存对象的子对象(块)将被写入高速缓存。因此,访问那些子对象将会比必须从不操作为高速缓存的存储位置获取子对象要快得多。
应当理解,虽然本发明参考消息存储60和消息程序32进行了描述,但是本发明可以应用于根据相关来访问的任何关系数据。例如,本发明可以应用于数据库,其中数据存储为表或二叉树。此外,相关并非必须由用户应用进行定义。例如,将数据写入存储设备的应用可以定义相关。此外,相关可以由数据存储定义,在这种情况下,写入用户应用来利用包括层级的预定义结构。然而,在这种情况下,应当理解数据条目之间的层级由应用来定义,这是因为用户使用该应用来例如将消息归档到选定文件夹中。前面提到的实施方式应用于消息存储60的文件夹和消息层级。然而,应当理解,在需要的情况下,高速缓存反而可以针对服务和文件夹级实现。类似地,诸如上文描述的高速缓存可以针对任意其他数据实现,其中对应的数据包括该数据层级的指示。

Claims (32)

1.一种方法,包括:
(i)标识将要包括到高速缓存中的高速缓存对象,所述高速缓存对象存储在存储介质上;
(ii)标识与所述高速缓存对象相关的至少一个子对象;以及
(iii)在将所述高速缓存对象包括到所述高速缓存中时,将一个或多个已标识的所述子对象包括到所述高速缓存中。
2.根据权利要求1所述的方法,其中包括一个或多个所述子对象扩展为将每个所述子对象包括到所述高速缓存中。
3.根据权利要求1或权利要求2所述的方法,其中所述高速缓存对象和所述子对象借助于层级来相关。
4.根据任一在前权利要求所述的方法,其中所述高速缓存对象是所述子对象的持有者。
5.根据任一在前权利要求所述的方法,其中所述高速缓存对象包括一个或多个所述子对象。
6.根据任一在前权利要求所述的方法,其中所述子对象包括一个或多个相关的孙对象。
7.根据任一在前权利要求所述的方法,还包括:
根据高速缓存管理策略从所述高速缓存删除对象;以及
在从所述高速缓存删除高速缓存对象时,删除与所述高速缓存对象相关的一个或多个子对象。
8.根据任一在前权利要求所述的方法,其中所述高速缓存包括与所述高速缓存对象相关的不止一个子对象;并且其中所述子对象根据块来布置,每个所述块具有固定的地址范围。
9.根据任一在前权利要求所述的方法,其中所述子对象与所述相关高速缓存对象之间的相关由软件应用来建立。
10.根据权利要求9所述的方法,其中所述软件应用使用数据库,所述高速缓存对象是数据库表,并且所述子对象是数据库表条目。
11.根据权利要求9或权利要求10所述的方法,其中所述软件应用涉及发送、接收和编辑消息;并且其中所述高速缓存对象包括消息文件夹,并且所述子对象包括消息数据。
12.根据权利要求11所述的方法,其中标识将要包括到所述高速缓存的高速缓存对象包括:记录所述软件应用的用户对文件夹的访问。
13.根据任一在前权利要求所述的方法,其中所述子对象存储在所述存储介质上,所述存储介质与数据存储相关联。
14.根据任一在前权利要求所述的方法,其中所述存储介质可以通过以下一个或多个与所述高速缓存介质相区分:所述高速缓存介质具有比所述存储介质更快的访问时间;所述高速缓存介质具有比所述存储介质更快的数据读取时间;以及所述高速缓存介质具有比所述存储介质更快的数据写入时间。
15.根据权利要求14所述的方法,其中所述高速缓存介质与所述存储介质包含在相同设备中。
16.根据任一在前权利要求所述的方法,还包括:
在所述将所述高速缓存对象和所述子对象包括到所述高速缓存中期间,标识高速缓存溢出;
在所述高速缓存溢出发生时,标识可替代高速缓存对象,并且从所述高速缓存删除与所述可替代高速缓存对象相关联的一个或多个子对象或所述可替代高速缓存对象;以及
此后将所述高速缓存对象和所述子对象包括到所述高速缓存中。
17.根据权利要求16所述的方法,其中所述可替代高速缓存对象基于高速缓存对象的访问频率来标识。
18.根据权利要求17所述的方法,其中所述可替代高速缓存对象被标识为所述高速缓存的所有对象中最近最少使用的对象。
19.一种方法,包括:
(i)标识将要从高速缓存删除的高速缓存对象;
(ii)标识与所述高速缓存对象相关的至少一个子对象;以及
(iii)在删除所述高速缓存中的所述高速缓存对象时,从所述高速缓存删除一个或多个已标识的所述子对象。
20.一种用于存储多个对象的数据高速缓存,所述数据高速缓存包括至少一个高速缓存对象和至少一个子对象,其中所述子对象与所述高速缓存对象相关,并且所述高速缓存包括所述相关的指示。
21.根据权利要求20所述的数据高速缓存,还包括:包含在所述高速缓存中的所有高速缓存对象的列表。
22.根据权利要求21所述的数据高速缓存,其中所述列表根据所述高速缓存对象的访问频率来排序。
23.根据权利要求20至22任一项所述的数据高速缓存,其中所述子对象布置在块中,每个所述块具有预定地址范围。
24.根据权利要求23所述的数据高速缓存,其中每个块具有固定的地址范围。
25.根据权利要求20至24任一项所述的数据高速缓存,其中所述高速缓存对象与所述子对象之间的所述相关的所述指示包括与所述高速缓存对象相关联的表,所述表包括针对与所述高速缓存对象相关的每个子对象的条目。
26.根据权利要求20至25任一项所述的数据高速缓存,其中所述存储介质和所述高速缓存介质包含在单个设备中。
27.一种装置,包括根据权利要求20至25任一项所述的数据高速缓存。
28.一种数据高速缓存,包括多个高速缓存对象、彼此相关的所述高速缓存对象的子集,所述高速缓存适于存储、删除或替代所述高速缓存对象的所述子集,其中所述子集包括不止一个高速缓存对象,并且其中所述子集的所有成员都彼此相关。
29.根据权利要求28所述的数据高速缓存,其中所述子集的所述高速缓存对象通过作为相同父对象的子对象来彼此相关。
30.根据权利要求28或权利要求29所述的数据高速缓存,其中所述高速缓存适于在单个操作中寻址所述高速缓存对象的所述子集。
31.多个布置用于提供操作系统的软件应用,所述操作系统包括根据权利要求20至30任一项所述的数据高速缓存。
32.一种用于存储程序指令的可记录介质,所述指令适于提供根据权利要求20至30任一项所述的数据高速缓存。
CN2009801196261A 2008-04-24 2009-04-24 数据存储和访问 Pending CN102047231A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0807520A GB2459494A (en) 2008-04-24 2008-04-24 A method of managing a cache
GB0807520.2 2008-04-24
PCT/IB2009/005962 WO2009130614A1 (en) 2008-04-24 2009-04-24 Data storage and access

Publications (1)

Publication Number Publication Date
CN102047231A true CN102047231A (zh) 2011-05-04

Family

ID=39522518

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801196261A Pending CN102047231A (zh) 2008-04-24 2009-04-24 数据存储和访问

Country Status (5)

Country Link
US (1) US20110191544A1 (zh)
EP (1) EP2291747A1 (zh)
CN (1) CN102047231A (zh)
GB (1) GB2459494A (zh)
WO (1) WO2009130614A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678725A (zh) * 2013-09-11 2014-03-26 云巅(上海)网络科技有限公司 对象关系数据库中分层垃圾收集的方法、存储模块和系统
CN105978786A (zh) * 2016-04-19 2016-09-28 乐视控股(北京)有限公司 邮件存储方法和装置
CN114065001A (zh) * 2021-11-29 2022-02-18 百度在线网络技术(北京)有限公司 数据处理方法、装置、设备以及存储介质

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2195724B1 (en) 2007-08-28 2019-10-09 Commvault Systems, Inc. Power management of data processing resources, such as power adaptive management of data storage operations
US8285681B2 (en) 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
US9760658B2 (en) * 2009-10-08 2017-09-12 Oracle International Corporation Memory-mapped objects
US9262496B2 (en) 2012-03-30 2016-02-16 Commvault Systems, Inc. Unified access to personal data
US8950009B2 (en) 2012-03-30 2015-02-03 Commvault Systems, Inc. Information management of data associated with multiple cloud services
US10346259B2 (en) 2012-12-28 2019-07-09 Commvault Systems, Inc. Data recovery using a cloud-based remote data recovery center
CN103617199B (zh) * 2013-11-13 2016-08-17 北京京东尚科信息技术有限公司 一种操作数据的方法和系统
CN104679399B (zh) * 2013-12-02 2018-06-01 联想(北京)有限公司 一种信息处理的方法和电子设备
US11108858B2 (en) 2017-03-28 2021-08-31 Commvault Systems, Inc. Archiving mail servers via a simple mail transfer protocol (SMTP) server
US11074138B2 (en) 2017-03-29 2021-07-27 Commvault Systems, Inc. Multi-streaming backup operations for mailboxes
US11221939B2 (en) 2017-03-31 2022-01-11 Commvault Systems, Inc. Managing data from internet of things devices in a vehicle
US11294786B2 (en) 2017-03-31 2022-04-05 Commvault Systems, Inc. Management of internet of things devices
US10552294B2 (en) 2017-03-31 2020-02-04 Commvault Systems, Inc. Management of internet of things devices
US10891198B2 (en) 2018-07-30 2021-01-12 Commvault Systems, Inc. Storing data to cloud libraries in cloud native formats
JP2020071577A (ja) * 2018-10-30 2020-05-07 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
US10768971B2 (en) 2019-01-30 2020-09-08 Commvault Systems, Inc. Cross-hypervisor live mount of backed up virtual machine data
US11366723B2 (en) 2019-04-30 2022-06-21 Commvault Systems, Inc. Data storage management system for holistic protection and migration of serverless applications across multi-cloud computing environments
US11461184B2 (en) 2019-06-17 2022-10-04 Commvault Systems, Inc. Data storage management system for protecting cloud-based data including on-demand protection, recovery, and migration of databases-as-a-service and/or serverless database management systems
US20210011816A1 (en) 2019-07-10 2021-01-14 Commvault Systems, Inc. Preparing containerized applications for backup using a backup services container in a container-orchestration pod
US11467753B2 (en) 2020-02-14 2022-10-11 Commvault Systems, Inc. On-demand restore of virtual machine data
US11321188B2 (en) 2020-03-02 2022-05-03 Commvault Systems, Inc. Platform-agnostic containerized application data protection
US11422900B2 (en) 2020-03-02 2022-08-23 Commvault Systems, Inc. Platform-agnostic containerized application data protection
US11442768B2 (en) 2020-03-12 2022-09-13 Commvault Systems, Inc. Cross-hypervisor live recovery of virtual machines
US11500669B2 (en) 2020-05-15 2022-11-15 Commvault Systems, Inc. Live recovery of virtual machines in a public cloud computing environment
US11314687B2 (en) 2020-09-24 2022-04-26 Commvault Systems, Inc. Container data mover for migrating data between distributed data storage systems integrated with application orchestrators
US11604706B2 (en) 2021-02-02 2023-03-14 Commvault Systems, Inc. Back up and restore related data on different cloud storage tiers
US12032855B2 (en) 2021-08-06 2024-07-09 Commvault Systems, Inc. Using an application orchestrator computing environment for automatically scaled deployment of data protection resources needed for data in a production cluster distinct from the application orchestrator or in another application orchestrator computing environment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390318A (en) * 1990-06-29 1995-02-14 Digital Equipment Corporation Managing the fetching and replacement of cache entries associated with a file system
US5889993A (en) * 1996-10-15 1999-03-30 The Regents Of The University Of California Predictive event tracking method
US5890147A (en) * 1997-03-07 1999-03-30 Microsoft Corporation Scope testing of documents in a search engine using document to folder mapping
US6073137A (en) * 1997-10-31 2000-06-06 Microsoft Method for updating and displaying the hierarchy of a data store
US20030172236A1 (en) * 2002-03-07 2003-09-11 International Business Machines Corporation Methods and systems for distributed caching in presence of updates and in accordance with holding times
CN1656454A (zh) * 2002-03-29 2005-08-17 卓越技术公司 用于对数据处理设备与数据服务进行全无线同步的系统和方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956744A (en) * 1995-09-08 1999-09-21 Texas Instruments Incorporated Memory configuration cache with multilevel hierarchy least recently used cache entry replacement
US5924116A (en) * 1997-04-02 1999-07-13 International Business Machines Corporation Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node
US6070165A (en) * 1997-12-24 2000-05-30 Whitmore; Thomas John Method for managing and accessing relational data in a relational cache
US6671780B1 (en) * 2000-05-31 2003-12-30 Intel Corporation Modified least recently allocated cache replacement method and apparatus that allows skipping a least recently allocated cache block
US6760812B1 (en) * 2000-10-05 2004-07-06 International Business Machines Corporation System and method for coordinating state between networked caches
US7062756B2 (en) * 2001-11-30 2006-06-13 Sun Microsystems, Inc. Dynamic object usage pattern learning and efficient caching
GB2389201B (en) * 2002-05-29 2005-11-02 Flyingspark Ltd Methods and system for using caches
US20050060307A1 (en) * 2003-09-12 2005-03-17 International Business Machines Corporation System, method, and service for datatype caching, resolving, and escalating an SQL template with references
US9317432B2 (en) * 2008-01-09 2016-04-19 International Business Machines Corporation Methods and systems for consistently replicating data

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390318A (en) * 1990-06-29 1995-02-14 Digital Equipment Corporation Managing the fetching and replacement of cache entries associated with a file system
US5889993A (en) * 1996-10-15 1999-03-30 The Regents Of The University Of California Predictive event tracking method
US5890147A (en) * 1997-03-07 1999-03-30 Microsoft Corporation Scope testing of documents in a search engine using document to folder mapping
US6073137A (en) * 1997-10-31 2000-06-06 Microsoft Method for updating and displaying the hierarchy of a data store
US20030172236A1 (en) * 2002-03-07 2003-09-11 International Business Machines Corporation Methods and systems for distributed caching in presence of updates and in accordance with holding times
CN1656454A (zh) * 2002-03-29 2005-08-17 卓越技术公司 用于对数据处理设备与数据服务进行全无线同步的系统和方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678725A (zh) * 2013-09-11 2014-03-26 云巅(上海)网络科技有限公司 对象关系数据库中分层垃圾收集的方法、存储模块和系统
WO2015036890A1 (en) * 2013-09-11 2015-03-19 Owtware Holdings Limited, BVI Hierarchical garbage collection in an object-relational database system
US9367449B2 (en) 2013-09-11 2016-06-14 Owtware Holdings Limited, BVI Hierarchical garbage collection in an object relational database system
CN103678725B (zh) * 2013-09-11 2017-01-11 云巅(上海)网络科技有限公司 对象关系数据库中分层垃圾收集的方法、存储模块和系统
CN105978786A (zh) * 2016-04-19 2016-09-28 乐视控股(北京)有限公司 邮件存储方法和装置
CN114065001A (zh) * 2021-11-29 2022-02-18 百度在线网络技术(北京)有限公司 数据处理方法、装置、设备以及存储介质

Also Published As

Publication number Publication date
WO2009130614A1 (en) 2009-10-29
US20110191544A1 (en) 2011-08-04
GB2459494A (en) 2009-10-28
EP2291747A1 (en) 2011-03-09
GB0807520D0 (en) 2008-06-04

Similar Documents

Publication Publication Date Title
CN102047231A (zh) 数据存储和访问
US9110568B2 (en) Browser tab management
US7590722B2 (en) Apparatus and methods for managing data used by a mobile device
US7343152B1 (en) Method and apparatus for reducing bandwidth use in a portable device
CN103377137B (zh) 使用增强的频繁块检测进行存储去重的方法和系统
US9160694B2 (en) Email management method, apparatus and terminal device
CN100456311C (zh) 用于实施基于内容的文件系统安全性的系统和方法
CA2449753A1 (en) System and method for progressive and hierarchical caching
CA2412318A1 (en) Method and apparatus for efficient management of xml documents
JP2008538627A (ja) ローカル・サムネイル・キャッシュ
KR20080104337A (ko) 플래시 컴포넌트 질의 시스템, 플래시 컴포넌트 질의 방법,및 플래시 드라이버
CN110096334A (zh) 缓存处理方法、装置、设备及计算机可读存储介质
CN111124411A (zh) 一种基于动态页面对表格进行个性化设置的方法及系统
CN101217449B (zh) 远程调用管理方法
US20020035643A1 (en) Search support device and method, and recording medium storing program for computer to carry out operation with said search support device
CN102542036B (zh) 使用优化的表
WO2005101874A1 (en) A method for providing mobile communication device with personal webpage contents and a system thereof
CN101576854A (zh) 文件访问的方法、装置及系统
CN110362776A (zh) 浏览器前端数据存储方法、装置、设备及可读存储介质
CN100461176C (zh) 基于对象存储库的对象引用方法
JPH07500441A (ja) バッファ・メモリ管理方法,及び該方法を実施するためのコンピュータシステム
CN117290395A (zh) 优惠券库存管理方法、装置、存储介质及处理器
US8533398B2 (en) Combination based LRU caching
CN116991761A (zh) 一种数据处理方法、装置、计算机设备及存储介质
JP2011059919A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110504