CN103544191A - 一种用于读取缓存数据的方法和设备 - Google Patents

一种用于读取缓存数据的方法和设备 Download PDF

Info

Publication number
CN103544191A
CN103544191A CN201210256370.2A CN201210256370A CN103544191A CN 103544191 A CN103544191 A CN 103544191A CN 201210256370 A CN201210256370 A CN 201210256370A CN 103544191 A CN103544191 A CN 103544191A
Authority
CN
China
Prior art keywords
key assignments
node
seek rate
tree type
searched
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
CN201210256370.2A
Other languages
English (en)
Inventor
洪峰
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.)
EVERYONE GAME NETWORK TECHNOLOGY DEVELOPMENT (SHANGHAI) Co Ltd
Original Assignee
EVERYONE GAME NETWORK TECHNOLOGY DEVELOPMENT (SHANGHAI) Co Ltd
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 EVERYONE GAME NETWORK TECHNOLOGY DEVELOPMENT (SHANGHAI) Co Ltd filed Critical EVERYONE GAME NETWORK TECHNOLOGY DEVELOPMENT (SHANGHAI) Co Ltd
Priority to CN201210256370.2A priority Critical patent/CN103544191A/zh
Publication of CN103544191A publication Critical patent/CN103544191A/zh
Pending legal-status Critical Current

Links

Images

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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up

Abstract

本发明涉及一种用于读取缓存数据的方法和设备。该方法包括:将与缓存数据关联的键值存入树型查找表;基于对缓存数据的请求,按照从所述树型查找表的根节点向叶节点的顺序,查找与被请求的缓存数据关联的键值;以及基于查找到的键值读取与所述键值关联的缓存数据。其中,基于所述键值的查找率来调整所述键值在所述树型查找表中存储的节点位置。

Description

一种用于读取缓存数据的方法和设备
技术领域
本发明一般地涉及数据处理,尤其涉及一种用于读取缓存数据的方法及其设备。
背景技术
缓存器是指临时文件交换区,计算机把最常用的文件从存储器里提出来临时放在缓存器里,就像把工具和材料搬上工作台一样,这样会比用时现去仓库取更方便。
Memcache是一个高性能的分布式的内存对象缓存系统。Memcache通过在内存里维护一个统一的巨大的hash表,将其用于存储各种格式的数据,包括图像、视频、文件以及数据库检索结果等。简单的说,就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。然而,使用memcache进行缓存存储也存在风险和不足。一方面,由于hash产生的键值较长,从而导致在读取常用数据和不常用数据时获取时间相同,容易造成性能瓶颈;另一方面,由于memcache使用hash进行键值的管理,还存在hash table遭受攻击的风险。
比如,如果在memcache中发生hash碰撞,则其查询效率与链表长度有关。例如,链表长度达到100,则需要查询101次才能查询到该数据。因为hash键列表无法改变,就算该数据经常用到,还是需要查询同样多次,所以读取缓存数据的效率没有提高。
因此,现有的缓存的存储和读取技术未能实现对常用的缓存数据的快速读取。因此,需要一种能解决上述问题的用于读取缓存数据的方法及其设备。
发明内容
本发明旨在解决上述问题。根据本发明的一个方面,提供了一种用于读取缓存数据的方法,该方法能够实现基于缓存数据的使用率来优化键值的快读查找,从而实现数据的快速读取。
该方法可以包括:将与缓存数据关联的键值存入树型查找表;基于对缓存数据的请求,按照从所述树型查找表的根节点向叶节点的顺序,查找与被请求的缓存数据关联的键值;以及基于查找到的键值读取与所述键值关联的缓存数据。其中,基于所述键值的查找率来调整所述键值在所述树型查找表中存储的节点位置。
根据本发明的实施方式,该方法可以包括计算所述被查找到的键值的查找率,所述查找率是所述键值被查找的频率。
根据本发明的实施方式,该方法可以包括计算所述被查找到的键值的查找率,所述查找率是所述键值被查找的频率。
根据本发明的实施方式,该方法可以包括比较所述被查找到的键值的查找率与其存储节点的父节点中的键值的查找率;以及如果被查找到的键值的查找率超过其存储节点的父节点中的键值的查找率第一预定阈值,则交换这两个键值的存储节点位置。
根据本发明的实施方式,该方法可以包括比较所述被查找到的键值的查找次数与其存储节点的父节点中的键值的查找次数;以及如果被查找到的键值的查找次数超过其存储节点的父节点中的键值的查找次数,并且所述被查找到的键值的查找率大于第二预定阈值,则交换这两个键值的存储节点位置。
根据本发明的实施方式,将与缓存数据关联的键值存入树型查找表还包括:当所述树型查找表中每个节点都已经存储键值时,通过将与新的缓存数据关联的键值替换掉所述树型查找表的底层的一个节点中已有的键值来将所述与新的缓存数据关联的键值存入树型查找表
根据本发明的一个方面,提供了一种用于读取缓存数据的设备,包括:存储模块,用于将与缓存数据关联的键值存入树型查找表;查找模块,用于基于对缓存数据的请求,按照从所述树型查找表的根节点向叶节点的顺序,查找与被请求的缓存数据关联的键值;以及读取模块,用于基于查找到的键值读取与所述键值关联的缓存数据。其中,所述设备还可以包括调整模块,用于基于所述键值的查找率来调整所述键值在所述树型查找表中存储的节点位置。
根据本发明的实施方式,该设备还可以包括计算模块,用于计算所述被查找到的键值的查找率,所述查找率是所述键值被查找的频率。
根据本发明的实施方式,该设备还可以包括:比较模块,用于比较所述被查找到的键值的查找率与其存储节点的父节点中的键值的查找率;以及交换模块,用于如果被查找到的键值的查找率超过其存储节点的父节点中的键值的查找率第一预定阈值,则交换这两个键值的存储节点位置。
本发明将缓存数据的键值存储在树型查找表中,对缓存数据的使用率进行使用统计,不断调整缓存数据的键值在属性查找表中的位置,提高了常用缓存数据的获取速度。
附图说明
已经大体上如此描述了本发明,现在将参考附图,附图并非一定是按比例绘制的,并且其中:
图1是根据本发明一个实施方式用于读取缓存数据的方法的流程图。
图2A是根据本发明一个实施方式的键值的存储节点的调整方法的流程图。
图2B是示出根据本发明另一实施方式的键值的存储节点的具体调整方法。
图3是根据本发明一个实施方式用于读取缓存数据的设备框图。
图4示出了适于用来实现本发明实施方式的计算机系统的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下举实施方式,并参照附图,对本发明进一步详细说明。
现在,将在下文中参考附图更全面地描述本发明的示例实施方式,附图中示出了本发明的某些而不是所有实施方式。实际上,本发明可以体现为很多不同的形式并且不应当解释为限于在此阐明的实施方式;相反,提供这些实施方式从而使得本公开内容将满足适用的法律要求。贯穿说明书,类似的参考标号指代类似的元素。根据本发明的某些示例实施方式,术语“数据”、“内容”、“信息”以及类似的术语可以可互换地使用以指代能够被传送、接收、操作和/或存储的数据。
图1是根据本发明一个实施方式的用于读取缓存数据的方法的流程图。缓存数据是存储在缓存器中的数据。并且,对于每一个缓存数据,可以计算与之关联的键值。每个缓存数据都有一个与之关联的键值。根据本发明的一个实施方式,缓存数据与键值一一对应。本领域技术人员应当理解,可以采用各种现有算法来计算缓存数据的键值。根据本发明的实施方式,键值使用二进制,以达到用底层语言来实现,更容易提高性能。
根据本发明的实施方式,在步骤101,将与缓存数据关联的键值存入树型查找表。树型查找表是预先建立的,其中,树型查找表包括若干节点,其每个节点中可以存储一个键值,并且一个键值与一个缓存数据具有一一对应关系。另外,由于本方案意在提高常用缓存数据的获取速度,所以树型查找表的存储节点的数量低于现有技术的存储键值的数量,具体多少视情况而定。根据本发明的实施方式,可以用较为简单的二叉树来实现树型查找表。本领域技术人员应当理解,可以采用各种现有的算法将键值存入树型查找表的节点中,例如,一开始将缓存数据的键值存入根节点,接下来的键值存入树型查找表第二层的节点中。此外,步骤101还可以包括:当所述树型查找表中每个节点都已经存储键值时,通过将与新的缓存数据关联的键值替换掉所述树型查找表的底层的一个节点中已有的键值来将所述与新的缓存数据关联的键值存入树型查找表。
在步骤102,基于对缓存数据的请求,按照从所述树型查找表的根节点向叶节点的顺序,查找与被请求的缓存数据关联的键值。
在步骤103,基于查找到的键值,从缓存器中读取与该键值关联的缓存数据。该缓存数据即为被请求的缓存数据。
根据本发明的实施方式,在所述方法中,基于所述键值的查找率来调整所述键值在所述树型查找表中存储的位置。
图2A是根据本发明一个实施方式的键值的存储节点调整方法的流程图。
在缓存数据的读取过程中,需要查找键值,因此,可以基于键值的查找率来调整键值在所述树型查找表中存储的位置。具体方法如下。
在步骤201,计算查找到的键值的查找率。查找率例如可以是该键值被查找到的频率,其可以代表与该键值相对应的缓存数据的使用率。换言之,键值的查找率越高,对应的缓存数据的使用率也就越高。
在步骤202,比较被查找到的键值的查找率与其存储节点的父节点中的键值的查找率。
在步骤203,根据比较结果对子节点与父节点中的键值的存储位置进行调整。例如,如果被查找到的键值的查找率超过其存储节点的父节点中的键值的查找率第一预定阈值,则可以交换这两个键值的存储节点位置。反之,则可以保持各自的原存储节点位置不变化。根据本发明的实施方式,例如,第一预定阈值可以为3%,当被查找到的键值的查找率(Pc)超过其存储节点的父节点中的键值的查找率(Pp)的百分之三时,也即Pc>Pp+3%,则可以交换这两个键值的存储节点位置。其中Pj表示第j个位置处的查找率。
当然,本领域技术人员根据情况也可以选取其他的预定阈值。本领域技术人员应当理解,可以根据实际情况或经验来设置上述条件,以避免频繁交换存储节点的情况发生。
图2B是示出根据本发明另一实施方式的键值的存储节点的具体调整方法。比较所述被查找到的键值的查找次数与其存储节点的父节点中的键值的查找次数;以及如果被查找到的键值的查找次数超过其存储节点的父节点中的键值的查找次数,并且所述被查找到的键值的查找率大于第二预定阈值,则交换这两个键值的存储节点位置。
根据本发明的另一实施方式,可以实现如下的键值交换方法。这里的键值是一个二叉树,例如,可以是4层的树,对应的key值如下所示,通过每个原始键值的查找次数进行计算。根据本发明的实施方式,例如,N7的查找率=N7的查找次数/(N7的查找次数+N8的查找次数)*100%;N3的查找率=N3的查找次数/(N3的查找次数+N4的查找次数)*100%。其中,Nj表示第j个位置。
以图2B为例,查找率P7=(N7/(N7+N8)*100%)大于80%则准备上升,如果上升的上一层的节点位置已经有其他键值,则比较两个键值的查找率,查找率大的键值在上,查找率小的键值在下。查找率P3=(N3/(N3+N4)*100%)小于20%则准备下降,如果下降的下一层的节点位置已经有其他键值,则比较两个键值的查找率,查找率大的键值在上,查找率小的键值在下。
如果N7的查找率>80%并且N7的查找次数>N3的查找次数),那么将N7和N3位置处的键值进行交换。
如果N3的查找率<20%并且N3的查找次数<N7或N8的查找次数);则N3可以与N7交换位置,或者N3可以与N8交换位置。
当然,本领域技术人员根据情况也可以根据实际情况或经验来选择键值调整的方法。例如,可以将上述两种方法进行结合,如果N7的查找率>80%并且N7的查找率>N3的查找率+3%),那么将N7和N3位置处的键值进行交换。
如果N3的查找率<20%并且N3的查找率<N7的查找率+3%);则N3可以与N7交换位置。
如果N3的查找率<20%并且N3的查找率<N8的查找率+3%);则N3可以与N8交换位置。
图3是根据本发明一个实施方式的用于读取缓存数据的设备300的框图。缓存数据是存储在缓存器(未示出)中的数据。并且,对于每一个缓存数据,可以计算与之关联的键值。每个缓存数据都有一个与之关联的键值。根据本发明的一个实施方式,缓存数据与键值一一对应。本领域技术人员应当理解,可以采用各种现有算法来计算缓存数据的键值。根据本发明的实施方式,键值使用二进制,以达到用底层语言来实现,更容易提高性能。
根据本发明的实施方式,该设备300可以包括存储模块301、查找模块302和读取模块303。存储模块301可以被配置为将与缓存数据关联的键值存入树型查找表。树型查找表是预先建立的,其中,树型查找表包括若干节点,其每个节点中可以存储一个键值,并且一个键值与一个缓存数据具有一一对应关系。另外,由于本方案意在提高常用缓存数据的获取速度,所以树型查找表的存储节点的数量低于现有技术的存储键值的数量,具体多少视情况而定。根据本发明的实施方式,可以用较为简单的二叉树来实现树型查找表。本领域技术人员应当理解,可以采用各种现有的算法将键值存入树型查找表的节点中,例如,一开始将缓存数据的键值存入根节点,接下来的键值存入树型查找表第二层的节点中。此外,存储模块301还可以被配置为:当所述树型查找表中每个节点都已经存储键值时,通过将与新的缓存数据关联的键值替换掉所述树型查找表的底层的一个节点中已有的键值来将所述与新的缓存数据关联的键值存入树型查找表。
查找模块302可以被配置为:基于对缓存数据的请求,按照从所述树型查找表的根节点向叶节点的顺序,查找与被请求的缓存数据关联的键值。
读取模块303可以被配置为:基于查找到的键值,从缓存器中读取与该键值关联的缓存数据。该缓存数据即为被请求的缓存数据。
根据本发明的实施方式,在所述设备300中,还可以包括调整模块304,其可以被配置为基于所述键值的查找率来调整所述键值在所述树型查找表中存储的位置。
在缓存数据的读取过程中,需要查找键值,因此,可以基于键值的查找率来调整键值在所述树型查找表中存储的位置。
根据本发明的实施方式,设备300还可以包括计算模块305,所述计算模块305被配置为计算查找到的键值的查找率。查找率例如可以是该键值被查找到的频率,其可以代表与该键值相对应的缓存数据的使用率。换言之,键值的查找率越高,对应的缓存数据的使用率也就越高。
设备300还可以包括比较模块306,所述比较模块306被配置为比较被查找到的键值的查找率与其存储节点的父节点中的键值的查找率。
设备300还可以包括交换模块307,所述交换模块307根据比较结果对子节点与父节点中的键值的存储位置进行调整。例如,如果被查找到的键值的查找率超过其存储节点的父节点中的键值的查找率第一预定阈值,则可以交换这两个键值的存储节点位置。反之,则可以保持各自的原存储节点位置不变化。根据本发明的实施方式,例如,第一预定阈值可以为3%,当被查找到的键值的查找率(Pc)超过其存储节点的父节点中的键值的查找率(Pp)的百分之三时,也即Pc>Pp+3%,则可以交换这两个键值的存储节点位置。当然,本领域技术人员根据情况也可以选取其他的第一预定阈值。本领域技术人员应当理解,可以根据实际情况或经验来设置上述条件,以避免频繁交换存储节点的情况发生。
根据本发明的实施方式,例如,比较模块306以及交换模块307可以包含在调整模块304中。此外,计算模块305也可以包含在调整模块304或者查找模块305中。
根据本发明的实施方式,还可以用其他的比较模块和交换模块来实现本发明。例如。设备300可以包括比较模块(未示出),用于比较所述被查找到的键值的查找次数与其存储节点的父节点中的键值的查找次数;以及交换模块(未示出),用于如果被查找到的键值的查找次数超过其存储节点的父节点中的键值的查找次数,并且所述被查找到的键值的查找率大于第二预定阈值,则交换这两个键值的存储节点位置。为了不模糊本发明,所述比较模块与交换模块的具体实现算法请参见图2B的描述。
本发明还可以通过软件来实现,所述软件能够在其中执行的计算机系统如图4所示。
图4示出了适于用来实现本发明实施方式的计算机系统的框图。如图4所示,计算机系统可以包括:CPU(中央处理单元)401、RAM(随机存取存储器)402、ROM(只读存储器)403、系统总线404、硬盘控制器405、键盘控制器406、串行接口控制器407、并行接口控制器408、显示控制器409、硬盘410、键盘411、串行外部设备412、并行外部设备413和显示器414。在这些部件中,与系统总线404相连的有CPU 401、RAM 402、ROM 403、硬盘控制器405、键盘控制器406、串行控制器407、并行控制器408和显示控制器409。硬盘410与硬盘控制器405相连,键盘411与键盘控制器406相连,串行外部设备412与串行接口控制器407相连,并行外部设备413与并行接口控制器408相连,以及显示器413与显示控制器409相连。
应当理解,图4所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
特别地,除硬件实施方式之外,本发明的实施方式可以通过计算机程序产品的形式实现。例如,分别参考图1、图3和图3描述的方法可以通过计算机程序产品来实现。该计算机程序产品可以存储在例如图4所示的RAM 404、ROM 404、硬盘410和/或任何适当的存储介质中,或者通过网络从适当的位置下载到计算机系统上。计算机程序产品可以包括计算机代码部分,其包括可由适当的处理设备(例如,图4中示出的CPU 401)执行的程序指令。所述程序指令至少可以包括用于实现上文描述的方法的指令。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
应当注意,尽管在上文详细描述中提及了设备的若干模块或子模块,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明,但是应该理解,本发明并不限于所公开的具体实施方式。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。

Claims (20)

1.一种用于读取缓存数据的方法,包括:
将与缓存数据关联的键值存入树型查找表;
基于对缓存数据的请求,按照从所述树型查找表的根节点向叶节点的顺序,查找与被请求的缓存数据关联的键值;以及
基于查找到的键值读取与所述键值关联的缓存数据,
其中,基于所述键值的查找率来调整所述键值在所述树型查找表中存储的节点位置。
2.根据权利要求1所述的方法,其中,所述树型查找表的每个节点存储一个键值,所述键值与缓存数据具有一一对应关系。
3.根据权利要求1所述的方法,还包括:
计算所述被查找到的键值的查找率,所述查找率是所述键值被查找的频率。
4.根据权利要求1所述的方法,还包括:
比较所述被查找到的键值的查找率与其存储节点的父节点中的键值的查找率;以及
如果被查找到的键值的查找率超过其存储节点的父节点中的键值的查找率第一预定阈值,则交换这两个键值的存储节点位置。
5.根据权利要求4所述的方法,其中,所述第一预定阈值是所述父节点中的键值的查找率的百分之三。
6.根据权利要求1所述的方法,还包括:
比较所述被查找到的键值的查找次数与其存储节点的父节点中的键值的查找次数;以及
如果被查找到的键值的查找次数超过其存储节点的父节点中的键值的查找次数,并且所述被查找到的键值的查找率大于第二预定阈值,则交换这两个键值的存储节点位置。
7.根据权利要求6任一项所述的方法,其中,所述第二预定阈值是百分之八十。
8.根据权利要求4-7任一项所述的方法,查找率
Figure FSA00000753502900021
其中Pm是第m个节点位置处的键值的查找率,Tm是第m个节点位置处的键值的查找次数,Tn是第n个节点位置处的键值的查找次数,并且第m个和第n个节点具有相同的父节点。
9.根据权利要求1或2所述的方法,其中,将与缓存数据关联的键值存入树型查找表还包括:
当所述树型查找表中每个节点都已经存储键值时,通过将与新的缓存数据关联的键值替换掉所述树型查找表的底层的一个节点中已有的键值来将所述与新的缓存数据关联的键值存入树型查找表。
10.根据权利要求1所述的方法,其中,所述树型查找表是二叉树,所述键值是二进制值。
11.一种用于读取缓存数据的设备,包括:
存储模块,用于将与缓存数据关联的键值存入树型查找表;
查找模块,用于基于对缓存数据的请求,按照从所述树型查找表的根节点向叶节点的顺序,查找与被请求的缓存数据关联的键值;以及
读取模块,用于基于查找到的键值读取与所述键值关联的缓存数据,
其中,所述设备还可以包括调整模块,用于基于所述键值的查找率来调整所述键值在所述树型查找表中存储的节点位置。
12.根据权利要求11所述的设备,其中,所述树型查找表的每个节点存储一个键值,所述键值与缓存数据具有一一对应关系。
13.根据权利要求11所述的设备,还包括:
计算模块,用于计算所述被查找到的键值的查找率,所述查找率是所述键值被查找的频率。
14.根据权利要求11所述的设备,还包括:
比较模块,用于比较所述被查找到的键值的查找率与其存储节点的父节点中的键值的查找率;以及
交换模块,用于如果被查找到的键值的查找率超过其存储节点的父节点中的键值的查找率第一预定阈值,则交换这两个键值的存储节点位置。
15.根据权利要求14所述的设备,其中,所述第一预定阈值是所述父节点中的键值的查找率的百分之三。
16.根据权利要求11所述的方法,还包括:
比较模块,用于比较所述被查找到的键值的查找次数与其存储节点的父节点中的键值的查找次数;以及
交换模块,用于如果被查找到的键值的查找次数超过其存储节点的父节点中的键值的查找次数,并且所述被查找到的键值的查找率大于第二预定阈值,则交换这两个键值的存储节点位置。
17.根据权利要求16任一项所述的方法,其中,所述第二预定阈值是百分之八十。
18.根据权利要求14-17任一项所述的方法,查找率
Figure FSA00000753502900031
其中Pm是第m个节点位置处的键值的查找率,Tm是第m个节点位置处的键值的查找次数,Tn是第n个节点位置处的键值的查找次数,并且第m个和第n个节点具有相同的父节点。
19.根据权利要求11或12所述的设备,其中,用于将与缓存数据关联的键值存入树型查找表的存储模块还被配置成:
当所述树型查找表中每个节点都已经存储键值时,通过将与新的缓存数据关联的键值替换掉所述树型查找表的底层的一个节点中已有的键值来将所述与新的缓存数据关联的键值存入树型查找表。
20.根据权利要求11所述的设备,其中,所述树型查找表是二叉树,所述键值是二进制值。
CN201210256370.2A 2012-07-17 2012-07-17 一种用于读取缓存数据的方法和设备 Pending CN103544191A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210256370.2A CN103544191A (zh) 2012-07-17 2012-07-17 一种用于读取缓存数据的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210256370.2A CN103544191A (zh) 2012-07-17 2012-07-17 一种用于读取缓存数据的方法和设备

Publications (1)

Publication Number Publication Date
CN103544191A true CN103544191A (zh) 2014-01-29

Family

ID=49967654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210256370.2A Pending CN103544191A (zh) 2012-07-17 2012-07-17 一种用于读取缓存数据的方法和设备

Country Status (1)

Country Link
CN (1) CN103544191A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572973A (zh) * 2014-12-31 2015-04-29 上海格尔软件股份有限公司 一种高性能的内存缓存系统及方法
CN105224560A (zh) * 2014-06-20 2016-01-06 腾讯科技(北京)有限公司 缓存数据的查找方法和装置
CN108446356A (zh) * 2018-03-12 2018-08-24 上海哔哩哔哩科技有限公司 数据缓存方法、服务器及数据缓存系统
CN109241143A (zh) * 2018-09-13 2019-01-18 中国建设银行股份有限公司 一种数据查询方法及系统
CN109492005A (zh) * 2018-11-07 2019-03-19 郑州云海信息技术有限公司 一种b+树读缓存方法及相关装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1946049A (zh) * 2006-07-27 2007-04-11 清华大学 以太网存储区域网络中基于目标器内存设备的缓存方法
JP2008287533A (ja) * 2007-05-18 2008-11-27 S Grants Co Ltd カップルドノードツリーの最長一致/最短一致検索方法及びプログラム
CN101710866A (zh) * 2009-12-01 2010-05-19 北京邮电大学 一种选择和设置网络超级节点的方法
CN101778180A (zh) * 2010-01-22 2010-07-14 同济大学 一种互动式语音应答系统业务节点动态调整控制方法
CN101938583A (zh) * 2010-09-03 2011-01-05 电子科技大学 一种基于多名单的异常呼叫过滤方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1946049A (zh) * 2006-07-27 2007-04-11 清华大学 以太网存储区域网络中基于目标器内存设备的缓存方法
JP2008287533A (ja) * 2007-05-18 2008-11-27 S Grants Co Ltd カップルドノードツリーの最長一致/最短一致検索方法及びプログラム
CN101710866A (zh) * 2009-12-01 2010-05-19 北京邮电大学 一种选择和设置网络超级节点的方法
CN101778180A (zh) * 2010-01-22 2010-07-14 同济大学 一种互动式语音应答系统业务节点动态调整控制方法
CN101938583A (zh) * 2010-09-03 2011-01-05 电子科技大学 一种基于多名单的异常呼叫过滤方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224560A (zh) * 2014-06-20 2016-01-06 腾讯科技(北京)有限公司 缓存数据的查找方法和装置
CN105224560B (zh) * 2014-06-20 2019-12-06 腾讯科技(北京)有限公司 缓存数据的查找方法和装置
CN104572973A (zh) * 2014-12-31 2015-04-29 上海格尔软件股份有限公司 一种高性能的内存缓存系统及方法
CN108446356A (zh) * 2018-03-12 2018-08-24 上海哔哩哔哩科技有限公司 数据缓存方法、服务器及数据缓存系统
CN108446356B (zh) * 2018-03-12 2023-08-29 上海哔哩哔哩科技有限公司 数据缓存方法、服务器及数据缓存系统
CN109241143A (zh) * 2018-09-13 2019-01-18 中国建设银行股份有限公司 一种数据查询方法及系统
CN109492005A (zh) * 2018-11-07 2019-03-19 郑州云海信息技术有限公司 一种b+树读缓存方法及相关装置

Similar Documents

Publication Publication Date Title
US11163828B2 (en) Building and querying hash tables on processors
US9195599B2 (en) Multi-level aggregation techniques for memory hierarchies
US10114908B2 (en) Hybrid table implementation by using buffer pool as permanent in-memory storage for memory-resident data
US10698831B2 (en) Method and apparatus for data access
CN106649401A (zh) 分布式文件系统中的数据写入方法和装置
CN103544191A (zh) 一种用于读取缓存数据的方法和设备
CN105989015B (zh) 一种数据库扩容方法和装置以及访问数据库的方法和装置
Li et al. FINEdex: a fine-grained learned index scheme for scalable and concurrent memory systems
CN109240946A (zh) 数据的多级缓存方法及终端设备
CN107704202B (zh) 一种数据快速读写的方法和装置
EP3349129A1 (en) Region division method in distributed database, region node and system
CN110134335B (zh) 一种基于键值对的rdf数据管理方法、装置及存储介质
US10572463B2 (en) Efficient handling of sort payload in a column organized relational database
EP4020209A1 (en) Hardware offload circuitry
CN114090695A (zh) 分布式数据库的查询优化的方法和装置
US20240143657A1 (en) Graph data partitioning
US11392298B2 (en) Techniques to control an insertion ratio for a cache
CN109446293A (zh) 一种并行的高维近邻查询方法
CN117009389A (zh) 数据缓存方法、装置、电子设备和可读存储介质
US11435926B2 (en) Method, device, and computer program product for managing storage system
CN115617859A (zh) 基于知识图谱集群的数据查询方法和装置
Feng et al. A segment‐based sparse matrix–vector multiplication on CUDA
JP2016045594A (ja) データ処理装置、データ処理方法及びデータ処理プログラム
Zois et al. Efficient main-memory top-k selection for multicore architectures
US20170031982A1 (en) Maintaining Performance in the Presence of Insertions, Deletions, and Streaming Queries

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140129