CN102227717A - 用于数据储存和访问的方法和设备 - Google Patents
用于数据储存和访问的方法和设备 Download PDFInfo
- Publication number
- CN102227717A CN102227717A CN200980147734XA CN200980147734A CN102227717A CN 102227717 A CN102227717 A CN 102227717A CN 200980147734X A CN200980147734X A CN 200980147734XA CN 200980147734 A CN200980147734 A CN 200980147734A CN 102227717 A CN102227717 A CN 102227717A
- Authority
- CN
- China
- Prior art keywords
- reservoir
- inquiry
- data
- difference
- storage
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 56
- 238000013500 data storage Methods 0.000 title 1
- 238000004590 computer program Methods 0.000 claims description 24
- 230000008859 change Effects 0.000 claims description 20
- 238000004513 sizing Methods 0.000 claims description 10
- 238000005192 partition Methods 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 abstract 1
- 230000015654 memory Effects 0.000 description 67
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- 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
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
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)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种查询高速缓存存储查询和查询的对应结果,查询的结果是从主要储存器获得的。差异储存器存储指向主要储存器的如下数据的指针,该数据已经改变并且影响存储于查询储存器中的查询的结果。新查询可以通过如下操作来满足:访问查询储存器中的对应查询并且通过参照差异储存器来确定主要储存器中与查询有关的数据是否已经由于查询储存器被编辑而改变,并且如果适用则通过访问主要储存器中的对应数据来完成新查询。可以根据标记对差异储存器中的数据进行布置和分区。可以根据预定规则变化分区。
Description
技术领域
本发明的示例实施方式涉及数据储存和访问领域。本发明的某些实施方式涉及数据高速缓存领域,并且具体地涉及用于存储计算结果的高速缓存。
发明内容
本发明的示例实施方式涉及一种方法,该方法包括:
在查询储存器中存储查询和从主要储存器获得的与所述查询有关的结果;以及
在差异储存器中存储对所述主要储存器的数据已经改变的指示。
该方法还可以包括在所述差异储存器中存储与所述存储的查询和与所述存储的结果有关的数据。
在所述差异储存器中存储对所述主要储存器的数据已经改变的指示可以包括在所述差异储存器中存储指向所述主要储存器的指针。
该方法还可以包括通过从所述查询储存器和从所述差异储存器取回数据来服务于所述接收的查询。
所述差异储存器可以被配置成存储对所述主要储存器的内容的改变。
差异储存器可以适于将数据和与所述数据对应的标记一起存储。
标记可以标识数据类型,并且所述方法还可以包括在所述差异储存器中存储多于一个数据类型,并且在这一实例中,可以对差异储存器进行分区,各分区容纳所述标记的值不同的数据。
一个或者多个分区可以具有预定大小。
一个或者多个所述分区的大小可以是动态可变的。
分区数目可以是动态可变的。
主要储存器可以用第一储存类型存储而所述查询储存器和所述差异储存器可以用第二储存类型存储,所述第二储存类型具有比所述第一储存类型更快的访问时间。
该方法还可以包括参照存储于差异储存器中的数据来更新查询储存器的内容。
可以在差异储存器的大小超过预定大小时执行更新。
可以在预定时间之后执行更新。
可以参照所述差异储存器空闲的时间段来确定预定时间。
本发明的其他示例实施方式扩展至一种设备,该设备包括:
处理器,
存储器,布置成主要储存器、查询储存器和差异储存器;
所述存储器包括计算机程序代码,
存储器和计算机程序代码被配置成用处理器使设备至少执行:
在查询储存器中存储查询和从主要储存器获得的与查询有关的结果;以及
在差异储存器中存储对所述主要储存器的数据已经改变的指示。
该设备还可以执行:在所述差异储存器中存储与所述存储的查询和与所述存储的结果有关的数据。
在所述差异储存器中存储对所述主要储存器的数据已经改变的指示可以包括在所述差异储存器中存储指向所述主要储存器的指针。
该设备还可以执行:通过从所述查询储存器和从所述差异储存器取回数据来服务于所述接收的查询。
所述差异储存器可以被配置成存储对所述主要储存器的内容的改变。
差异储存器可以适于将数据和与所述数据对应的标记一起存储。
标记可以标识数据类型,并且所述设备还可以执行:在所述差异储存器中存储多于一个数据类型,并且在这一实例中,可以对差异储存器进行分区,各分区容纳所述标记的值不同的数据。
一个或者多个分区可以具有预定大小。
一个或者多个所述分区的大小是动态可变的。
分区数目可以是动态可变的。
主要储存器可以用第一储存类型存储而所述查询储存器和所述差异储存器可以用第二储存类型存储,所述第二储存类型具有比所述第一储存类型更快的访问时间。
该设备还可以执行:参照存储于差异储存器中的数据来更新查询储存器的内容。
可以在差异储存器的大小超过预定大小时执行更新。
可以在预定时间之后执行更新。
可以参照所述差异储存器空闲的时间段来确定预定时间。
本发明的其他示例实施方式扩展至一种包括计算机可读介质的计算机程序产品,该计算机可读介质承载体现于其中的用于与计算机一起使用的计算机程序代码,该计算机程序代码包括:
用于在查询储存器中存储查询和从主要储存器获得的与所述查询有关的结果的代码;以及
用于在差异储存器中存储对所述主要储存器的数据已经改变的指示的代码。
该计算机程序产品还可以包括用于执行前述方法的代码。
本发明的其他示例实施方式扩展至一种计算机程序,该计算机程序包括:
用于在查询储存器中存储查询和从主要储存器获得的与所述查询有关的结果的代码;以及
用于在差异储存器中存储对所述主要储存器的数据已经改变的指示的代码。
该计算机程序还可以包括用于执行前述方法的代码。
该计算机程序可以是包括计算机可读介质的计算机程序产品,该计算机可读介质承载体现于其上的用于与计算机一起使用的计算机程序代码。
本发明的其他示例实施方式扩展至一种方法,该方法包括:
在查询储存器中存储查询和与所述查询有关的结果,所述结果基于存储于主要储存器中的数据来计算;
在检测到存储于所述主要储存器中的对存储于所述主要储存器中的一个或者多个结果有影响的数据改变时,在差异储存器中存储对已经影响所述一个或者多个结果的指示而不重新计算影响的所述一个或者多个结果。
所述差异储存器中的各指示可以与所述差异储存器中的对应结果有关。
本发明的其他示例实施方式扩展至维护如这里描述的差异储存器。
可以在预定时间之后执行更新。预定时间可以是差异储存器空闲的时间段。
附图说明
下文参照以下附图描述本发明的示例实施方式:
图1是本发明的一个实施方式已经实施于其中的移动计算设备的示意图;
图2是图1的移动计算设备的硬件组件的示意图;
图3是代表图1的移动计算设备的各个方面的框图;
图4是根据本发明一个实施方式的储存系统的框图;
图5是图4的储存系统的查询储存器的列表表示;
图6是图示了本发明一个实施方式的过程图;
图7是根据又一实施方式的查询储存器的列表表示;
图8是根据又一实施方式的差异储存器的列表表示;
图9是根据又一实施方式的查询储存器的框图;
图10是本发明又一实施方式的过程图;以及
图11是本发明又一实施方式的过程图。
具体实施方式
图1是具有壳12的移动计算设备10的示意图。壳12封装小键盘14、屏幕16、扬声器18和麦克风20。设备10还包括天线22。图1中所示移动计算设备10可以作为电话来工作,并且在这一实例中经由天线22发送和接收电信信号。
图2是示出了图1的设备10的某些硬件组件的布置的示意图。这一实施方式的小键盘14、显示器16、扬声器18和麦克风20连接到系统总线42。这一实施方式的总线42还连接到应用处理器24、基带处理器26、数字信号处理器(DSP)38、发送器28、接收器30和电池40。这一实施方式的发送器28和接收器30连接到天线22。这一实施方式的总线42还连接到存储器控制器32,该存储器控制器又连接到易失性存储器34和非易失性存储器36。这一实施方式的应用处理器24处理与运行于设备10上并且提供设备10的各种功能的各种软件模块和操作系统软件有关的指令。这一实施方式的基带处理器26与通信功能连接并且为此控制电话栈并且与发送器28和接收器30通信以借助天线22建立通信。在一个替代实施方式中,可以在单个处理器上提供设备10的各种处理元件如应用处理器24和基带处理器26。
这一实施方式的存储器控制器32控制对易失性存储器34和非易失性存储器36的访问,以及与易失性存储器34和非易失性存储器36的交互。这一实施方式的应用处理器24能够与各种硬件元件以及存储器控制器32通信,并且由此根据存储于易失性存储器34或者非易失性存储器36上的软件指令来控制各种硬件元件的操作。
在图2中图示了仅单个总线(总线42)。将认识到这一总线可以在其他示例实施方式中替换为两个或者更多总线,并且图2的拓扑将相应变化。另外,已知计算设备还包括除了图2中所示硬件组件之外的硬件组件,但是这些在本领域中已知并且这里未进一步加以描述或者图示。
图3是图示了设备10的各种硬件和软件组件的图。可以用各种方式对这一实施方式的设备10上操作的软件进行分类。某些软件操作用于管理各种硬件组件提供的资源并且建立其他软件在其中执行的操作环境。这一软件称为这一实施方式的设备的操作系统并且在图3中由内核42表示。这一实施方式的内核42与如先前所述连接到易失性存储器34和非易失性存储器36的存储器控制器32交互。这一实施方式的内核42还连接到多个用户程序44,各用户程序可以用内核42规定的方式访问硬件组件。这一实施方式的内核42还借助设备驱动器46连接到小键盘14、借助设备驱动器47连接到扬声器18以及借助设备驱动器48连接到显示器16。这一实施方式的仅仅某些硬件组件已被图示,但是一般而言,内核42通过各种设备驱动器控制这一实施方式的设备10的硬件资源。另外,虽然已经将这一实施方式的设备驱动器图示为与内核42分离,但是有可能在其他示例实施方式中让它们并入内核42中。
图3的软件组件由虚线区41界定。然而,在软件与硬件之间的这一区分并不是必要的。在图3中描绘为软件的组件可以在其他示例实施方式中表现为硬件,而描绘为硬件的组件可以在其他示例实施方式中表现为软件。另外,其他示例实施方式的一些组件可以具有软件部分以及硬件部分。
在操作这一实施方式的设备期间,存储于非易失性存储器36中的软件指令建立内核42、用户程序44以及设备驱动器46、47和48。通过使用图3中所示各种组件,用户能够根据由各种用户程序44提供的功能来利用这一实施方式的设备10。例如,用户使用这一实施方式的小键盘14以借助设备驱动器46来与内核42通信以使用户程序44之一借助存储器控制器32访问存储于非易失性存储器36上的数据。这一实施方式的内核42然后使存储器控制器32供应的数据与用户程序供应的指令一起发送到应用处理器24(图2)。这一实施方式的应用处理器24将根据数据和指令来返回结果(在该过程中一般利用易失性存储器34),并且内核42将向用户程序返回这些结果。按照来自这一实施方式的用户程序的更多指令,内核42将借助设备驱动器48使结果在显示器16上显示给用户。
仅通过示例呈现图1、图2和图3的图示。本发明的示例实施方式可以在其上操作的已知设备可以包括比所示组件更多或者更少的组件。本发明的示例实施方式的实施并不依赖于图1、图2和图3中所示组件的精确布置和配置。因此,可以替换功能类似的其他组件并且向其添加更多组件或者从中省略所示组件而不影响本发明某些实施方式的操作。
图4是本发明一个示例实施方式的框图并且图示了图1至图3中所示移动计算设备的储存系统148。在这一示例中,储存系统148包括连接到易失性存储器24和非易失性存储器36的存储器控制器32。这一实施方式的非易失性存储器36充当用于这一实施方式的设备的主要长期储存。这一实施方式的存储器控制器32还连接到包括查询储存器140和差异储存器42的高速缓存130。在这一实施方式中,高速缓存130实施于易失性存储器34中。在其他示例实施方式中,高速缓存130可以实施于独立储存中或者实施为易失性储存器34的一部分。提供用于存储差异和/或查询储存器的更快高速缓存存储器可以添加明显速度优点。对差异储存器进行分割(见下文)的优点在差异储存器存储于高速缓存中时特别恰当,因为这些存储器虽然比长期储存更快但是经常明显更小。这一实施方式的存储器控制器32控制对易失性存储器34以及对查询储存器140和差异储存器142的读和写访问。在这一实施方式中,非易失性存储器34充当主要存储器储存器。
图5以列表格式图示了这一实施方式的查询储存器140。在这一视图中,这一实施方式的查询储存器140包括两列,查询列152和查询结果列150。在这一实施方式中,在查询列152中存储多个查询:查询1 154、查询2 156、查询3 158、…、查询N 160。在这一实施方式的查询结果列150中存储多个结果:结果1 162、结果2 164、结果3 168、…、结果N 168。在这一实施方式的查询结果列150中存储的结果对应于查询列152中存储的查询。
在这一实施方式中,存储器控制器32在适当用户程序如邮件用户程序的指引之下编辑这一实施方式的查询储存器140。当这一实施方式的用户程序执行依赖于非易失性存储器34上存储的数据的查询时,计算出结果并且向用户程序返回结果。存储器控制器32将查询的备份与对应结果一起存储于查询储存器40中,从而获得用于这一示例的所示布置。
由于查询储存器140在这一示例实施方式中位于高速缓存130中,所以可以比非易失性储存器36中的数据更快地访问查询储存器140中的数据。另外,如果重复查询则无需重新计算查询的结果,因为在这一实施方式中可以从查询储存器140直接读取结果。然而,当查询储存器中的结果所基于的数据改变时,以前有必要使查询储存器140中的对应条目无效并且将这替换为基于非易失性存储器36中的改变数据的重新计算结果。
为了避免这样,本发明的某些实施方式提供也存储于图4的高速缓存130中的差异储存器142。这一实施方式的差异储存器142包括指向非易失性存储器36的地址的指针集,其中由于查询储存器140被编辑,所以在那些地址处的数据已经改变。差异储存器142由存储器控制器32管理,该控制器在这一示例实施方式中确定非易失性存储器36中的与存储的查询相关的数据是否改变并且在差异储存器142中存储如下指针,该指针指向改变的数据的地址。下文描述存储器控制器32在这一示例实施方式中控制查询储存器140和差异储存器142的方式的更多方面。通过存储如下指针,该指针指向这一实施方式的主要储存器的数据,差异储存器比如果它存储主要储存器的数据副本时它将有的大小明显更小。另外通过存储指针(比如地址),可以容易找到和访问这一实施方式的主要储存器上的对应数据。
图6是本发明一个示例实施方式的过程图并且图示了如何用图4和图5中所示的布置服务于新的接收查询。在这一实施方式的块170处接收查询。在前述示例实施方式中,将从用户应用接收这一查询(尽管查询的源头对于本发明的目的而言并不重要并且其他实施方式在例如存储器控制器32生成的查询方面适用)。在这一实施方式的后继块(块172)处,存储器控制器32确定查询是否存在于查询储存器140中。在这一实施方式中,这通过在查询列152之下存储的查询中搜寻其中与接收的查询对应的条目来完成。
如果与接收的查询对应的查询存在于查询储存器140中,则这一实施方式的过程继续到块176,其中存储器控制器确定差异储存器是否存在。如果差异储存器不存在,则这一实施方式的过程继续到块184,其中向客户机返回查询的结果。这通过以常规方式用存储于这一实施方式的非易失性存储器36中的数据满足查询来完成。然而,如果差异储存器确实存在,则这一实施方式的过程从块176继续到这一实施方式中的块178,其中这一实施方式的存储器控制器32确定非易失性存储器36中的被差异储存器中的条目引用的数据是否满足接收的查询。
如果差异储存器引用的数据与接收的查询匹配,则这一实施方式的过程继续到块182,其中查询储存器被更新。在这一示例实施方式中,存储器控制器32针对与接收的查询对应的行将存储于列150中的结果数据替换或者更新为非易失性存储器36中的被差异储存器142引用的改变数据从而更新查询储存器140。一旦对查询储存器的这一更新已经出现,则该过程在这一示例实施方式中将继续到块184,其中向发起接收的查询的用户应用返回针对接收的查询的结果。由于查询储存器已被更新,所以这一实施方式的存储器控制器32将在这一实例中从查询储存器140直接读取所需结果。
如果差异储存器引用的数据与接收的查询不匹配,则这一示例实施方式的过程将从块178继续到块184并且将从查询储存器满足接收的查询。在这一实例中,将已经确定并无针对主要储存器的更新影响接收的查询的结果。
回到块172,如果在查询储存器140中没有与接收的查询对应的查询,则这一示例实施方式的过程将继续到块174,其中根据存储于非易失性存储器36中的数据计算这一查询的结果。一旦这已经完成,则在块180中将用与接收的查询和计算的结果对应的新条目更新这一实施方式的查询高速缓存。然后在这一实施方式的块184中向这一示例实施方式的用户应用报告结果。
可以用不同类型的数据以及不同的对应查询和结果实施本发明的示例实施方式。由于上述实施方式的差异储存器142包含如下指针、这些指针指向非易失性存储器36中的由于编辑查询储存器140而已经改变的数据这一事实,可以用明显更少指令满足接收的查询,其中非易失性存储器36中的与该查询有关的数据已经改变。在一种先前已知布置中,在非易失性存储器36中的数据已经改变时将有必要重新计算整个查询或者搜寻非易失性存储器36上的已经改变的数据。然而,在本发明示例实施方式的布置之下,存储器控制器32可以快速标识需要重新计算的那些查询并且在非易失性存储器36上找到与该查询有关的相关数据。本发明的实施方式因此提供一种用于查询和对应结果的储存系统,其中当结果所基于的数据改变时能够通过访问主要储存器的已经改变的那些部分来更新查询。由于仅需访问对主要储存器的改变以更新结果,所以在与一种必须重新计算整个条目或者必须搜索整个主要储存器以确定数据是否已经改变的系统相比时这一实施方式的计算和存储器访问明显减少。因此本发明的示例实施方式能够用比先前情况更少的计算和存储器访问周期基于改变的数据满足高速缓存的查询。
图7、图8和图9图示了适用于消息收发信息的本发明又一示例实施方式的方面。图4中所示的示例实施方式也可以适用于这一实施方式。在这一实施方式中,考虑消息收发储存器取代非易失性储存器36。然而消息收发储存器将包含于更大存储器储存器内并且就这一点而言的不同对于本发明示例实施方式的操作而言无关紧要。
如图7中所示,根据本发明这一实施方式的查询储存器200可以包括三列:查询列202、查询结果列204和服务类型列106。在这一实施方式的查询列102中存储五个查询:查询1 208、查询2 210、查询3 212、查询4 214和查询5 216。在这一实施方式的查询结果列204中存储以下结果:结果1 218、结果2 220、结果3 222、结果4 224和结果5 226。在这一示例实施方式中存储的查询和结果在功能上类似于上文参照图5描述的查询储存器140。图7的示例实施方式的查询储存器200不同之处在于:它包括服务类型列,其中存储对查询的服务的指示。在这一实施方式中有三项服务:服务A、服务B和服务C。查询1如在条目228中反映的那样为类型服务A,查询2如在条目230中反映的那样为服务类型B,查询3如在查询232中反映的那样为服务类型A,查询4如在条目234中反映的那样为服务类型B,而查询5如在条目236中表明的那样为服务类型C。在这一实施方式中,服务对应于消息收发类型。因此例如服务类型A可以对应于SMS消息、服务类型B对应于电子邮件消息而服务类型CMMS消息。将认识到本发明不限于此并且服务类型列可以用来存储可以用来对查询进行分组的其他信息、比如任何标记(这将依赖于那些查询涉及的数据类型)。标记可以取多个值。用于数据的标记允许储存系统通过根据所述标记的所述值对差异储存器的内容进行分类来快速找到数据。可以使用多个标记。
由于这一实施方式的数据涉及消息收发,所以查询储存器200的查询和对应结果将涉及消息收发。例如,查询1可以是对显示指定发送者发送的所有电子邮件消息(即这一示例中的服务类型B)的请求。对应结果(结果1)然后将包含该发送者已经发送的所有电子邮件消息的列表。然而将理解本发明并不依赖于查询类型或者涉及的数据类型。
图8图示了用于本发明这一实施方式的差异储存器250。这一实施方式的差异储存器250包括数据列252和服务类型列253。数据列252存储指向消息收发储存器的指针。差异储存器250包括五个指针:指针1 256、指针2 258、指针3 260、指针4 262和指针5 266。这一实施方式的各指针包括主要储存器上已经改变的数据的地址。这一实施方式的差异储存器250与图4中所示差异储存器142不同之处在于:它包括附加列(列254),该列包括服务类型,该列存储对如下服务类型的指示,该服务类型对应于数据列252之下存储的指针所指向的在消息收发储存器中的数据。因此如图8中所示,指针1为服务A这一类型268,指针2为服务B这一类型270,指针3为服务C这一类型272,指针4为服务B这一类型274,而指针5为服务B这一类型278。
在一个替代实施方式中,差异储存器和查询储存器均存储用于各条目的时间戳,从而可以通过比较查询储存器的条目的时间戳与差异储存器的查询的时间戳来确定查询差异储存器中的条目是否与查询储存器的特定查询相关。这避免需要引用在计算查询储存器中的接收查询之前出现的对主要储存器的数据的改变。
图7和图8的实施方式将以与上文参照图6描述的方式相同的方式操作。然而当在这一示例实施方式中在块170中接收查询时,存储器控制器32将从客户机应用(在这一情况下可以是消息收发应用)接收针对该查询的服务类型。因此,在这一实施方式的块172和178中,当主要控制器32对查询储存器200和差异储存器250进行查询时,它将仅查询与接收的查询的服务对应的那些条目。这有助于减少待查询的条目的数目,因此潜在地提高整个过程的速度。
另外,在这一示例实施方式中,当更新差异储存器和查询储存器(对应于块180)时,这些储存器中的数据包括对对应服务的指示以保证将来一致。一般而言,标记可以涉及针对数据的服务类型。
图9是图8的差异储存器250的替代表示。如图9中所示,这一实施方式的差异储存器250分区成三个分区280、282和284。三个分区对应于差异储存器250中存储的三个服务类型。分区280对应于服务类型A,分区282对应于服务类型B,而分区284对应于服务类型C。在所示示例实施方式中,分区280、282和284大小相等,并且与服务A对应的所有行条目(在图8的表示中)存储于分区280中,与服务B对应的那些条目存储于分区282中,而与服务C对应的那些条目存储于分区284中。通过根据标记的值对差异储存器进行分区来改进在找到这一实施方式的差异储存器中的数据时的所需时间和涉及到的计算。用于分区的预定大小具有相对易于实施和维护的优点。
这一实施方式的各分区180、182和184对应于差异储存器150的地址块。因此当这一实施方式的存储器控制器32查询差异储存器时仅有必要在对应分区中搜寻接收的查询的服务类型。因此在这一示例实施方式中不必让存储器控制器32在访问这一储存器时对查询储存器250中的各条目进行查询。这大量提高存储器控制器可以访问差异储存器150中的数据的速度。
虽然图8中所示布置示出了大小相同的三个分区,但是其他分组和部分大小设定是可能的。根据适当的服务类型(或者任何用来界定查询储存器中的条目的其他标记),可以实施多于或者少于三个分区。另外不必让分区具有相等大小。取而代之,如果已知某些服务可能比其他服务需要更多空间,则可以相应地布置分区。
在一个示例实施方式中,可以动态地布置分区以适应变化的要求。这有助于避免浪费如下储存,该储存在差异储存器150存储于小而快的存储器中的情况下释放宝贵资源。通过动态变化分区的大小,可以适应针对与标记的不同值有关的数据的可变存储要求,并且可以更高效使用可用于存储差异储存器的空间。
通过动态变化分区数目,本发明的实施方式能够在差异储存器中容纳标记值数目可变的数据。这提供高效使用可用于存储差异储存器的空间。
然而将认识到差异储存器150的分区并非必需并且图7和图8中所示查询和差异储存器的前述布置导致如下结果:即,针对在未使用分区的实施方式的储存器中的平均查询而言,执行的周期数目减少。
根据图6的实施方式的前述操作以及与图7、图8和图9的实施方式有关的对应讨论将认识到某些实施方式的差异储存器将随时间变得越来越大。一般而言,差异储存器的大小受限于它驻留于其上的储存介质、具体在储存介质是用作RAM的小而快的存储类型的情况下如此。在又一实施方式中,提供用来刷新或者删除差异储存器的过程。在刷新之前,希望在删除差异储存器中的条目之前向查询储存器中并入对差异储存器表示的系统存储器的改变。这可能是处理器密集的过程,因此针对特定时间调度差异储存器的刷新是有利的。
图10图示了根据一个示例实施方式的用于刷新差异高速缓存的过程。在块300处,存储器控制器32确定差异储存器空闲的时间段(差异储存器未被访问的时间段)。在302处,这一实施方式的存储器控制器32比较计算的差异储存器的空闲时间与预定限制。如果空闲时间超过限制,则这一实施方式的过程继续到块304,其中刷新差异高速缓存。在预定时间之后执行这一更新将增加更新过程(其可能是处理器密集的)对差异储存器的正常操作无干扰的可能性。
然而,如果空闲时间未超过预定限制,则这一实施方式的过程返回到这一实施方式中的块300。
图11图示了用于刷新差异储存器的替代过程。在块310处,这一实施方式的存储器控制器32确定差异高速缓存的大小。在这一实施方式的块312处,存储器控制器32比较确定的大小与预定限制。如果大小超过设置的限制,则该过程继续到块314,其中刷新这一实施方式的差异高速缓存。在差异储存器超过预定大小时刷新差异高速缓存(或者更新查询储存器的内容)有助于保证差异储存器未达到将对搜索差异储存器的时间有不可接受的影响的大小,并且保证差异储存器中的数据不被破坏(如果储存器超过最大大小则可能出现破坏)。例如可以在差异储存器充满75%时执行更新过程。然而,如果差异高速缓存的大小未超过设置的限制,则该过程返回到块301。
将认识到图10和图11的过程并不互斥而是可以相互结合使用。在任一情况下,此类实施方式的差异高速缓存的刷新可以涉及更新查询储存器中的如下查询,针对这些查询,差异高速缓存中的条目表明对非易失性存储器36的改变将具有影响。
在某些实施方式中,可以参照存储于差异储存器中的数据更新查询储存器的内容。例如,可以通过重新计算查询储存器的查询(差异储存器表明这些查询已经改变)来适配差异储存器。本发明的实施方式由此保证仅在系统需要与查询对应的计算结果时更新查询储存器。这比每当结果所基于的数据改变时就更新该结果更高效和快速。在一个替代实施方式中,同时刷新查询储存器和差异储存器的内容。这在处理器忙碌得无法用差异储存器的内容更新查询储存器的情况下是有利的。
本领域技术人员将理解替代实施方式是可能的并且可以在如所附权利要求书限定的本发明范围内进行对这里描述的方法和实施方式的各种修改。也应当注意可以在本发明的不同实施方式中组合或者省略这里描述的特征和过程要素的任何组合。
Claims (35)
1.一种方法,包括:
在查询储存器中存储查询和从主要储存器获得的与所述查询有关的结果;以及
在差异储存器中存储对所述主要储存器的数据已经改变的指示。
2.根据权利要求1所述的方法,还包括在所述差异储存器中存储与所述存储的查询和与所述存储的结果有关的数据。
3.根据权利要求1或者2所述的方法,其中在所述差异储存器中存储对所述主要储存器的数据已经改变的指示包括在所述差异储存器中存储指向所述主要储存器的指针。
4.根据权利要求3所述的方法,还包括通过从所述查询储存器和从所述差异储存器取回数据来服务于所述接收的查询。
5.根据任一项前述权利要求所述的方法,其中所述差异储存器被配置成存储对所述主要储存器的内容的改变。
6.根据权利要求7所述的方法,其中所述差异储存器适于将数据和与所述数据对应的标记一起存储。
7.根据权利要求6所述的方法,其中所述标记标识数据类型,所述方法还包括在所述差异储存器中存储多于一个数据类型,其中对所述差异储存器进行分区,各分区容纳所述标记的值不同的数据。
8.根据权利要求7所述的方法,其中一个或者多个所述分区具有预定大小。
9.根据权利要求7或者8所述的方法,其中一个或者多个所述分区的大小是动态可变的。
10.根据权利要求7至9中的任一项权利要求所述的方法,其中分区数目是动态可变的。
11.根据任一项前述权利要求所述的方法,其中所述主要储存器用第一储存类型存储而所述查询储存器和所述差异储存器用第二储存类型存储,所述第二储存类型具有比所述第一储存类型更快的访问时间。
12.根据任一项前述权利要求所述的方法,还包括参照存储于所述差异储存器中的数据来更新所述查询储存器的内容。
13.根据权利要求12所述的方法,其中在所述差异储存器的大小超过预定大小时执行所述更新。
14.根据权利要求12或者13所述的方法,其中在预定时间之后执行所述更新。
15.根据权利要求14所述的方法,其中参照所述差异储存器空闲的时间段来确定所述预定时间。
16.一种设备,包括:
处理器,
存储器,被布置成主要储存器、查询储存器和差异储存器;
所述存储器包括计算机程序代码,
所述存储器和所述计算机程序代码被配置成用所述处理器使所述设备至少执行:
在所述查询储存器中存储查询和从所述主要储存器获得的与所述查询有关的结果;以及
在所述差异储存器中存储对所述主要储存器的数据已经改变的指示。
17.根据权利要求16所述的设备,还执行:在所述差异储存器中存储与所述存储的查询和与所述存储的结果有关的数据。
18.根据权利要求16或者17所述的设备,其中在所述差异储存器中存储对所述主要储存器的数据已经改变的指示包括在所述差异储存器中存储指向所述主要储存器的指针。
19.根据权利要求18所述的设备,还执行:通过从所述查询储存器和从所述差异储存器取回数据来服务于所述接收的查询。
20.根据权利要求16至19中的任一项权利要求所述的设备,其中所述差异储存器被配置成存储对所述主要储存器的内容的改变。
21.根据权利要求20所述的设备,其中所述差异储存器适于将数据和与所述数据对应的标记一起存储。
22.根据权利要求21所述的设备,其中所述标记标识数据类型,所述设备还执行:在所述差异储存器中存储多于一个数据类型,其中对所述差异储存器进行分区,各分区容纳所述标记的值不同的数据。
23.根据权利要求22所述的设备,其中一个或者多个所述分区具有预定大小。
24.根据权利要求22或者23所述的设备,其中一个或者多个所述分区的大小是动态可变的。
25.根据权利要求22至24中的任一项权利要求所述的设备,其中分区数目是动态可变的。
26.根据权利要求16至25中的任一项权利要求所述的设备,其中所述主要储存器用第一储存类型存储而所述查询储存器和所述差异储存器用第二储存类型存储,所述第二储存类型具有比所述第一储存类型更快的访问时间。
27.根据权利要求16至26中的任一项权利要求所述的设备,还执行:参照存储于所述差异储存器中的数据来更新所述查询储存器的内容。
28.根据权利要求27所述的设备,其中在所述差异储存器的大小超过预定大小时执行所述更新。
29.根据权利要求27或者28所述的设备,其中在预定时间之后执行所述更新。
30.根据权利要求29所述的设备,其中参照所述差异储存器空闲的时间段来确定所述预定时间。
31.一种包括计算机可读介质的计算机程序产品,所述计算机可读介质承载体现于其中的用于与计算机一起使用的计算机程序代码,所述计算机程序代码包括:
用于在查询储存器中存储查询和从主要储存器获得的与所述查询有关的结果的代码;以及
用于在所述差异储存器中存储对所述主要储存器的数据已经改变的指示的代码。
32.根据权利要求31所述的计算机程序产品,还包括用于执行根据权利要求2至15中的任一项权利要求所述的方法的代码。
33.一种计算机程序,包括:
用于在查询储存器中存储查询和从主要储存器获得的与所述查询有关的结果的代码;以及
用于在所述差异储存器中存储对所述主要储存器的数据已经改变的指示的代码。
34.根据权利要求33所述的计算机程序,还包括用于执行根据权利要求2至15中的任一项权利要求所述的方法的代码。
35.根据权利要求33或者34所述的计算机程序,其中所述计算机程序是包括计算机可读介质的计算机程序产品,所述计算机可读介质承载体现于其上的用于与计算机一起使用的计算机程序代码。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0821737A GB2465773A (en) | 2008-11-27 | 2008-11-27 | Data Storage and Access |
GB0821737.4 | 2008-11-27 | ||
PCT/IB2009/007584 WO2010061285A2 (en) | 2008-11-27 | 2009-11-27 | Method and apparatus for data storage and access |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102227717A true CN102227717A (zh) | 2011-10-26 |
CN102227717B CN102227717B (zh) | 2015-04-29 |
Family
ID=40230965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980147734.XA Expired - Fee Related CN102227717B (zh) | 2008-11-27 | 2009-11-27 | 用于数据储存和访问的方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8856449B2 (zh) |
EP (1) | EP2362954A4 (zh) |
CN (1) | CN102227717B (zh) |
GB (1) | GB2465773A (zh) |
WO (1) | WO2010061285A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109324761A (zh) * | 2018-10-09 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种数据缓存方法、装置、设备及存储介质 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9128949B2 (en) * | 2012-01-18 | 2015-09-08 | Cloudera, Inc. | Memory allocation buffer for reduction of heap fragmentation |
EP2790113B1 (en) * | 2013-04-11 | 2017-01-04 | Hasso-Plattner-Institut für Softwaresystemtechnik GmbH | Aggregate query-caching in databases architectures with a differential buffer and a main store |
US9594545B2 (en) | 2013-06-05 | 2017-03-14 | Splunk Inc. | System for displaying notification dependencies between component instances |
US10061626B2 (en) | 2013-06-05 | 2018-08-28 | Splunk Inc. | Application framework providing a registry for mapping names to component instances |
US8756614B2 (en) * | 2013-06-05 | 2014-06-17 | Splunk Inc. | Central registry for binding features using dynamic pointers |
US9311823B2 (en) | 2013-06-20 | 2016-04-12 | International Business Machines Corporation | Caching natural language questions and results in a question and answer system |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4306077A1 (zh) * | 1992-02-27 | 1993-09-02 | Hewlett Packard Co | |
US6009271A (en) * | 1996-10-28 | 1999-12-28 | Bmc Software, Inc. | Method of retrieving data from a relational database |
US5924096A (en) | 1997-10-15 | 1999-07-13 | Novell, Inc. | Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand |
US6073141A (en) * | 1997-11-25 | 2000-06-06 | International Business Machine Corporation | System and method for synchronizing local versions of database |
US6446062B1 (en) | 1999-12-23 | 2002-09-03 | Bull Hn Information Systems Inc. | Method and apparatus for improving the performance of a generated code cache search operation through the use of static key values |
US6591266B1 (en) | 2000-07-14 | 2003-07-08 | Nec Corporation | System and method for intelligent caching and refresh of dynamically generated and static web content |
US6847983B2 (en) | 2001-02-28 | 2005-01-25 | Kiran Somalwar | Application independent write monitoring method for fast backup and synchronization of open files |
EP1321865A3 (en) | 2001-12-19 | 2006-03-15 | Alcatel Canada Inc. | System and method for multiple-threaded access to a database |
US7089228B2 (en) * | 2002-04-18 | 2006-08-08 | International Business Machines Corporation | Computer apparatus and method for caching results of a database query |
US6950823B2 (en) * | 2002-12-23 | 2005-09-27 | International Business Machines Corporation | Transparent edge-of-network data cache |
US20040236726A1 (en) * | 2003-05-19 | 2004-11-25 | Teracruz, Inc. | System and method for query result caching |
US8019735B2 (en) * | 2004-05-21 | 2011-09-13 | Oracle International Corporation | Systems and methods for query caching |
US20060224579A1 (en) | 2005-03-31 | 2006-10-05 | Microsoft Corporation | Data mining techniques for improving search engine relevance |
US7363298B2 (en) | 2005-04-01 | 2008-04-22 | Microsoft Corporation | Optimized cache efficiency behavior |
US20110173177A1 (en) * | 2010-01-11 | 2011-07-14 | Flavio Junqueira | Sightful cache: efficient invalidation for search engine caching |
-
2008
- 2008-11-27 GB GB0821737A patent/GB2465773A/en not_active Withdrawn
-
2009
- 2009-11-27 EP EP09828709A patent/EP2362954A4/en not_active Withdrawn
- 2009-11-27 CN CN200980147734.XA patent/CN102227717B/zh not_active Expired - Fee Related
- 2009-11-27 WO PCT/IB2009/007584 patent/WO2010061285A2/en active Application Filing
- 2009-11-27 US US13/131,832 patent/US8856449B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109324761A (zh) * | 2018-10-09 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种数据缓存方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2010061285A3 (en) | 2010-07-29 |
US8856449B2 (en) | 2014-10-07 |
WO2010061285A2 (en) | 2010-06-03 |
GB0821737D0 (en) | 2008-12-31 |
CN102227717B (zh) | 2015-04-29 |
EP2362954A2 (en) | 2011-09-07 |
US20120185666A1 (en) | 2012-07-19 |
GB2465773A (en) | 2010-06-02 |
EP2362954A4 (en) | 2012-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102227717A (zh) | 用于数据储存和访问的方法和设备 | |
CN109597853B (zh) | 业务场景元素序列号生成方法、装置、介质和计算机设备 | |
CN109614347B (zh) | 多级缓存数据的处理方法、装置、存储介质及服务器 | |
US8615635B2 (en) | Database management methodology | |
CN104954468A (zh) | 资源的分配方法及装置 | |
CN103957239B (zh) | Dns缓存信息处理方法、设备及系统 | |
CN109977129A (zh) | 多级数据缓存方法及设备 | |
KR20180099841A (ko) | 단축 링크를 처리하는 방법 및 장치, 및 단축 링크 서버 | |
CN110018900B (zh) | 内存处理方法和装置、电子设备、计算机可读存储介质 | |
CN103294610A (zh) | 可重复使用的内容可寻址存储 | |
US9361224B2 (en) | Non-intrusive storage of garbage collector-specific management data | |
US7752625B2 (en) | Caching resources requested by applications | |
CN104216992A (zh) | 一种信息处理方法及装置 | |
CN100589079C (zh) | 一种数据共享的方法、系统和装置 | |
CN102214236A (zh) | 一种海量数据处理方法和系统 | |
CN104834660A (zh) | 基于区间的模糊数据库搜索 | |
CN105791254A (zh) | 网络请求处理方法、装置及终端 | |
US10810269B2 (en) | Method and system for second-degree friend query | |
CN113568925B (zh) | 一种报文数据的转换方法、装置、电子设备及存储介质 | |
CN101673217A (zh) | 一种实现远端程序调用的方法和系统 | |
CN108228842B (zh) | Docker镜像库文件存储方法、终端、设备以及存储介质 | |
US10162597B1 (en) | Identifying IO access pattern in unique database structures | |
CN106251623A (zh) | 一种提供道路实时路况服务的系统 | |
CN112685064B (zh) | 设备标识的处理方法以及装置、存储介质、电子装置 | |
US7047365B2 (en) | Cache line purge and update instruction |
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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20160129 Address after: Espoo, Finland Patentee after: Technology Co., Ltd. of Nokia Address before: Espoo, Finland Patentee before: Nokia Oyj |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150429 Termination date: 20161127 |
|
CF01 | Termination of patent right due to non-payment of annual fee |