CN106250327B - 一种在键-值存储中热点识别方法及装置 - Google Patents

一种在键-值存储中热点识别方法及装置 Download PDF

Info

Publication number
CN106250327B
CN106250327B CN201610627344.4A CN201610627344A CN106250327B CN 106250327 B CN106250327 B CN 106250327B CN 201610627344 A CN201610627344 A CN 201610627344A CN 106250327 B CN106250327 B CN 106250327B
Authority
CN
China
Prior art keywords
key
key group
chained list
property value
hot spot
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.)
Active
Application number
CN201610627344.4A
Other languages
English (en)
Other versions
CN106250327A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610627344.4A priority Critical patent/CN106250327B/zh
Publication of CN106250327A publication Critical patent/CN106250327A/zh
Application granted granted Critical
Publication of CN106250327B publication Critical patent/CN106250327B/zh
Active 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/0877Cache access modes
    • 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/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/16General purpose computing application
    • G06F2212/163Server or database system

Landscapes

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

Abstract

本申请公开了一种在键‑值存储中热点识别方法及装置,涉及通信技术领域,能够减少IO操作次数。该方法包括:获取第一键组,并确定所述第一键组中均包含相同的第一属性值以及所述第一键组中每一个键的第二属性值;根据所述第一键组的第一属性值构建所述第一键组的第一淘汰链表;根据所述第一淘汰链表中所述第一键组中的每一个键的第二属性值的访问热度识别每一个键的访问热度。

Description

一种在键-值存储中热点识别方法及装置
技术领域
本申请涉及通信技术领域,尤其涉及一种在键-值存储中热点识别方法及装置。
背景技术
键-值(英文:Key-Value,简称:KV)存储引擎不支持复杂表结构,不支持复杂查询,但易扩展、查询速度快、支持大数据量高速写入、查询等特点,因此,在海量信息时代,越来越多的数据库采用KV存储引擎。
一般的,在支持KV存储引擎的设备中,每一级缓存中均存储至少一个Key。该设备通常采用近期最少使用(英文:Least Recently Used,简称:LRU)算法来缓存淘汰每一级缓存中的Key,即根据LRU算法确定每个Key的缓存位置。例如,设备将访问热度较低的Key从当前缓存中淘汰,并存储于下一级缓存中。KV存储引擎中存储的Key通常包括该Key所归属的数据库的标识(英文:Database Identity,简称:DB_ID)、该Key所处的表的标识(英文:Table_Identify,简称:Table_ID)、该Key所处的列的标识(英文:Column Identify,简称:Colum_ID)以及时间戳(Time stamp_n)等信息,其中,Time stamp_n用于表示该Key所归属的数据库的版本。
目前,支持KV存储引擎的设备在获取到Key时,将Key包含的所有信息视为一个整体,并根据用户对整个Key的访问热度进行热点识别。这样,该设备利用LRU算法确定Key的缓存位置时也是根据用户对整个Key的访问热度进行确定的。但是,采用上述方法进行热点识别会引发该设备输入/输出((Input/Output,IO)操作次数过多的问题。例如,Key包括Table1,Key的访问热度较低,但Table1的访问热度较高,采用现有的热点识别方法,Key存储于二级缓存中,则在设备需要读取Table1中的数据时,该设备需要先读取一级缓存中的数据,再读取二级缓存中的数据,这样,IO操作次数会相应增多。
发明内容
本申请提供一种在键-值存储中热点识别方法及装置,能够减少IO操作次数。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种在键-值存储中热点识别方法,应用于热点识别装置,该方法包括:获取第一键组,并确定第一键组中均包含相同的第一属性值以及第一键组中每一个键的第二属性值;然后,根据第一键组的第一属性值构建第一键组的第一淘汰链表;最后,根据第一淘汰链表中第一键组中的每一个键的第二属性值的访问热度识别每一个键的访问热度。
本申请的第一键组中每个键均包含相同的第一属性值,在根据第一键组的第一属性值构建第一键组的第一淘汰链表后,根据该第一淘汰链表中第一键组中每个键的第二属性值的访问热度识别每个键的访问热度。这样可以从第二属性的维度识别第一键组中每一个键的访问热度,即从第一属性的维度和第二属性的维度综合识别每一个键的访问热度。
与现有技术相比,不再根据用户对整个键的访问频度进行热点识别,而是从第一属性的维度和第二属性的维度综合识别每一个键的访问热度,因此,确定出的每一个键的访问热度较为准确,相应的,每一个键的缓存位置的确定也较为合理,能够减少IO操作次数。
可选的,在本申请的一种可能的实现方式中,该在键-值存储中热点识别方法还包括:获取第二键组,并确定第二键组中均包含相同的第一属性值以及第二键组中每一个键的第二属性值;根据第二键组的第一属性值构建第二键组的第二淘汰链表;根据第一键组的第一属性值和第二键组的第一属性值构建第三淘汰链表;分别根据第三淘汰链表中第一键组的第一属性值的访问热度和第二键组的第一属性值的访问热度识别第一键组的访问热度和第二键组的访问热度。
本申请中第一键组中的每个键唯一对应一个第一属性值,第二键组中的每个键也唯一对应一个第一属性值,在根据第一键组的第一属性值和第二键组的第一属性值构建出第三淘汰链表后,可根据第一键组的第一属性值的访问热度确定第一键组的访问热度,并根据第二键组的第一属性值的访问热度确定第二键组的访问热度,即从第一属性的维度确定每个键组的访问热度。对于每个键组而言,又可以根据该键组中每个键的第二属性值的访问热度识别每个键的访问热度,即从第二属性确定任意键组中每个键的访问热度。因此,本申请提供的热点识别方法,可以从第一属性的维度和第二属性的维度综合识别每一个键的访问热度,因此,确定出的每一个键的访问热度较为准确,相应的,每一个键的缓存位置的确定也较为合理,能够减少IO操作次数。
可选的,在本申请的另一种可能的实现方式中,在构建出第一淘汰链表后,还为该第一淘汰链表设置第一淘汰策略。
可选的,在本申请的另一种可能的实现方式中,在构建出第二淘汰链表后,还为该第二淘汰链表设置第一淘汰策略;在构建出第三淘汰链表后,还为该第三淘汰链表设置第一淘汰策略。
本申请在构建出任意一个淘汰链表后,均可为该淘汰链表设置相应的淘汰策略,这样可以根据该淘汰策略确定每个淘汰链表中每个键的缓存位置。
第二方面,提供一种热点识别装置,该热点识别装置包括:获取单元、确定单元、构建单元和识别单元。
具体的,本申请提供的各个单元模块所实现的功能具体如下:
上述获取单元,用于获取第一键组;上述确定单元,用于确定上述获取单元获取到的第一键组中均包含相同的第一属性值以及第一键组中每一个键的第二属性值;上述构建单元,用于根据上述确定单元确定的第一键组的第一属性值构建第一键组的第一淘汰链表;上述识别单元,用于根据上述构建单元构建的第一淘汰链表中第一键组中的每一个键的第二属性值的访问热度识别每一个键的访问热度。
可选的,在本申请的一种实现方式中,上述获取单元,还用于第二键组;上述确定单元,还用于确定上述获取单元获取到的第二键组中均包含相同的第一属性值以及第二键组中每一个键的第二属性值;上述构建单元,还用于根据上述确定单元确定的第二键组的第一属性值构建第二键组的第二淘汰链表,以及用于根据第一键组的第一属性值和第二键组的第一属性值构建第三淘汰链表;上述识别单元,还用于分别根据上述构建单元构建的第三淘汰链表中第一键组的第一属性值的访问热度和第二键组的第一属性值的访问热度识别第一键组的访问热度和第二键组的访问热度。
可选的,在本申请的另一种实现方式中,本申请中的热点识别装置还包括设置单元,该设置单元,用于为上述构建单元构建的第一淘汰链表设置第一淘汰策略。
可选的,在本申请实施例的另一种实现方式中,上述设置单元,还用于为上述构建单元构建的第二淘汰链表设置第二淘汰策略,以及还用于为上述构建单元构建的第三淘汰链表设备第三淘汰策略。
第三方面,提供一种热点识别装置,该热点识别装置包括接口和处理器,所述接口与所述处理器通信,其中,上述接口,用于获取第一键组;上述处理器,用于确定上述接口获取到的第一键组中均包含相同的第一属性值以及第一键组中每一个键的第二属性值,以及用于根据第一键组的第一属性值构建第一键组的第一淘汰链表,以及用于根据第一淘汰链表中第一键组中的每一个键的第二属性值的访问热度识别每一个键的访问热度。
可选的,在本申请实施例的一种实现方式中,上述接口,还用于获取第二键组;上述处理器,还用于确定第二键组中均包含相同的第一属性值以及第二键组中每一个键的第二属性值,以及还用于根据第二键组的第一属性值构建第二键组的第二淘汰链表,以及还用于根据第一键组的第一属性值和第二键组的第一属性值构建第三淘汰链表,以及还用于分别根据第三淘汰链表中第一键组的第一属性值的访问热度和第二键组的第一属性值的访问热度识别第一键组的访问热度和第二键组的访问热度。
可选的,在本申请实施例的另一种实现方式中,上述处理器,还用于为第一淘汰链表设置第一淘汰策略。
可选的,在本申请实施例的另一种实现方式中,上述处理器,还用于为第二淘汰链表设置第二淘汰策略,以及还用于为第三淘汰链表设备第三淘汰策略。
第四方面,还提供一种计算机可读存储介质,该计算机可读存储介质包括一个或多个程序代码;当热点识别装置的处理器在执行该程序代码时,该热点识别装置执行如上述任一方面及其各种实现方式所述的在键-值存储中热点识别方法。
在本申请中,上述热点识别装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
需要说明的是,本申请实施例第二方面、第三方面和第四方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面、第三方面和第四方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,本申请实施例这里不再赘述。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例。
图1为本申请实施例提供的热点识别装置的结构示意图一;
图2为本申请实施例提供的热点识别装置的结构示意图二;
图3为本申请实施例提供的在键-值存储中热点识别方法的流程示意图一;
图4为本申请实施例提供的在键-值存储中热点识别方法的流程示意图二;
图5为本申请实施例提供的在键-值存储中热点识别方法的流程示意图三;
图6为本申请实施例中至少一个淘汰链表的结构示意图;
图7为本申请实施例提供的热点识别装置的结构示意图三;
图8为本申请实施例提供的热点识别装置的结构示意图四。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细地描述。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透切理解本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
此外,本申请的说明书和权利要求书及附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
其中,本申请实施例中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
此外,本申请的说明书和权利要求书及附图中的术语“第一”和“第二”等是用于区别不同对象,而不是用于限定特定顺序。
存储引擎是一种适用于服务器、数据库和表格的存储机制,一个存储引擎可以是服务器集群中的一个单独服务器,还可以是服务器上的功能模块。存储引擎的存储介质可以根据需要进行选择,且存储引擎可以拆卸,方便用户的使用。
一般的,存储引擎采用多级缓存存储数据库中的数据。为了最大程度上避免对用户的使用造成影响,访问热度较高的数据总是存储在上级缓存中,以方便用户的访问,访问热度较低的数据总是存储在下级缓存中,有效的缩短了用户的访问时间。
其中,每一级缓存中存储的数据的访问热度至少包括该数据的被访问次数和访问时间,该访问包括但不限定于对数据的查询、更新、修改、插入和调用等操作。
对于每一级缓存而言,在数据存储过程中,下一级缓存总是从上一级缓存中获取数据。存储引擎在将需要存储至下一级缓存的数据存储至下一级缓存后,将当前缓存中需要存储至下一级缓存的数据删除,减少了当前缓存中存储数据的数据量。此外,在访问当前缓存中的数据时,有效的降低了数据查找的数量。
存储引擎采用缓存淘汰算法来确定每一数据的缓存位置。例如将近期最少使用的数据淘汰掉,即将近期最少使用的数据缓存至下一级缓存中,一般采用链表方式实现。本申请实施例将缓存淘汰算法所采用的链表统称为淘汰链表。
具体的,存储引擎在当前缓存中存储数据时,若当前缓存中已存储数据的数据量已经满足一定条件,则存储引擎会将淘汰链表中访问热度最低的数据淘汰,并将待存储的数据添加至该淘汰链表的表头。若淘汰链表中某一数据近期被访问,则将该数据置于该淘汰链表的表头。
KV存储引擎是数据存储格式为Key-Value的存储引擎。KV存储引擎中存储的Key通常包括DB_ID、Table_ID、Column_ID以及Time stamp_n等信息。
目前,KV存储引擎是根据用户对整个键的访问热度进行热点识别的。因此,KV存储引擎通常是根据整个键的访问热度在LRU链表上的排列顺序进行淘汰的。采用该方法进行热点识别会引发KV存储引擎IO操作次数过多的问题。
针对根据用户对整个键的访问频度进行热点识别而导致的IO操作次数多的问题,本申请提供一种在键-值存储中热点识别方法,应用于热点识别装置,该热点识别装置获取第一键组,并确定第一键组中均包含相同的第一属性值以及第一键组中每一个键的第二属性值;然后,该热点识别装置根据第一键组的第一属性值构建第一键组的第一淘汰链表;最后,该热点识别装置根据第一淘汰链表中第一键组中的每一个键的第二属性值的访问热度识别每一个键的访问热度,因此,该热点识别装置可以从第一属性的维度和第二属性的维度综合识别第一键组中每一个键的访问热度,这样确定出的每一个键的访问热度较为准确,相应的,确定出的每一个键的缓存位置也较为合理,能够减少IO操作次数。
本申请实施例提供的在键-值存储中热点识别方法适用于热点识别装置。如图1所示,该热点识别装置为包括KV存储引擎10和数据库11的装置,KV存储引擎10包括索引区和存储介质,数据库11用于存储各种类型的数据。具体的,KV存储引擎10从数据库11中获取第一键组,并确定第一键组中均包含相同的第一属性值以及第一键组中每一个键的第二属性值,以及根据第一键组的第一属性值构建第一键组的第一淘汰链表,以及根据第一淘汰链表中第一键组中的每一个键的第二属性值的访问热度识别每一个键的访问热度。
具体的,上述热点识别装置的硬件结构如图2所示。参见图2,该热点识别装置包括接口20和处理器21,接口20与处理器21通信。
处理器21具体包括中央处理单元(英文:Center processing Unit,简称:CPU)和存储器,CPU执行存储器中的计算机指令用于处理器21的功能。本领域技术人员可知,其他实现方式也可以实现本发明实施例中的处理器21的实现方式(操作)。如通过现场可编程门阵列(英文:Field Programmable Gate Array,简称:FPGA)或其他硬件执行本发明实施例中处理器21的全部实现方式(操作),或者,FPGA或其他硬件与CPU分别执行本发明实施例处理器21的部分实现方式(操作),以实现本发明实施例描述的处理器21的实现方式(操作)。
需要说明的是,图2所示的热点识别装置的结构并不是对热点识别装置的限定,其可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在具体实现中,作为一种实施例,处理器21可以包括一个或多个CPU,例如图2中的处理器21包括CPU0和CPU1。
实施例一
本申请实施例提供一种在键-值存储中热点识别方法,如图3所示,该方法包括:
S300、热点识别装置获取第一键组,并确定第一键组中均包含相同的第一属性值以及第一键组中每一个键的第二属性值。
S301、热点识别装置根据第一键组的第一属性值构建第一键组的第一淘汰链表。
S302、热点识别装置根据第一淘汰链表中第一键组中的每一个键的第二属性值的访问热度识别每一个键的访问热度。
具体的,热点识别装置在开机时,从数据库中获取至少一个键,并从其获取到的至少一个键中获取第一键组,即执行S300。
其中,至少一个键中的每个键包括第一属性值和第二属性值,第一键组中每个键的第一属性值均相同。
从上面描述可知,KV存储引擎中存储的键通常包括DB_ID、Table_ID、Column_ID以及Time stamp_n等信息,因此,本申请实施例中每个键的第一属性值和第二属性值可以为DB_ID、Table_ID、Column_ID以及Time stamp_n中的任意一个,且第一属性值与第二属性值不同。
热点识别装置在获取到第一键组之后,根据第一键组的第一属性值构建第一键组的第一淘汰链表,即执行S301。
可以理解的是,第一键组中每个键的第一属性值均相同,因此,第一淘汰链表唯一对应第一键组的第一属性值。
具体的,热点识别装置在获取到第一键组后,能够确定出第一键组中每个键的第二属性值的访问热度,在第一淘汰链表中,热点识别装置将第一键组中的所有键根据第一预设规则依次排列。
可选的,上述第一预设规则可以为将第一键组中的所有键按照该第一键组中每个键的第二属性值的访问热度从高到低依次排列,也可以为将第一键组中的所有键按照该第一键组中每个键的第二属性值的访问热度从低到高依次排列,还可以为该第一键组包括N个键,N为大于1的奇数,则第1个键到第(N+1)/2个键中每个键对应的第二属性值的访问热度均高于第(N+3)/2个键到第N个键中每个键对应的第二属性值的访问热度,第1个键的第二属性值的访问热度到第(N+1)/2个键的第二属性值的访问热度逐渐升高,且第(N+3)/2个键的第二属性值的访问热度到第N个键的第二属性值的当问热度逐渐升高,本申请实施例对此不作具体限定。
可以看出,本申请实施例中的第一淘汰链表能够从第二属性的维度体现出第一键组中每一键的访问热度。
热点识别装置在构建出第一淘汰链表后,可根据第一淘汰链表中第一键组中的每一个键的第二属性值的访问热度识别每一个键的访问热度,即执行S302。
由于第一淘汰链表能够从第二属性的维度体现出第一键组中每一键的访问热度,因此,热点识别装置在构建出第一淘汰链表后,能够根据第一键组中的每一个键的第二属性值的访问热度识别每一个键的访问热度。
进一步地,热点识别装置在构建出第一淘汰链表后,还可以为该第一淘汰链表设置第一淘汰策略,以便于根据该第一淘汰策略确定第一淘汰链表中每个键的缓存位置。
可以理解的是,图3中S300至S302组成的子流程可以实现热点识别装置准确识别第一键组中每个键的访问热度。由于本申请实施例中热点识别装置获取到的键的第一属性值可以包括多种,且对于每一种第一属性值而言,热点识别装置构建淘汰链表,并识别淘汰链表中每个键的访问热度的方法都相同,因此,本申请实施例中S300至S302组成的子流程可以重复执行多次,以达到热点识别装置识别其获取到的每个键的访问热度的目的。
具体的,结合图3,如图4所示,本申请实施例提供的在键-值存储中热点识别方法还包括:
S300′、热点识别装置获取第二键组,并确定第二键组中均包含相同的第一属性值以及第二键组中每一个键的第二属性值。
S301′、热点识别装置根据第二键组的第一属性值构建第二键组的第二淘汰链表。
S302′、热点识别装置根据第一淘汰链表中第一键组中的每一个键的第二属性值的访问热度识别每一个键的访问热度。
其中,S300′至S302′组成的子流程可以视为S300至S302组成的子流程的重复执行,图4中用虚线表示。
上述两个子流程的不同之处仅仅为:S300′至S302′组成的子流程是针对第二键组,S300至S302组成的子流程是针对第一键组,第一键组的第一属性值与第二键组的第一属性值不同。
因此,S300′至S302′组成的子流程实现细节可以参考上述S300至S302组成的子流程,此处对此不再进行详细赘述。
需要说明的是,本申请实施例中的热点识别装置执行S300至S302组成的子流程和S300′至S302′组成的子流程的顺序没有先后依赖关系。例如,可以并发地同时执行S300至S302组成的子流程和S300′至S302′组成的子流程;也可以顺序地执行S300至S302组成的子流程和S300′至S302′组成的子流程,例如先执行S300至S302组成的子流程,后执行S300′至S302′组成的子流程,或者反之先执行S300′至S302′组成的子流程,后执行S300至S302组成的子流程;还可以先执行一个子流程的部分步骤,再执行另一个子流程的部分步骤。本申请实施例对此不作具体限定。
图4仅仅示出了S300至S302组成的子流程和S300′至S302′组成的子流程的其中一种执行顺序,并不代表实际执行顺序。
热点识别装置在构建出第二淘汰链表后,还可为第二淘汰链表设置第二淘汰策略,以便于根据第二淘汰策略确定第二键组中每个键的缓存位置。
进一步地,在分别执行S301和S301′之后,热点识别装置还根据第一键组的第一属性值和第二键组的第一属性值构建第三淘汰链表,并分别根据第三淘汰链表中第一键组的第一属性值的访问热度和第二键组的第一属性值的访问热度识别第一键组的访问热度和第二键组的访问热度。
具体的,结合图4,如图5所示,本申请实施例提供的在键-值存储中热点识别方法在S301和S301′之后还包括:
S500、热点识别装置根据第一键组的第一属性值和第二键组的第一属性值构建第三淘汰链表。
S501、热点识别装置分别根据第三淘汰链表中第一键组的第一属性值的访问热度和第二键组的第一属性值的访问热度识别第一键组的访问热度和第二键组的访问热度。
第一键组的第一属性值和第二键组的第一属性值不同,且热点识别装置可以获取到第一键组的第一属性值的访问热度和第二键组的第一属性值的访问热度,热点识别装置根据第一键组的第一属性值的访问热度和第二键组的第一属性值的访问热度,构建第三淘汰链表。
可以理解的是,本申请实施例中的第三淘汰链表由第一淘汰链表和第二淘汰链表组成。具体的,热点识别装置将第一淘汰链表和第二淘汰链表按照第二预设规则依次排列。
可选的,上述第二预设规则可以为至少一个淘汰链表按照每个淘汰链表对应的第一属性值的访问热度从高到低依次排列,也可以为至少一个淘汰链表按照每个淘汰链表对应的第一属性值的访问热度从低到高依次排列,还可以为若识别装置生成N个淘汰链表,N为大于1的奇数,则第1个键组到第(N+1)/2个键组中每个键组对应的第一属性值的访问热度均高于第(N+3)/2个键组到第N个键组中每个键组对应的第一属性值的访问热度,第1个键组的第一属性值的访问热度到第(N+1)/2个键组的第一属性值的访问热度逐渐升高,且第(N+3)/2个键组的第一属性值的访问热度到第N个键组的第一属性值的当问热度逐渐升高,本申请实施例对此不作具体限定。
可以看出,本申请实施例中的第三淘汰链表能够从第一属性和第二属性的维度分别体现出每一键的访问热度。
热点识别装置在构建出第三淘汰链表后,可分别根据第三淘汰链表中第一键组的第一属性值的访问热度和第二键组的第一属性值的访问热度识别第一键组的访问热度和第二键组的访问热度。
进一步地,热点识别装置为第三淘汰链表设置第三淘汰策略。这样,热点识别装置根据第三淘汰策略可确定第一键组和第二键组的缓存位置。
为了更加方便理解本申请实施例提供的在键-值存储中热点识别方法,以热点识别装置获取到6个键,每个键包括DB_ID、Table_ID、Column_ID以及Time stamp_n,且每个键的格式为“Key:[DB_ID][Table_ID][Column_ID][Time stamp_n]”,第一属性值为Table_ID,第二属性值为Column_ID,第一预设规则为淘汰链表中的至少一个键按照每个键的第二属性值的访问热度从低到高依次排列,第二预设规则为至少一个淘汰链表按照每个淘汰链表对应的第一属性值的访问热度从低到高依次排列为例进行说明。
热点识别装置获取到Key 0:[DB_01][Table_01][Column_3][Time stamp_1],Key1:[DB_01][Table_02][Column_8][Time stamp_2],Key 2:[DB_02][Table_01][Column_5][Time stamp_1],Key 3:[DB_01][Table_01][Column_4][Time stamp_1],Key 4:[DB_01][Table_02][Column_3][Time stamp_1]以及Key5:[DB_01][Table_02][Column_6][Timestamp_1],并确定出Table_02的访问热度大于Table_01的访问热度,Column_5的访问热度大于Column_3的访问热度,Column_3的访问热度大于Column_8的访问热度,Column_8的访问热度大于Column_4的访问热度,且Column_4的访问热度大于Column_6的访问热度。该热点识别装置从其获取到的6个键中获取Key 0、Key 2和Key 3,即获取第一键组,第一键组的第一属性值为Table_01,并根据Table_01构建第一淘汰链表。该热点识别装置还获取Key1、Key 4和Key 5,即获取第二键组,第二键组的第一属性值为Table_02,并根据Table_02构建第二淘汰链表。如图6所示,第一淘汰链表唯一对应Table_01,第二淘汰链表唯一对应Table_02,每个淘汰链表中的Key按照Column_ID的访问热度从低到高依次排列。热点识别装置还根据Table_01和Table_02构建第三淘汰链表,第三淘汰链表中Table_01的访问热度小于Table_02的访问热度。热点识别装置根据图6示出的淘汰链表可以从不同的角度确定出每一Key的缓存位置,这样可以有效减小该识别装置IO的操作次数。
本申请提供一种在键-值存储中热点识别方法,在获取到第一键组,并确定出第一键组中均包含相同的第一属性值以及第一键组中每一个键的第二属性值之后,根据第一键组的第一属性值构建第一键组的第一淘汰链表,并根据第一淘汰链表中第一键组中的每一个键的第二属性值的访问热度识别每一个键的访问热度。与现有技术相比,本申请不再根据用户对整个键的访问频度进行热点识别,而是从第一属性的维度和第二属性的维度综合识别每一个键的访问热度,因此,确定出的每一个键的访问热度较为准确,相应的,每一个键的缓存位置的确定也较为合理,能够减少IO操作次数。
实施例二
本申请实施例提供一种热点识别装置,该热点识别装置用于执行以上在键-值存储中热点识别方法中的热点识别装置所执行的步骤。所述热点识别装置可以包括相应步骤所对应的模块。
本申请实施例可以根据上述方法示例对热点数据的识别装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图7示出了上述实施例中所涉及的热点识别装置的一种可能的结构示意图。如图7所示,热点识别装置包括获取单元70、确定单元71、构建单元72和识别单元73。获取单元70用于支持热点识别装置执行图3中的S300和图4中的S300′;确定单元71用于支持热点识别装置执行图3中的S300和图4中的S300′;构建单元52用于支持热点识别装置执行图3中的S301、图4中的S301′和图5中的S500;识别单元53用于支持热点识别装置执行图3中的S302、图4中的S302′和图5中的S501。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图8示出了上述实施例中所涉及的热点识别装置的一种可能的结构示意图。如图8所示,热点识别装置包括:处理模块80和通信模块81。处理模块80用于对热点识别装置的动作进行控制管理,例如,处理模块80用于支持该热点识别装置执行图3中的S300、S301和S302。通信模块81用于支持该热点识别装置与其他装置通信。
其中,处理模块80可以是图2中示出的处理器21,通信模块81可以是图2中示出的接口20。
可以理解的是,热点识别装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
如图3-图5中任意一个附图所示的实施例所述的在键-值存储中热点识别方法如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本领域内的技术人员应明白,本申请的实施例可提供为方法、电子设备、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个包括有程序代码的计算机可读存储介质上实施的计算机程序产品的形式,所述计算机存储介质包括但不限于U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、磁盘存储器、随机存取存储器(英文:Random Access Memory,简称:RAM)、光学存储器等。
相应的,本申请另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括一个或多个程序代码,该一个或多个程序包括指令,当热点识别装置中的处理器在执行该程序代码时,该热点识别装置执行如图3-图5中任意一个附图所示的在键-值存储中热点识别方法。
本申请实施例提供了一种热点识别装置,该热点识别装置在获取到第一键组,并确定出第一键组中均包含相同的第一属性值以及第一键组中每一个键的第二属性值之后,根据第一键组的第一属性值构建第一键组的第一淘汰链表,并根据第一淘汰链表中第一键组中的每一个键的第二属性值的访问热度识别每一个键的访问热度。与现有技术相比,本申请不再根据用户对整个键的访问频度进行热点识别,而是从第一属性的维度和第二属性的维度综合识别每一个键的访问热度,因此,确定出的每一个键的访问热度较为准确,相应的,每一个键的缓存位置的确定也较为合理,能够减少IO操作次数。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。
例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (12)

1.一种在键-值存储中热点识别方法,其特征在于,包括:
获取第一键组,并确定所述第一键组中均包含相同的第一属性值以及所述第一键组中每一个键的第二属性值;
根据所述第一键组的第一属性值构建所述第一键组的第一淘汰链表;
根据所述第一淘汰链表中所述第一键组中的每一个键的第二属性值的访问热度识别每一个键的访问热度。
2.根据权利要求1所述的在键-值存储中热点识别方法,其特征在于,所述在键-值存储中热点识别方法还包括:
获取第二键组,并确定所述第二键组中均包含相同的第一属性值以及所述第二键组中每一个键的第二属性值;
根据所述第二键组的第一属性值构建所述第二键组的第二淘汰链表;
根据所述第一键组的第一属性值和所述第二键组的第一属性值构建第三淘汰链表,所述第一键组的第一属性值与所述第二键组的第一属性值不同;
分别根据所述第三淘汰链表中所述第一键组的第一属性值的访问热度和所述第二键组的第一属性值的访问热度识别所述第一键组的访问热度和所述第二键组的访问热度。
3.根据权利要求2所述的在键-值存储中热点识别方法,所述在键-值存储中热点识别方法还包括:
为所述第一淘汰链表设置第一淘汰策略。
4.根据权利要求2或3所述的在键-值存储中热点识别方法,其特征在于,所述在键-值存储中热点识别方法还包括:
为所述第二淘汰链表设置第二淘汰策略;
为所述第三淘汰链表设置第三淘汰策略。
5.一种热点识别装置,其特征在于,包括:
获取单元,用于获取第一键组;
确定单元,用于确定所述获取单元获取到的所述第一键组中均包含相同的第一属性值以及所述第一键组中每一个键的第二属性值;
构建单元,用于根据所述确定单元确定的所述第一键组的第一属性值构建所述第一键组的第一淘汰链表;
识别单元,用于根据所述构建单元构建的所述第一淘汰链表中所述第一键组中的每一个键的第二属性值的访问热度识别每一个键的访问热度。
6.根据权利要求5所述的热点识别装置,其特征在于,
所述获取单元,还用于获取第二键组;
所述确定单元,还用于确定所述获取单元获取到的所述第二键组中均包含相同的第一属性值以及所述第二键组中每一个键的第二属性值;
所述构建单元,还用于根据所述确定单元确定的所述第二键组的第一属性值构建所述第二键组的第二淘汰链表,以及用于根据所述第一键组的第一属性值和所述第二键组的第一属性值构建第三淘汰链表,所述第一键组的第一属性值与所述第二键组的第一属性值不同;
所述识别单元,还用于分别根据所述构建单元构建的所述第三淘汰链表中所述第一键组的第一属性值的访问热度和所述第二键组的第一属性值的访问热度识别所述第一键组的访问热度和所述第二键组的访问热度。
7.根据权利要求6所述的热点识别装置,其特征在于,所述热点识别装置还包括设置单元,
所述设置单元,用于为所述构建单元构建的所述第一淘汰链表设置第一淘汰策略。
8.根据权利要求7所述的热点识别装置,其特征在于,
所述设置单元,还用于为所述构建单元构建的所述第二淘汰链表设置第二淘汰策略,以及还用于为所述构建单元构建的所述第三淘汰链表设备第三淘汰策略。
9.一种热点识别装置,其特征在于,包括接口和处理器,所述接口与所述处理器通信,其中:
所述接口,用于获取第一键组;
所述处理器,用于确定所述接口获取到的所述第一键组中均包含相同的第一属性值以及所述第一键组中每一个键的第二属性值,以及用于根据所述第一键组的第一属性值构建所述第一键组的第一淘汰链表,以及用于根据所述第一淘汰链表中所述第一键组中的每一个键的第二属性值的访问热度识别每一个键的访问热度。
10.根据权利要求9所述的热点识别装置,其特征在于,
所述接口,还用于获取第二键组;
所述处理器,还用于确定所述第二键组中均包含相同的第一属性值以及所述第二键组中每一个键的第二属性值,以及还用于根据所述第二键组的第一属性值构建所述第二键组的第二淘汰链表,以及还用于根据所述第一键组的第一属性值和所述第二键组的第一属性值构建第三淘汰链表,所述第一键组的第一属性值与所述第二键组的第一属性值不同,以及还用于分别根据所述第三淘汰链表中所述第一键组的第一属性值的访问热度和所述第二键组的第一属性值的访问热度识别所述第一键组的访问热度和所述第二键组的访问热度。
11.根据权利要求10所述的热点识别装置,其特征在于,
所述处理器,还用于为所述第一淘汰链表设置第一淘汰策略。
12.根据权利要求10或11所述的热点识别装置,其特征在于,
所述处理器,还用于为所述第二淘汰链表设置第二淘汰策略,以及还用于为所述第三淘汰链表设备第三淘汰策略。
CN201610627344.4A 2016-08-02 2016-08-02 一种在键-值存储中热点识别方法及装置 Active CN106250327B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610627344.4A CN106250327B (zh) 2016-08-02 2016-08-02 一种在键-值存储中热点识别方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610627344.4A CN106250327B (zh) 2016-08-02 2016-08-02 一种在键-值存储中热点识别方法及装置

Publications (2)

Publication Number Publication Date
CN106250327A CN106250327A (zh) 2016-12-21
CN106250327B true CN106250327B (zh) 2019-04-19

Family

ID=57606139

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610627344.4A Active CN106250327B (zh) 2016-08-02 2016-08-02 一种在键-值存储中热点识别方法及装置

Country Status (1)

Country Link
CN (1) CN106250327B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649150B (zh) * 2016-12-26 2020-04-24 锐捷网络股份有限公司 一种缓存管理方法及装置
CN109144958B (zh) * 2018-07-02 2021-08-03 广东睿江云计算股份有限公司 一种联合文件系统文件访问频率元数据采集方法及装置
CN112650752A (zh) * 2020-12-22 2021-04-13 深圳壹账通智能科技有限公司 热点key的确定方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904643B1 (en) * 2004-07-22 2011-03-08 Netlogic Microsystems, Inc. Range code compression method and apparatus for ternary content addressable memory (CAM) devices
CN103186350A (zh) * 2011-12-31 2013-07-03 北京快网科技有限公司 混合存储系统及热点数据块的迁移方法
CN104750715A (zh) * 2013-12-27 2015-07-01 中国移动通信集团公司 缓存系统中数据淘汰方法、装置、系统及相关服务器设备
CN105447059A (zh) * 2014-09-29 2016-03-30 华为技术有限公司 一种数据处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904643B1 (en) * 2004-07-22 2011-03-08 Netlogic Microsystems, Inc. Range code compression method and apparatus for ternary content addressable memory (CAM) devices
CN103186350A (zh) * 2011-12-31 2013-07-03 北京快网科技有限公司 混合存储系统及热点数据块的迁移方法
CN104750715A (zh) * 2013-12-27 2015-07-01 中国移动通信集团公司 缓存系统中数据淘汰方法、装置、系统及相关服务器设备
CN105447059A (zh) * 2014-09-29 2016-03-30 华为技术有限公司 一种数据处理方法及装置

Also Published As

Publication number Publication date
CN106250327A (zh) 2016-12-21

Similar Documents

Publication Publication Date Title
US11119834B2 (en) Artificial creation of dominant sequences that are representative of logged events
CN110019292B (zh) 一种数据的查询方法及装置
US8849775B2 (en) Caching web documents in two or more caches
Liu et al. Powerwalk: Scalable personalized pagerank via random walks with vertex-centric decomposition
CN108897761A (zh) 一种聚簇存储方法及装置
CN106250327B (zh) 一种在键-值存储中热点识别方法及装置
CN103970870A (zh) 数据库查询方法和服务器
JP2022526931A (ja) マスタ・データ管理システムのデータ記録にアクセスするための方法
WO2012044214A1 (en) Method and arrangement for processing data
Hoque et al. Disk layout techniques for online social network data
CN108140022B (zh) 数据查询方法和数据库系统
US8965900B2 (en) Efficiently finding spatially scored best entities
WO2014137258A1 (en) Selection of data storage settings for an application
Yue et al. Scalability and generalization of circuit training for chip floorplanning
Serpa et al. Flexible use of temporal and spatial reasoning for fast and scalable CPU broad‐phase collision detection using KD‐Trees
CN106980673A (zh) 内存数据库表索引更新方法及系统
JP5283767B2 (ja) データベースの管理方法、マスタノード、およびプログラム
CN109255001A (zh) 接口实例库的维护方法及装置、电子设备
CN115576947A (zh) 一种数据管理方法、装置、组合库、电子设备及存储介质
CN110825939B (zh) 帖子的分数生成、排序方法、装置、电子设备及存储介质
CN109033158A (zh) 基于指定时间窗的数据去重统计方法及装置
CN108984615B (zh) 一种数据查询方法和系统、存储介质
AT&T
CN107679093B (zh) 一种数据查询方法及装置
CN113868242B (zh) 全局索引的分布策略调整方法、计算机设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant