CN105610881B - 一种分布式缓存范围查询方法、装置及*** - Google Patents

一种分布式缓存范围查询方法、装置及*** Download PDF

Info

Publication number
CN105610881B
CN105610881B CN201410637554.2A CN201410637554A CN105610881B CN 105610881 B CN105610881 B CN 105610881B CN 201410637554 A CN201410637554 A CN 201410637554A CN 105610881 B CN105610881 B CN 105610881B
Authority
CN
China
Prior art keywords
node
value
ident value
specified range
ident
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
CN201410637554.2A
Other languages
English (en)
Other versions
CN105610881A (zh
CN105610881B9 (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410637554.2A priority Critical patent/CN105610881B9/zh
Priority to PCT/CN2015/093310 priority patent/WO2016070750A1/zh
Publication of CN105610881A publication Critical patent/CN105610881A/zh
Publication of CN105610881B publication Critical patent/CN105610881B/zh
Application granted granted Critical
Publication of CN105610881B9 publication Critical patent/CN105610881B9/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种分布式缓存范围查询方法。包括:将用于映射缓存数据的关键字中,可用于范围查询的字段值对应的标识值,预先存储在内存的存储区域中,响应于接收到针对指定范围的关键字的查询请求,从所述存储区域中查找出所述指定范围的端点值对应的标识值,根据所述指定范围的端点值对应的标识值确定所述指定范围对应的关键字集合,实现了与数据库解耦的范围查询。另外,本申请还公开了一种分布式缓存范围查询装置及***。

Description

一种分布式缓存范围查询方法、装置及***
技术领域
本发明涉及分布式缓存,尤其涉及一种分布式缓存范围查询方法、装置及***。
背景技术
分布式缓存,是一种通过分布式缓存服务器集群将缓存数据以key-value(关键字-缓存数据)的形式存储在内存Hash表中的数据缓存方式。分布式缓存通过在内存中缓存数据和对象来减少访问数据库的次数,提高了数据访问速度。
目前,为了支持分布式缓存的范围查询,主要通过在关系型数据库中建立支持范围查询的索引来实现对关联key的范围查询。当服务端收到一个范围条件查询请求时,通过关系型数据库的索引,根据范围查询条件查询出符合特定范围的关联key,再到分布式缓存中根据key直接查询得到对应的value。
但是,由于目前分布式缓存的范围查询需要通过数据库索引来实现,没有脱离对数据库的强依赖,查询性能相对较差。
发明内容
有鉴于此,本申请的目的在于提供一种分布式缓存范围查询方法、装置及***以在与数据库完全解耦的情况下实现范围查询的目的。
在本申请实施例的第一个方面,提供了一种分布式缓存范围查询方法。例如,该方法可以包括:将用于映射缓存数据的关键字中,可用于范围查询的字段值对应的标识值,预先存储在内存的存储区域中;响应于接收到针对指定范围的关键字的查询请求,从所述存储区域中查找出所述指定范围的端点值对应的标识值;根据所述指定范围的端点值对应的标识值确定所述指定范围对应的关键字集合。
在本申请实施例的第二个方面,提供了一种分布式缓存范围查询装置。例如,该装置可以包括:预处理单元,用于将用于映射缓存数据的关键字中,可用于范围查询的字段值对应的标识值,预先存储在内存的存储区域中;查询响应单元,用于响应于接收到针对指定范围的关键字的查询请求,从所述存储区域中查找出所述指定范围的端点值对应的标识值;关键字获取单元,用于根据所述指定范围的端点值对应的标识值确定所述指定范围对应的关键字集合。
在本申请实施例的第三个方面,提供了一种分布式缓存范围查询***。例如,该***可以包括:缓存服务器,可以用于存储与关键字具有映射关系的缓存数据,接收查询服务器发出的针对关键字集合对应的缓存数据的查询请求,向查询服务器反馈关键字集合对应的缓存数据;查询服务器,可以用于将用于映射缓存数据的关键字中,可用于范围查询的字段值对应的标识值,预先存储在内存的存储区域中,响应于从客户端接收到针对指定范围的关键字对应的缓存数据的查询请求,从所述存储区域中查找出所述指定范围的端点值对应的标识值,根据所述指定范围的端点值对应的标识值确定所述指定范围对应的关键字集合,从所述缓存服务器中得到所述关键字集合对应的缓存数据,将得到的缓存数据反馈给发出所述查询请求的客户端;客户端,可以用于向所述查询服务器发送针对指定范围的关键字对应的缓存数据的查询请求;接收查询服务器反馈的缓存数据。
可见本申请具有如下有益效果:
由于本申请实施例预先将用于映射缓存数据的各个关键字中,可用于范围查询的字段值对应的标识值,预先存储在内存的存储区域中,因此,在接收到针对指定范围的关键字的查询请求后,从所述存储区域中查找出所述指定范围的端点值对应的标识值的查询可以全部在内存中完成,无需访问数据库,实现了与数据库解耦的范围查询。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的分布式缓存范围查询方法流程示意图;
图2为本申请另一实施例提供的分布式缓存范围查询方法流程示意图;
图3为本申请一实施例涉及的节点环示意图;
图4为本申请另一实施例涉及的节点环示意图;
图5为本申请一施例提供的分布式缓存范围查询装置结构示意图;
图6为本申请另一实施例提供的分布式缓存范围查询装置结构示意图;
图7为本申请施例提供的分布式缓存范围查询***结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
为了使本申请实施例更加便于理解,首先对本申请实施例可能的应用场景进行举例说明。例如,本申请实施例可以应用于与用于存储缓存数据的一台或多台缓存服务器不同的单独的查询服务器中。其中,多台缓存服务器中保存了由酒店ID与日期值组成的关键字与缓存数据的映射。应用本申请实施例提供的方法的查询服务器可以接收针对酒店ID在指定范围的查询请求,得到与查询请求对应的关键字集合。例如,可以查询出酒店ID在7到32范围内的关键字集合。
基于上述分析,本申请实施例提供了如下的分布式缓存范围查询方法及装置。
例如,参见图1,为本申请实施例提供的分布式缓存范围查询方法流程示意图。如图1所示,该方法可以包括:
S110、将用于映射缓存数据的关键字中,可用于范围查询的字段值对应的标识值,预先存储在内存的存储区域中。
例如,为了减少节点环中的节点数量,提高查询效率,可以将所有关键字属于同一字段的字段值中重复的部分剔除,仅将同一字段的不同字段值预先存储在内存的一个存储区域中。
其中,位于内存的存储区域的存储结构不限,例如,可以是单向链表、数组、环状链表等。例如,一些可能的实施方式中,可以将所述关键字中,可用于范围查询的字段值对应的标识值,预先存储在位于内存的节点环(即,环状链表)中,其中,一个标识值对应存储到一个节点中,且为所述节点环中的每一节点建立对应的路由表,所述路由表记录了根据预置索引算法确定的一个或多个其他节点的标识值。
一些可能的实施方式中,所述预置索引算法可以为:用一个路由表来记录节点环中与该路由表对应的节点的标识值间距成2的幂次方关系的标识值。相应的,步骤S110具体可以为:将关键字中,可用于范围查询的、属于同一字段的字段值对应的标识值按标识值大小顺序存储在位于内存的节点环中,其中,所述路由表记录了所述节点环中与对应节点的标识值间距成2的幂次方关系的标识值。通常而言,由于缓存数据中可用于范围查询的字段值所对应的标识值通常是相差不大的值,路由表中记录与一节点的标识值间距成2的幂次方关系的标识值对应的节点,可便于后续的查找,提高查找效率。
当然,预置索引算法不仅限于上面实施方式中这一种,具体可以根据实际查询效率需要进行设置,本申请对此并不进行限制。例如,所述预置索引算法还可以为:用路由表来记录节点环中与该路由表对应的节点的标识值间距为指定常量整数倍的标识值,等等。
可以理解的是,key(关键字)可以由各种字段不同的字段构成,其中,可用于范围查询的字段可以包括如,数字、日期等字段。例如,如果需要对日期做范围查询,则可以从各个关键字中提取出日期值,将提取出的不同日期值对应转换为可以根据预置索引算法运算的标识值。结合上面节点环的实施方式,则可以将标识值以链表的形式存储为首尾相连的、按日期值大小顺序排序的节点环。例如,原始关键字为“date-2014年08月07日-hotelId-18873”,关键字体现了日期与酒店id对应关系,日期“2014年08月07日”可以转换为标识值140807。其中,按标识值大小顺序排序具体为按字段值从小到大顺序排序,也可以为从大到小顺序排序。
S120、响应于接收到针对指定范围的关键字的查询请求,从所述存储区域中查找出所述指定范围的端点值对应的标识值。
例如,在标识值存储在节点环的实施例中,可以响应于接收到针对指定范围的关键字的查询请求,以所述节点环中的任一节点作为当前节点,在所述当前节点的路由表中查找距所述指定范围的端点值最近的标识值。如果判定查找到的标识值是所述节点环中距所述指定范围的端点值最近的标识值,将查找到的标识值作为所述指定范围的端点值对应的标识值;如果判定查找到的标识值不是所述节点环中距所述指定范围的端点值最近的标识值,将查找到的标识值作为当前节点,则返回到所述在当前节点的路由表中查找距所述指定范围的端点值最近的标识值的步骤。
可以理解的是,指定范围可以包括一个或多个指定范围,端点值可以为用于确定指定范围区间的端点值。例如,指定日期范围可以包括:2001年1月1日到2001年5月1日,以及,2002年1月1日到2002年5月1日。则端点值可以包括:010101与010501、020101与020501。
需要说明的是,所述端点值对应的标识值可以是与所述端点值相等的标识值,在不存在与所述端点值相等的标识值的情况下,可以是节点环中在所述指定范围内与所述端点值最近的标识值。
S130、根据所述指定范围的端点值对应的标识值确定所述指定范围对应的关键字集合。
例如,可以根据所述指定范围的端点值对应的标识值,构造出在所述指定范围内的关键字,得到所述指定范围对应的关键字集合。具体地,例如,可以预先为不同类型关键字设置对应的关键字构造规则,根据需要查询的关键字的类型,采用对应的关键字构造规则,将标识值对应的字段值作为输入变量,构造出对应的关键字,得到查询请求对应的关键字集合。假设需要构造体现日期与酒店id对应关系的关键字,则,可以根据关键字构造规则预设的不同酒店id,将查找出的标识值对应的日期字段值与不同酒店id分别进行拼接,得到完整的关键字。当然,还可以有其他跟标识值确定关键字的方法,本领域技术人员可以根据实际实施需要设置,在此不再赘述。
例如,一些可能的实施方式中,本申请实施例提供的方法可以应用于与存储缓存数据的一台或多台缓存服务器不同的单独的查询服务器中,在得到指定范围对应的关键字集合之后,还可以进一步通过一次多线程下载并发从所述一台或多台缓存服务器中得到所述关键字集合对应的缓存数据,将得到的缓存数据返回给发出所述查询请求的客户端。
可见,应用本申请实施例提供的方法,在接收到针对指定范围的关键字的查询请求后,从所述存储区域中查找出所述指定范围的端点值对应的标识值的查询可以全部在内存中完成,无需访问数据库,实现了与数据库解耦的范围查询。
下面,对路由表用于记录节点环中与对应节点的标识值间距成2的幂次方关系的标识值的实施例进行详细说明。例如,该实施例可以包括:
S210、将关键字中,可用于范围查询的、属于同一字段的字段值对应的标识值按标识值大小顺序预先存储在位于内存的节点环中,其中,一个标识值对应存储到一个节点中,且为所述节点环中的每一节点建立对应的路由表,其中,所述路由表记录了所述节点环中与对应节点的标识值间距成2的幂次方关系的标识值。
其中,间距成2的幂次方关系的标识值可以指,间距等于2i-1的节点的标识值,以及,当不存在间距等于2i-1的标识值时,间距最接近2i-1的节点标识值。例如,在一些可能的实施方式中,为了尽量拉开合适的间距以提高查询效率,间距最接近2i-1的标识值可以取间距大于2i-1的标识值中,间距最接近2i-1的标识值,其中,i为整数,且大于等于1、小于等于所述节点环中节点的最大标识值取2的对数再向上取整的得数。
例如,如图3所示的节点环,其中,节点旁边标注的2、8、10、16等数字为用于标识节点的标识值。如图3所示的节点环中的每个节点维护了一个m项的路由表。其中,标识值以二进制来表示的话,m为节点环中最大的二进制标识值的位数。若L表示环中标识值最大的节点,则m为L取2对数向上取整。即:如图3所示,需要将所有节点分布到环上,m的取值应该为6。在每个节点维护的m项路由表中,路由表的第i项纪录的标识值等于:
successor((该节点的标识值+2i-1)mod2m),(1≤i≤m)。
由于路由表记录了与对应节点的标识值间距成2的幂次方关系的标识值,因此,每个节点的直接后继节点为其路由表的第一项。为了便于下面查询指定范围的端点值对应的标识值,节点环中每一节点同时还维护自身的直接前驱节点。在本申请实施例中,由于路由表记录的标识值的间隔以指数增长,路由表中记录的与对应节点临近的节点的密度比远端节点的密度大,所以,在下面以路由表为索引查询指定范围对应的标识值过程中,如果指定范围的端点值离当前节点的标识值较远,则可以根据路由表记录的较为稀疏的远端节点快速跳到更远的节点进行查询,如果指定范围的端点离当前节点的标识值较近,则可以根据路由表记录的较为密集的临近的节点更加准确地跳到更加接近标识值的节点上进行查询。因此,通过本申请实施例为节点建立的路由表,可以进行高效的范围查询。
S220、响应于接收到针对指定范围的关键字的查询请求,以所述节点环中的任一节点作为当前节点;
S230、在所述当前节点的路由表中查找出距所述指定范围的端点值最近的标识值。
S240、如果判定查找到的标识值是所述节点环中距所述指定范围的端点值最近的标识值,将查找到的标识值作为所述指定范围的端点值对应的标识值。
S250、如果判定查找到的标识值不是所述节点环中距所述指定范围的端点值最近的标识值,将当前节点更新为查找到的标识值所在节点,返回到S230所述在当前节点的路由表中查找距所述指定范围的端点值最近的标识值的步骤。
下面,结合标识值对应的节点在节点环中按标识值从小到大的顺序排序的实施方式,对本申请实施例上述步骤S220-S250可能的实施方式进行详细说明。例如,在该实施方式中,所述指定范围可以为第一端点值到第二端点值之间的范围,其中,所述第一端点值小于第二端点值,S220-S250可能的查询步骤可以包括:
在接收到查询请求时,可以将节点环中任一节点作为当前节点。
判断所述当前节点的路由表记录的标识值中是否存在与所述第一端点值相等的标识值。
如果是,将与所述第一端点值相等的标识值作为与所述第一端点值对应的标识值。
如果否,判断所述第一端点值是否在所述当前节点的标识值与其直接前驱节点或直接后继节点的标识值之间。可以理解的是,如果端点值在所述当前节点的标识值与其直接前驱节点或与其直接后继节点的标识值之间,则说明在节点环中不存在与端点值相等的标识值,只能在当前节点、当前节点的直接前驱节点或直接后继节点中选择出所述端点值对应的标识值,具体可以依据端点值是范围的起始端点还是终止端点来选择。如果端点值不在所述当前节点的标识值与其直接前驱节点或与其直接后继节点的标识值之间,则说明节点环中其他位置可能存在与端点值相等的标识值,则可以跳到当前节点的路由表中记录的距所述端点值最近的标识值所标识的节点,继续进行判断。
如果所述第一端点值在所述当前节点的标识值与其直接前驱节点的标识值之间,则将所述当前节点的标识值作为与所述第一端点值对应的标识值。
如果所述第一端点值在所述当前节点的标识值与其直接后继节点的标识值之间,将所述当前节点的直接后继节点的标识值作为所述第一端点值对应的标识值。
如果所述第一端点值不在所述当前节点的标识值与其直接后继节点的标识值之间,且不在所述当前节点的标识值与其直接前驱节点的标识值之间,则将所述当前节点更新为所述当前节点的路由表中记录的距所述第一端点值最近的标识值所标识的节点,返回到上述判断当前节点的路由表记录的标识值中是否存在与所述第一端点值相等的标识值的步骤。
判断所述当前节点的路由表记录的标识值中是否存在与所述第二端点值相等的标识值。
如果是,则将与所述第二端点值相等的标识值作为与所述第二端点值对应的标识值。
如果否,判断所述第二端点值是否在所述当前节点的标识值与其直接前驱节点或直接后继节点的标识值之间。
如果所述第二端点值在所述当前节点的标识值与其直接前驱节点的标识值之间,则将所述当前节点的直接前驱节点的标识值作为所述第二端点值对应的标识值。
如果所述第二端点值在所述当前节点的标识值与其直接后继节点的标识值之间,将所述当前节点的标识值作为所述第二端点值对应的标识值。
如果所述第二端点值不在所述当前节点的标识值与其直接后继节点的标识值之间,且不在所述当前节点的标识值与其直接前驱节点的标识值之间,则将所述当前节点更新为所述当前节点的路由表中记录的距所述第二端点值最近的标识值所在的节点,返回到所述判断当前节点的路由表记录的标识值中是否存在与所述第二端点值相等的标识值的步骤。
需要说明的是,针对第一端点值对应的标识值以及第二端点值对应的标识值的查询步骤可以同时并发执行,也可以先后执行,本申请实施例针对不同端点值的查询步骤执行顺序并无限制。
下面,结合图3所示节点环,以及以所接收到的查询请求为查询标识值7到32范围内的缓存信息为例对上述查询步骤进行示意性说明。可以理解的是,在此以数字举例仅为便于理解,如果可用于范围查询的字段值是非数字类型的,可以将非数字类型的字段值转换为数字类型的标识值。例如,可以首先从节点2出发,根据端点值7在节点2与节点2的直接后继节点8之间,确定节点环中不存在标识值为7的节点。所以端点值7对应的标识值为8。然后,从节点8出发,根据节点8的路由表中与节点32最接近的节点为节点28,跳到节点28的路由表进行查询,查询节点28的路由表信息,根据与32最接近的节点为节点30,跳到节点30的路由表进行查询,根据32位于节点30与其直接后继节点33之间,确定节点环中不存在标识值为32的节点。所以32对应的标识值为30。从而,根据如图3所示的节点环,查找出指定范围7到32内的标识值包括:8,10,16,21,28,30。由此,利用环节点的路由表查询指定范围7到32的标识值结束。
S260、根据指定范围的端点值对应的标识值确定所述指定范围对应的关键字集合。
可见,应用该实施例,可以直接从内存读取该节点环,以节点环中节点的路由表作为索引进行范围查询,脱离对数据库的依赖、读取速度快,且路由表记录的是所述节点环中与对应节点的标识值间距成2的幂次方关系的标识值,因此,在根据路由表查找指定范围的端点值对应的标识值的过程中,总是跳到距端点值最近的字段值所标识的节点的路由表中来查找,最终查找出指定范围对应的关键字集合,从而使查询过程成为折半查找的过程,达到高效范围查询的目的。例如,以一亿个节点为例,L=100,000,000,那么每个节点需要维护的路由表项数为log2L=27,查询其中任意一个节点需要经历的跳数最多为logL=8,所以,查询的性能是非常高的。
另外,对于分布式缓存***来说,缓存的关键字可能在任何时候加入或者删除。与此同时,为了保证节点环以及路由表与缓存中的关键字一致,需要在关键字加入或删除的同时,更新节点环以及路由表。具体地,本申请实施例还可以包括:
针对缓存中新加入的关键字,判断新加入的关键字中可用于范围查询的字段值对应的标识值是否已存在于所述节点环中,如果否,将该标识值存储在新节点中,在所述节点环中查找出可作为新节点的直接前驱节点的节点N,更新所述节点N的直接后继节点的直接前驱节点为所述新节点,更新所述节点N为所述新节点的直接前驱节点,为所述新节点建立对应的路由表;
针对缓存中删除的关键字,如果所述删除的关键字的字段中可用于范围查询的字段值不存在于任何其他关键字中,将存储了该字段值对应的标识值的节点作为待删除节点,更新待删除节点的直接后继节点的直接前驱节点为所述待删除节点的直接前驱节点,从所述节点环中删除所述待删除节点;
以及,根据预置索引算法,对受所述新节点的加入影响或受所述待删除节点的删除影响而需要更新的路由表进行更新。例如,可以根据每个节点的路由表应分别记录与对应节点的字段值间距成2的幂次方关系的字段值,对受所述新节点的加入影响或受待删除节点的删除影响而需要更新的路由表进行更新。
下面,对如何进行路由表的更新进行举例说明。例如:结合上述路由表的第i项的字段值等于successor((该节点的标识值+2i-1)mod2m),(1≤i≤m)的实施方式,如果节点环中新加入节点P,则可以通过以下步骤对受P加入影响而需要更新的路由表进行更新:
根据第i项的字段值等于successor((该节点的标识值+2i-1)mod2m),对节点P的前驱节点的路由表记录的信息进行递归更新,直到递归到的前驱节点不能同时满足更新的两个条件,递归终止。其中所述两个条件为:条件一:递归到的前驱节点S与节点P之间标识值的间距大于等于2i-1。因为如果节点S与节点P之间标识值的距离小于2i-1,则节点S路由表的第i项一定在节点P之后,所以路由表第i项不需要更新。条件二:在满足条件一的前提下,节点S的路由表当前第i项需要在节点P之后。因为如果节点S的路由表信息第i项在节点P之前。说明P节点是当前第i项之后的节点,不需要更新路由表当前项。
根据上述两个条件的判断,可以准确地沿环节点预设排序顺序相反方向递归更新新加入节点的前驱节点的路由表信息。由于受删除节点影响而对路由表的更新与上述受新加入节点的影响而对路由表的更新的原理相同,在此不再赘述。因为***或者删除节点,不会对当前节点的后继节点的路由表产生影响,只会影响当前节点的前驱节点。这就要求每个节点除了需要维护路由表信息外,也需要维护直接前驱节点。在递归更新过程中,如果节点S需要更新路由表的第i项,那么节点S的直接前驱节点也可能需要更新路由表信息,反之,如果节点S不需要更新路由表信息,则S的前驱节点也不需要更新路由表信息。递归更新路由表信息结束。
例如,如图4所示,新加入节点为节点30,沿环节点逆时针方向递归更新节点30的前驱节点的路由表信息,从前驱节点28一直递归更新到节点16。如图4所示,节点28路由表的第1项,第2项从33更新为30。由于更新到节点16时,不同时满足更新路由表的两个条件,节点16的路由表信息没有发生变化,因此,结束递归更新。
与本申请实施例提供的分布式缓存范围查询方法对应的,本申请实施例还提供了一种分布式缓存范围查询装置。
例如,参见图5,为本申请实施例提供的分布式缓存范围查询装置结构示意图。如图5所示,该装置可以包括:
预处理单元510,可以用于将用于映射缓存数据的关键字中,可用于范围查询的字段值对应的标识值,预先存储在内存的存储区域中;查询响应单元520,可以用于将用于映射缓存数据的关键字中,可用于范围查询的字段值对应的标识值,预先存储在内存的存储区域中;关键字获取单元530,可以用于根据所述指定范围的端点值对应的标识值确定所述指定范围对应的关键字集合。
一些可能的实施方式中,所述预处理单元510,可以用于将所述关键字中,可用于范围查询的字段值对应的标识值,预先存储在位于内存的节点环中,其中,一个标识值对应存储到一个节点中,且为所述节点环中的每一节点建立对应的路由表,所述路由表记录了根据预置索引算法确定的一个或多个其他节点的标识值。相应地,参见图6,所述查询响应单元520可以包括:查找子单元521,可以用于响应于接收到针对指定范围的关键字的查询请求,以所述节点环中的任一节点作为当前节点,在所述当前节点的路由表中查找距所述指定范围的端点值最近的标识值。第一判定子单元522,可以用于如果判定查找到的标识值是所述节点环中距所述指定范围的端点值最近的标识值,将查找到的标识值作为所述指定范围的端点值对应的标识值。第二判定子单元523,可以用于如果判定查找到的标识值不是所述节点环中距所述指定范围的端点值最近的标识值,将查找到的标识值作为当前节点,触发所述查找子单元在当前节点的路由表中查找距所述指定范围的端点值最近的标识值。
结合上面的实施方式,所述预处理单元510,可以用于将关键字中,可用于范围查询的、属于同一字段的字段值对应的标识值按标识值大小顺序存储在位于内存的节点环中,其中,所述路由表记录了所述节点环中与对应节点的字段值间距成2的幂次方关系的字段值。
下面,对所述路由表记录了所述节点环中与对应节点的字段值间距成2的幂次方关系的字段值的实施方式进行详细说明。假设所述节点环中的节点按标识值从小到大的顺序排序,所述指定范围为第一端点值到第二端点值之间的范围,其中,所述第一端点值小于所述第二端点值。针对第一端点值对应的标识值的查询,本申请实施例所述查找子单元521,如图6所示,可以包括:
出发子单元5210,可以用于响应于接收到针对指定范围的关键字的查询请求,以所述节点环中的任一节点作为当前节点。
第一端点判断子单元5211,可以用于判断所述当前节点的路由表记录的标识值中是否存在与所述第一端点值相等的标识值。
第一端点确定子单元5212,可以用于如果所述第一端点判断子单元5211判定存在,则将与所述端点值相等的标识值作为所述节点环中距所述第一端点值最近的标识值。
第一端点续判子单元5213,可以用于如果所述第一端点判断子单元5211判定不存在,判断所述第一端点值是否在所述当前节点的标识值与其直接前驱节点或直接后继节点的标识值之间。
第一端点续定子单元5214,可以用于如果所述第一端点续判子单元5213判定所述第一端点值在所述当前节点的标识值与其直接前驱节点的标识值之间,则将所述当前节点的标识值作为所述节点环中距所述第一端点值最近的标识值;如果所述第一端点续判子单元5213判定所述第一端点值在所述当前节点的标识值与其直接后继节点的标识值之间,则将所述当前节点的直接后继节点的标识值作为所述节点环中距所述第一端点值最近的标识值。
其中,所述第二判定子单元523,可以用于如果所述第一端点续判子单元5213判定所述第一端点值不在所述当前节点的标识值与其直接后继节点的标识值之间,且不在所述当前节点的标识值与其直接前驱节点的标识值之间,则将所述当前节点更新为所述当前节点的路由表中记录的距所述第一端点值最近的标识值所在的节点,重新触发所述第一端点判断子单元5211执行。
针对第二端点值对应的标识值的查询,本申请实施例所述查找子单元521,如图6所示,还可以包括:
第二端点判断子单元5215,可以用于判断所述当前节点的路由表记录的标识值中是否存在与所述第二端点值相等的标识值。
第二端点确定子单元5216,可以用于如果所述第二端点判断子单元5215判定存在,则将与所述端点值相等的标识值作为所述节点环中距所述第二端点值最近的标识值。
第二端点续判子单元5217,可以用于如果所述第二端点判断子单元5215判定不存在,判断所述第二端点值是否在所述当前节点的标识值与其直接前驱节点或直接后继节点的标识值之间。
第二端点续定子单元5218,可以用于如果所述第二端点续判子单元5217判定所述第二端点值在所述当前节点的标识值与其直接前驱节点的标识值之间,则将所述当前节点的直接前驱节点作为所述节点环中距所述第二端点值最近的标识值;如果所述第二端点续判子单元5217判定所述第二端点值在所述当前节点的标识值与其直接后继节点的标识值之间,则将所述当前节点的标识值作为所述节点环中距所述第二端点值最近的标识值。
其中,所述第二判定子单元523,可以用于如果所述第二端点续判子单元5217判定所述第二端点值不在所述当前节点的标识值与其直接后继节点的标识值之间,且不在所述当前节点的标识值与其直接前驱节点的标识值之间,则将所述当前节点更新为所述当前节点的路由表中记录的距所述第二端点值最近的标识值所在的节点,重新触发所述第二端点判断子单元5215执行。
下面,再对本申请实施例在节点环中加入或删除节点的具体实施方式进行介绍。例如,参见图6,本申请实施例提供的装置还可以包括:
节点加入单元540,可以用于针对缓存中新加入的关键字,判断新加入的关键字中可用于范围查询的字段值对应的标识值是否已存在于所述节点环中,如果否,将该标识值存储在新节点中,在所述节点环中查找出可作为新节点的直接前驱节点的节点N,更新所述节点N的直接后继节点的直接前驱节点为所述新节点,更新所述节点N为所述新节点的直接前驱节点,为所述新节点建立对应的路由表;
节点删除单元550,可以用于针对缓存中删除的关键字,如果所述删除的关键字的字段中可用于范围查询的字段值不存在于任何其他关键字中,将存储了该字段值对应的标识值的节点作为待删除节点,更新待删除节点的直接后继节点的直接前驱节点为所述待删除节点的直接前驱节点,从所述节点环中删除所述待删除节点;
以及,路由更新单元560,可以用于根据预置索引算法,对受所述新节点的加入影响或受所述待删除节点的删除影响而需要更新的路由表进行更新。
下面,再结合本发明实施例一些可能的应用场景进行示意性说明。
例如,一些可能的实施方式中,根据一致性hash规则,可以在分布式缓存***的多台缓存服务器存储有各个节点的kay-value信息。为了提高查询性能,本申请实施例提供的装置可以配置于与用于存储缓存数据的多台缓存服务器不同的单独查询服务器中。相应地,该装置还可以包括:数据反馈单元570,可以用于在关键字获取单元得到指定范围对应的关键字集合之后,通过一次多线程下载并发从所述多台缓存服务器中得到所述关键字集合对应的缓存数据,将得到的缓存数据返回给发出所述请求的客户端。
可见,配置本申请实施例提供的装置,可以由查询响应单元520直接从内存读取该节点环,以节点环中节点的路由表作为索引进行范围查询,脱离对数据库的依赖、读取速度快,且在根据路由表查找指定范围的端点值对应的标识值的过程中,总是跳到距端点值最近的字段值所标识的节点的路由表中来查找,最终使得关键字获取单元530可以查找出指定范围对应的关键字集合,从而使查询过程成为折半查找的过程,达到高效范围查询的目的。
需要注意的是,本申请实施例所述查找子单元521,第一判定子单元522、第二判定子单元523、出发子单元5210、第一端点判断子单元5211、第一端点确定子单元5212、第一端点续判子单元5213、第一端点续定子单元5214、第二端点判断子单元5215、第二端点确定子单元5216、第二端点续判子单元5217、第二端点续定子单元5218、节点加入单元540、节点删除单元550、路由更新单元560、以及数据反馈单元570在图6中以虚线绘制,以表示这些单元或子单元不是本申请实施例提供的装置的必要单元。
与上述分布式缓存范围查询方法相对应的,本申请实施例还提供了一种分布式缓存范围查询***。
例如,参见图7,为本申请实施例提供的分布式缓存范围查询***结构示意图。如图7所示,该***可以包括:
缓存服务器710,可以用于存储与关键字具有映射关系的缓存数据,接收查询服务器720发出的针对关键字集合对应的缓存数据的查询请求,向查询服务器720反馈关键字集合对应的缓存数据;
查询服务器720,可以用于将用于映射缓存数据的关键字中,可用于范围查询的字段值对应的标识值,预先存储在内存的存储区域中,响应于从客户端接收到针对指定范围的关键字对应的缓存数据的查询请求,从所述存储区域中查找出所述指定范围的端点值对应的标识值,根据所述指定范围的端点值对应的标识值确定所述指定范围对应的关键字集合,从所述缓存服务器中得到所述关键字集合对应的缓存数据,将得到的缓存数据反馈给发出所述查询请求的客户端;
客户端730,可以用于向所述查询服务器发送针对指定范围的关键字对应的缓存数据的查询请求;接收查询服务器反馈的缓存数据。
例如,缓存服务器710可以有一个台或多台。本申请实施例所建立的可用于范围查询的不同节点环以及路由表均可以保存于该单独的查询服务器720。例如,该查询服务器720可以根据查询请求确定需要读取的节点环,将节点环中任一节点作为当前节点,进行后续查询步骤,在得到查询请求对应的关键字集合之后,可以通过一次多线程下载并发从所述一台或多台缓存服务器中得到所述关键字集合对应的缓存数据,将得到的缓存数据返回给发出所述请求的客户端。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明可用于众多通用或专用的计算***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (11)

1.一种分布式缓存范围查询方法,其特征在于,包括:
将用于映射缓存数据的关键字中,可用于范围查询的字段值对应的标识值,预先存储在内存的存储区域中;
响应于接收到针对指定范围的关键字的查询请求,从所述存储区域中查找出所述指定范围的端点值对应的标识值;
根据所述指定范围的端点值对应的标识值确定所述指定范围对应的关键字集合,
其中,在所述存储区域中存在与所述指定范围的端点值相等的标识值的情况下,所述指定范围的端点值对应的标识值为与所述指定范围的端点值相等的标识值;在所述存储区域中不存在与所述指定范围的端点值相等的标识值的情况下,所述指定范围的端点值对应的标识值为与所述指定范围的端点值最近的标识值。
2.根据权利要求1所述的方法,其特征在于,所述将用于映射缓存数据的关键字中,可用于范围查询的字段值对应的标识值,预先存储在内存的存储区域中包括:
将所述关键字中,可用于范围查询的字段值对应的标识值,预先存储在位于内存的节点环中,其中,一个标识值对应存储到一个节点中,且为所述节点环中的每一节点建立对应的路由表,所述路由表记录了根据预置索引算法确定的一个或多个其他节点的标识值;
所述响应于接收到针对指定范围的关键字的查询请求,从所述存储区域中查找出所述指定范围的端点值对应的标识值包括:
响应于接收到针对指定范围的关键字的查询请求,以所述节点环中的任一节点作为当前节点,在所述当前节点的路由表中查找出距所述指定范围的端点值最近的标识值;
如果判定查找到的标识值是所述节点环中距所述指定范围的端点值最近的标识值,将查找到的标识值作为所述指定范围的端点值对应的标识值;
如果判定查找到的标识值不是所述节点环中距所述指定范围的端点值最近的标识值,将当前节点更新为查找到的标识值所在的节点,返回到所述在当前节点的路由表中查找距所述指定范围的端点值最近的标识值的步骤。
3.根据权利要求2所述的方法,其特征在于,所述将关键字中,可用于范围查询的字段值对应的标识值,预先存储在位于内存的节点环中包括:
将关键字中,可用于范围查询的、属于同一字段的字段值对应的标识值按标识值大小顺序预先存储在位于内存的节点环中,其中,所述路由表记录了所述节点环中与对应节点的标识值间距成2的幂次方关系的标识值。
4.根据权利要求2所述的方法,其特征在于,还包括:
针对缓存中新加入的关键字,判断新加入的关键字中可用于范围查询的字段值对应的标识值是否已存在于所述节点环中,如果否,将该标识值存储在新节点中,在所述节点环中查找出可作为新节点的直接前驱节点的节点N,更新所述节点N的直接后继节点的直接前驱节点为所述新节点,更新所述节点N为所述新节点的直接前驱节点,为所述新节点建立对应的路由表;
针对缓存中删除的关键字,如果所述删除的关键字的字段中可用于范围查询的字段值不存在于任何其他关键字中,将存储了该字段值对应的标识值的节点作为待删除节点,更新待删除节点的直接后继节点的直接前驱节点为所述待删除节点的直接前驱节点,从所述节点环中删除所述待删除节点;
以及,根据预置索引算法,对受所述新节点的加入影响或受所述待删除节点的删除影响而需要更新的路由表进行更新。
5.根据权利要求1所述的方法,其特征在于,所述方法应用于与用于存储缓存数据的一台或多台缓存服务器不同的查询服务器中;
在得到指定范围对应的关键字集合之后,还包括:通过一次多线程下载并发从所述一台或多台缓存服务器中得到所述关键字集合对应的缓存数据,将得到的缓存数据返回给发出所述查询请求的客户端。
6.一种分布式缓存范围查询装置,其特征在于,包括:
预处理单元,用于将用于映射缓存数据的关键字中,可用于范围查询的字段值对应的标识值,预先存储在内存的存储区域中;
查询响应单元,用于响应于接收到针对指定范围的关键字的查询请求,从所述存储区域中查找出所述指定范围的端点值对应的标识值;
关键字获取单元,用于根据所述指定范围的端点值对应的标识值确定所述指定范围对应的关键字集合,
其中,在所述存储区域中存在与所述指定范围的端点值相等的标识值的情况下,所述指定范围的端点值对应的标识值为与所述指定范围的端点值相等的标识值;在所述存储区域中不存在与所述指定范围的端点值相等的标识值的情况下,所述指定范围的端点值对应的标识值为与所述指定范围的端点值最近的标识值。
7.根据权利要求6所述的装置,其中,所述预处理单元,用于将所述关键字中,可用于范围查询的字段值对应的标识值,预先存储在位于内存的节点环中,其中,一个标识值对应存储到一个节点中,且为所述节点环中的每一节点建立对应的路由表,所述路由表记录了根据预置索引算法确定的一个或多个其他节点的标识值;
所述查询响应单元包括:
查找子单元,用于响应于接收到针对指定范围的关键字的查询请求,以所述节点环中的任一节点作为当前节点,在所述当前节点的路由表中查找出距所述指定范围的端点值最近的标识值;
第一判定子单元,用于如果判定查找到的标识值是所述节点环中距所述指定范围的端点值最近的标识值,将查找到的标识值作为所述指定范围的端点值对应的标识值;
第二判定子单元,用于如果判定查找到的标识值不是所述节点环中距所述指定范围的端点值最近的标识值,将当前节点更新为查找到的标识值所在的节点,触发所述查找子单元在当前节点的路由表中查找出距所述指定范围的端点值最近的标识值。
8.根据权利要求7所述的装置,其特征在于,所述预处理单元,具体用于将关键字中,可用于范围查询的、属于同一字段的字段值对应的标识值按标识值大小顺序存储在位于内存的节点环中,其中,所述路由表记录了所述节点环中与对应节点的字段值间距成2的幂次方关系的字段值。
9.根据权利要求7所述的装置,其特征在于,还包括:
节点加入单元,用于针对缓存中新加入的关键字,判断新加入的关键字中可用于范围查询的字段值对应的标识值是否已存在于所述节点环中,如果否,将该标识值存储在新节点中,在所述节点环中查找出可作为新节点的直接前驱节点的节点N,更新所述节点N的直接后继节点的直接前驱节点为所述新节点,更新所述节点N为所述新节点的直接前驱节点,为所述新节点建立对应的路由表;
节点删除单元,用于针对缓存中删除的关键字,如果所述删除的关键字的字段中可用于范围查询的字段值不存在于任何其他关键字中,将存储了该字段值对应的标识值的节点作为待删除节点,更新待删除节点的直接后继节点的直接前驱节点为所述待删除节点的直接前驱节点,从所述节点环中删除所述待删除节点;
以及,路由更新单元,用于根据预置索引算法,对受所述新节点的加入影响或受所述待删除节点的删除影响而需要更新的路由表进行更新。
10.根据权利要求6所述的装置,其特征在于,所述装置配置于与用于存储缓存数据的一台或多台缓存服务器不同的查询服务器中;
所述装置还包括:数据反馈单元,用于在所述关键字获取单元得到指定范围对应的关键字集合之后,通过一次多线程下载并发从所述一台或多台缓存服务器中得到所述关键字集合对应的缓存数据,将得到的缓存数据返回给发出所述查询请求的客户端。
11.一种分布式缓存范围查询***,其特征在于,包括:
缓存服务器,用于存储与关键字具有映射关系的缓存数据,接收查询服务器发出的针对关键字集合对应的缓存数据的查询请求,向查询服务器反馈关键字集合对应的缓存数据;
查询服务器,用于将用于映射缓存数据的关键字中,可用于范围查询的字段值对应的标识值,预先存储在内存的存储区域中,响应于从客户端接收到针对指定范围的关键字对应的缓存数据的查询请求,从所述存储区域中查找出所述指定范围的端点值对应的标识值,根据所述指定范围的端点值对应的标识值确定所述指定范围对应的关键字集合,从所述缓存服务器中得到所述关键字集合对应的缓存数据,将得到的缓存数据反馈给发出所述查询请求的客户端,其中,在所述存储区域中存在与所述指定范围的端点值相等的标识值的情况下,所述指定范围的端点值对应的标识值为与所述指定范围的端点值相等的标识值;在所述存储区域中不存在与所述指定范围的端点值相等的标识值的情况下,所述指定范围的端点值对应的标识值为与所述指定范围的端点值最近的标识值;
客户端,用于向所述查询服务器发送针对指定范围的关键字对应的缓存数据的查询请求;接收查询服务器反馈的缓存数据。
CN201410637554.2A 2014-11-06 2014-11-06 一种分布式缓存范围查询方法、装置及*** Active CN105610881B9 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410637554.2A CN105610881B9 (zh) 2014-11-06 2014-11-06 一种分布式缓存范围查询方法、装置及***
PCT/CN2015/093310 WO2016070750A1 (zh) 2014-11-06 2015-10-30 一种分布式缓存范围查询方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410637554.2A CN105610881B9 (zh) 2014-11-06 2014-11-06 一种分布式缓存范围查询方法、装置及***

Publications (3)

Publication Number Publication Date
CN105610881A CN105610881A (zh) 2016-05-25
CN105610881B true CN105610881B (zh) 2019-04-09
CN105610881B9 CN105610881B9 (zh) 2019-06-21

Family

ID=55908568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410637554.2A Active CN105610881B9 (zh) 2014-11-06 2014-11-06 一种分布式缓存范围查询方法、装置及***

Country Status (2)

Country Link
CN (1) CN105610881B9 (zh)
WO (1) WO2016070750A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107622057A (zh) * 2016-07-13 2018-01-23 阿里巴巴集团控股有限公司 一种查找任务的方法和装置
CN107622079A (zh) * 2017-07-28 2018-01-23 阿里巴巴集团控股有限公司 数据存储、查询方法及装置
CN110020040B (zh) * 2017-08-17 2021-07-06 北京京东尚科信息技术有限公司 查询数据的方法、装置和***
CN110740155B (zh) * 2018-07-18 2022-05-27 阿里巴巴集团控股有限公司 分布式***中的请求处理方法及装置
CN110377647B (zh) * 2019-07-30 2022-07-29 江门职业技术学院 一种基于分布式数据库需求信息查询方法及***

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473267A (zh) * 2013-08-09 2013-12-25 深圳市中科新业信息科技发展有限公司 数据存储查询方法及***
CN103942289A (zh) * 2014-04-12 2014-07-23 广西师范大学 一种Hadoop上面向范围查询的内存缓存方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7996541B2 (en) * 2007-06-15 2011-08-09 Tekelec Methods, systems, and computer program products for identifying a serving home subscriber server (HSS) in a communications network
US8275761B2 (en) * 2008-05-15 2012-09-25 International Business Machines Corporation Determining a density of a key value referenced in a database query over a range of rows
CN101635741B (zh) * 2009-08-27 2012-09-19 中国科学院计算技术研究所 分布式网络中查询资源的方法及其***
US9218358B2 (en) * 2011-12-30 2015-12-22 Microsoft Technology Licensing, Llc Identifying files stored on client devices as web-based search results

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473267A (zh) * 2013-08-09 2013-12-25 深圳市中科新业信息科技发展有限公司 数据存储查询方法及***
CN103942289A (zh) * 2014-04-12 2014-07-23 广西师范大学 一种Hadoop上面向范围查询的内存缓存方法

Also Published As

Publication number Publication date
CN105610881A (zh) 2016-05-25
WO2016070750A1 (zh) 2016-05-12
CN105610881B9 (zh) 2019-06-21

Similar Documents

Publication Publication Date Title
CN105574054B (zh) 一种分布式缓存范围查询方法、装置及***
CN105610881B (zh) 一种分布式缓存范围查询方法、装置及***
US20190361843A1 (en) System and Method for Performing Similarity Search Queries in a Network
US7676453B2 (en) Partial query caching
CN109189782A (zh) 一种区块链商品交易查询中的索引方法
US7672935B2 (en) Automatic index creation based on unindexed search evaluation
JP2006012125A5 (zh)
CN104657387B (zh) 一种数据查询方法及装置
US9135630B2 (en) Systems and methods for large-scale link analysis
CN109313640A (zh) 用于数据库优化的方法和***
CN109597829B (zh) 一种实现可搜索加密关系型数据库缓存的中间件方法
CN106506704A (zh) 一种缓存更新方法及装置
CN109521962A (zh) 一种元数据查询方法、装置、设备及计算机可读存储介质
CN110334119A (zh) 一种数据关联处理方法、装置、设备及介质
CN107577787A (zh) 关联数据信息入库的方法及***
CN103440249A (zh) 一种非结构化数据快速检索的***及方法
CN106815258A (zh) 一种数据存储方法和协调节点
CN105550332A (zh) 一种基于双层索引结构的起源图查询方法
Apiletti et al. Pampa-HD: A parallel MapReduce-based frequent pattern miner for high-dimensional data
CN108009250A (zh) 一种多分类赛事数据缓存建立、查询方法及装置
Abdelaziz et al. Query optimizations over decentralized RDF graphs
KR101955376B1 (ko) 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치
Firth et al. TAPER: query-aware, partition-enhancement for large, heterogenous graphs
US12007997B2 (en) Metadata search via N-gram index
US11836138B1 (en) Overlap results data generation on a cloud data platform

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
CI03 Correction of invention patent
CI03 Correction of invention patent

Correction item: Description

Correct: Zheng Que

False: Error

Number: 15-01

Page: full text

Volume: 35

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: Cayman Islands Grand Cayman capital building, a four storey No. 847 mailbox

Patentee before: Alibaba Group Holding Ltd.