CN115793994B - 分布式环境下本地缓存的分组数据处理方法和装置 - Google Patents
分布式环境下本地缓存的分组数据处理方法和装置 Download PDFInfo
- Publication number
- CN115793994B CN115793994B CN202310093512.6A CN202310093512A CN115793994B CN 115793994 B CN115793994 B CN 115793994B CN 202310093512 A CN202310093512 A CN 202310093512A CN 115793994 B CN115793994 B CN 115793994B
- Authority
- CN
- China
- Prior art keywords
- layer
- grouping
- local cache
- data object
- target
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种分布式环境下本地缓存的分组数据处理方法和装置,通过为目标应用的多个应用实例分别分配本地缓存,根据每个本地缓存中的数据对象集的第一度量信息和第二度量信息,分别为所述每个本地缓存创建所述每个本地缓存中的数据对象集的层级分组信息,并根据所述每个本地缓存的已占用空间大于第一阈值或者剩余空间小于第二阈值,从所述层级分组信息中热点优先级最低的目标分组中选择至少一部分数据对象,以将所述至少一部分数据对象从所述每个本地缓存中清除。本申请可以提高分布式环境下各应用实例的本地缓存的数据访问命中率,提高目标应用的数据访问性能。
Description
技术领域
本申请涉及计算机软件技术领域,具体涉及一种分布式环境下本地缓存的分组数据处理方法和装置。
背景技术
高并发的应用场景下,基于Java虚拟机(JVM)的本地缓存可以向用户提供高性能的数据访问。本地缓存是利用应用进程的内存空间去存储数据,数据的读写都是在同一个进程内完成,本地缓存不需要远程网络请求去操作内存空间,没有额外的性能消耗,读取速度快,但是由于本地缓存占用了应用进程的内存空间,故不能进行大数据量存储。因此,将访问频繁的有限的热点数据存储于应用的本地缓存中,可以减少后台数据库访问,提高系统的访问效率。
基于Java实现的分布式系统中,目标应用可以具有多个应用实例(instance),这些应用实例都具有对应的本地缓存,基于现有的LRU(最近最少使用)、LFU(最不经常使用)等淘汰策略处理各应用实例对应的本地缓存中的数据对象,往往无法很好地满足高并发下的数据访问命中率的性能要求。
发明内容
有鉴于此,本申请提出一种分布式环境下本地缓存的分组数据处理方法和装置,以提高分布式环境下各应用实例的本地缓存的数据访问命中率,从而提高应用的数据访问性能。
本申请第一方面,提供了一种分布式环境下本地缓存的分组数据处理方法,包括:
为目标应用的多个应用实例分别分配本地缓存,得到所述多个应用实例分别对应的多个本地缓存;
根据所述多个本地缓存中每个本地缓存中的数据对象的第一度量信息和第二度量信息,分别为所述每个本地缓存创建所述每个本地缓存中的数据对象集的层级分组信息,所述层级分组信息基于所述数据对象集中的每个数据对象的第一度量信息和第二度量信息进行层级聚合分组而得到,用于表征所述数据对象集中的每个数据对象的热点优先级,所述第一度量信息和第二度量信息是表征数据对象的不同访问特征的度量因子;其中,对所述每个本地缓存中的数据对象的唯一标识符的集合按照数据对象的第一度量信息进行第一层聚合分组,得到第一第一层分组和第二第一层分组;对所述第一第一层分组和第二第一层分组中的数据对象的唯一标识符的集合按照数据对象的第二度量信息分别进行第二层聚合分组,以将所述第一第一层分组分割为第一第二层分组和第二第二层分组,将所述第二第一层分组分割为第三第二层分组和第四第二层分组,其中所述第一第二层分组、第二第二层分组、第三第二层分组和第四第二层分组的热点优先级依次降低;
根据所述每个本地缓存的已占用空间大于第一阈值或者剩余空间小于第二阈值,从所述层级分组信息中热点优先级最低的目标分组中选择至少一部分数据对象,以将所述至少一部分数据对象从所述每个本地缓存中清除。
在一些实施方式中,所述根据所述每个本地缓存的已占用空间大于第一阈值或者剩余空间小于第二阈值,从所述层级分组信息中热点优先级最低的目标分组中选择至少一部分数据对象,以将所述至少一部分数据对象从所述每个本地缓存中清除包括:
按照热点优先级从低到高的顺序从所述第四第二层分组、第三第二层分组、第二第二层分组、第一第二层分组中选择所述目标分组;
当所述目标分组中的全部数据对象从所述每个本地缓存中清除之后,如果所述每个本地缓存的已占用空间仍然大于第一阈值或者剩余空间仍然小于第二阈值,则继续从其他第二层分组中热点优先级最低的目标分组中选择至少一部分数据对象从所述每个本地缓存中清除,直至所述每个本地缓存的已占用空间不大于第一阈值或者剩余空间不小于第二阈值。
在一些实施方式中,所述方法还包括:
在将所述至少一部分数据对象从所述每个本地缓存中清除、直至所述每个本地缓存的已占用空间不大于第一阈值或者剩余空间不小于第二阈值之后,基于所述每个本地缓存中的数据对象的最新的第一度量信息和第二度量信息重构所述层级分组信息。
在一些实施方式中,所述方法还包括:
所述多个应用实例中的每个应用实例响应于接收到客户端对目标数据对象的访问请求,根据所述目标数据对象在所述每个应用实例的本地缓存中的命中结果以及所述目标数据对象的第一度量信息和第二度量信息,将所述目标数据对象的唯一标识符更新到所述每个应用实例的本地缓存对应的目标层级分组信息。
在一些实施方式中,所述根据所述目标数据对象在所述每个应用实例的本地缓存中的命中结果以及所述目标数据对象的第一度量信息和第二度量信息,将所述目标数据对象的唯一标识符更新到所述每个应用实例的本地缓存对应的目标层级分组信息,包括:
计算所述目标数据对象的第一度量信息分别与所述目标层级分组信息中的两个第一层分组的各自数据对象的第一度量信息的平均值之间的第一欧氏距离和第二欧氏距离;
将所述目标数据对象分组到所述第一欧氏距离和第二欧氏距离中的最小值对应的目标第一层分组;
计算所述目标数据对象的第二度量信息分别与所述目标第一层分组中的两个第二层分组的各自数据对象的第二度量信息的平均值之间的第三欧氏距离和第四欧氏距离;
将所述目标数据对象分组到所述第三欧氏距离和第四欧氏距离中的最小值对应的目标第二层分组,并将所述目标数据对象的唯一标识符更新到所述目标第二层分组。
在一些实施方式中,所述将所述目标数据对象的唯一标识符更新到所述目标第二层分组包括:
当所述目标数据对象在所述每个应用实例的本地缓存中命中时,将所述目标数据对象的唯一标识符从当前所属的第二层分组移动至所述目标第二层分组;
当所述目标数据对象在所述每个应用实例的本地缓存中没有命中时,将所述目标数据对象的唯一标识符新写入所述目标第二层分组。
在一些实施方式中,所述方法还包括:
构建所述多个应用实例分别对应的多个本地缓存的数据对象合集,并基于所述数据对象合集中的数据对象的第一度量信息和第二度量信息创建聚合层级分组信息;
将所述每个应用实例的本地缓存对应的层级分组信息与所述聚合层级分组信息进行比较,获取所述聚合层级分组信息的第一第二层分组相对于所述每个应用实例的本地缓存对应的层级分组信息的第一第二层分组的数据对象的唯一标识符的差集;
在所述差集中的数据对象不存在于所述每个应用实例的本地缓存时,从所述数据对象合集中获取所述差集中的数据对象,写入所述每个应用实例的本地缓存,并根据所述差集中的数据对象的全局第一度量信息和全局第二度量信息将所述差集中的数据对象的唯一标识符更新到所述每个应用实例的本地缓存对应的层级分组信息。
在一些实施方式中,所述方法还包括:
将所述每个应用实例的本地缓存对应的层级分组信息与所述聚合层级分组信息进行比较,获取所述聚合层级分组信息的第四第二层分组相对于所述每个应用实例的本地缓存对应的层级分组信息的第四第二层分组的数据对象的唯一标识符的交集;
从所述每个应用实例的本地缓存中清除所述交集中的数据对象,并将所述交集中的数据对象的唯一标识符从所述每个应用实例的本地缓存对应的层级分组信息中删除。
本申请第二方面,提供一种分布式环境下本地缓存的分组数据处理装置,包括:
缓存构建单元,用于为目标应用的多个应用实例分别分配本地缓存,得到所述多个应用实例分别对应的多个本地缓存;
分组构建单元,用于根据所述多个本地缓存中每个本地缓存中的数据对象的第一度量信息和第二度量信息,分别为所述每个本地缓存创建所述每个本地缓存中的数据对象集的层级分组信息,所述层级分组信息基于所述数据对象集中的每个数据对象的第一度量信息和第二度量信息进行层级聚合分组而得到,用于表征所述数据对象集中的每个数据对象的热点优先级,所述第一度量信息和第二度量信息是表征数据对象的不同访问特征的度量因子;其中,对所述每个本地缓存中的数据对象的唯一标识符的集合按照数据对象的第一度量信息进行第一层聚合分组,得到第一第一层分组和第二第一层分组;对所述第一第一层分组和第二第一层分组中的数据对象的唯一标识符的集合按照数据对象的第二度量信息分别进行第二层聚合分组,以将所述第一第一层分组分割为第一第二层分组和第二第二层分组,将所述第二第一层分组分割为第三第二层分组和第四第二层分组,其中所述第一第二层分组、第二第二层分组、第三第二层分组和第四第二层分组的热点优先级依次降低;
数据清除单元,用于根据所述每个本地缓存的已占用空间大于第一阈值或者剩余空间小于第二阈值,从所述层级分组信息中热点优先级最低的目标分组中选择至少一部分数据对象,以将所述至少一部分数据对象从所述每个本地缓存中清除。
本申请实施例的分布式环境下本地缓存的分组数据处理方法和装置,通过为目标应用的多个应用实例分别分配本地缓存,根据每个本地缓存中的数据对象集的第一度量信息和第二度量信息,分别为所述每个本地缓存创建所述每个本地缓存中的数据对象集的层级分组信息,并根据所述每个本地缓存的已占用空间大于第一阈值或者剩余空间小于第二阈值,从所述层级分组信息中热点优先级最低的目标分组中选择至少一部分数据对象,以将所述至少一部分数据对象从所述每个本地缓存中清除,从而可以确保将层级分组信息中所标识的热点优先级最低的数据对象从本地缓存中清除,并保留足够的本地缓存空间用于提供新的热点数据对象的缓存和访问,可以显著性提高分布式环境下各应用实例的本地缓存的数据访问命中率,提高目标应用的数据访问性能。
附图说明
图1为本申请的分布式环境下本地缓存的分组数据处理方法所适用的应用场景的架构示意图;
图2是根据本申请一实施例的分布式环境下本地缓存的分组数据处理方法的流程示意图;
图3是根据本申请一实施例的分布式环境下本地缓存的分组数据处理方法的部分流程示意图;
图4是根据本申请一实施例的示例性的层级分组信息的构建方式的示意图;
图5是根据本申请一实施例的分布式环境下本地缓存的分组数据处理方法的部分流程示意图;
图6是根据本申请一实施例的分布式环境下本地缓存的分组数据处理方法的部分流程示意图;
图7是根据本申请一实施例的分布式环境下本地缓存的分组数据处理方法的部分流程示意图;
图8是根据本申请一实施例的分布式环境下本地缓存的分组数据处理方法的部分流程示意图;
图9是根据本申请一实施例的分布式环境下本地缓存的分组数据处理方法的部分流程示意图;
图10是根据本申请一实施例的分布式环境下本地缓存的分组数据处理方法的部分流程示意图;
图11是根据本申请一实施例的分布式环境下本地缓存的分组数据处理装置的结构示意图;
图12是根据本申请一实施例的分布式环境下本地缓存的分组数据处理装置的部分结构示意图;
图13是根据本申请一实施例的分布式环境下本地缓存的分组数据处理装置的部分结构示意图;
图14是根据本申请一实施例的分布式环境下本地缓存的分组数据处理装置的部分结构示意图;
图15是根据本申请一实施例的分布式环境下本地缓存的分组数据处理装置的部分结构示意图;
图16是根据本申请一实施例的分布式环境下本地缓存的分组数据处理装置的部分结构示意图;
图17是根据本申请一实施例的分布式环境下本地缓存的分组数据处理装置的部分结构示意图;
图18是根据本申请一实施例的分布式环境下本地缓存的分组数据处理装置的部分结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例的附图,对本申请实施例中的技术方案进行清楚、完整地描述。然而,应当理解,所描述的实施例仅仅是本申请的部分示例性实施例,而不是全部实施例,因此以下对本申请实施例的详细描述并非旨在限制本申请要求保护的范围。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请所使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
需要说明的是,本申请的说明书和权利要求书中的术语“第一”、“第二”等仅是用于区别描述类似的对象,而不是用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。
图1为本申请的分布式环境下本地缓存的分组数据处理方法所适用的应用场景的架构示意图。如图1所示,电子设备(含服务器)上安装有分布式环境下本地缓存的管理系统,该管理系统可订阅目标应用的各个应用实例的本地缓存的缓存信息,基于该缓存信息,对各应用实例对应的本地缓存数据进行处理。
其中,该分布式环境为基于Java的分布式应用架构环境,可基于zookeeper平台进行分布式部署。目标应用的应用实例(instance)又称服务实例,可为目标应用提供对外服务的应用进程,其中每个应用实例都有各自对应的本地缓存,该本地缓存为该应用实例的应用进程内的一定容量的内存空间。管理系统连接多个应用实例,例如图1中的应用实例1、应用实例2、应用实例3等,这些应用实例可以注册为分布式应用程序协调服务Zookeeper下的对应应用目录下的一个临时节点。每个应用实例向其对应的临时节点上报缓存信息,缓存信息可以包括每个应用实例的本地缓存中的数据对象集(即缓存数据)以及与本地缓存中的数据对象集有关的层级分组信息。
每个应用实例的本地缓存采用键值对(key->value)格式来缓存数据对象,其中key为数据对象的唯一标识符,value为数据对象的值。每个应用实例对应的临时节点中的数据对象集可以为该应用实例的本地缓存中的数据对象集的副本。层级分组信息用于表征每个应用实例的本地缓存中的数据对象集中的每个数据对象的热点优先级,层级分组信息在本申请技术方案中的作用在下述实施方式的描述中会进一步阐述。
管理系统可向各个应用实例发送相关控制命令,以使得目标应用的各个应用实例定时向对应的临时节点上报所述缓存信息。管理系统可以向Zookeeper订阅各应用实例对应的临时节点中缓存信息,即每个应用实例的本地缓存中的数据对象集以及与本地缓存中的数据对象集有关的层级分组信息。在目标应用的各应用实例的运行过程中,会实时收集各个本地缓存中数据对象的最近访问时间、访问次数、命中次数等信息组成元数据存放在Zookeeper的临时节点中。通过各应用实例对应的本地缓存的应用编程接口,可以实现基于数据对象的唯一标识符key对本地缓存进行数据对象的新增、编辑和删除。
图2是根据本申请一实施例的分布式环境下本地缓存的分组数据处理方法的流程示意图。如图2所示,本申请的分布式环境下本地缓存的分组数据处理方法,包括如下流程:
步骤S201,为目标应用的多个应用实例分别分配本地缓存,得到所述多个应用实例分别对应的多个本地缓存。
本实施例中,目标应用的多个应用实例可以运行于Java分布式应用架构环境中的一个或多个服务器节点。目标应用的每个应用实例分别分配有对应的本地缓存,本地缓存是位于每个应用实例的应用进程中的预定容量的内存空间。响应于接收到客户端的数据访问请求,每个应用实例会去对应的本地缓存的数据对象集中查询目标数据对象,如果目标数据对象在本地缓存中访问命中,则向客户端返回该目标数据对象,如果访问没有命中,则去后台数据库中查询目标数据对象,加载至对应的本地缓存,并向客户端返回该目标数据对象。
步骤S202,根据所述多个本地缓存中每个本地缓存中的数据对象集的第一度量信息和第二度量信息,分别为所述每个本地缓存创建所述每个本地缓存中的数据对象集的层级分组信息,所述层级分组信息用于表征所述数据对象集中的每个数据对象的热点优先级。
本实施例中,针对每个应用实例对应的本地缓存,会实时统计本地缓存中的数据对象集中的每个数据对象的第一度量信息和第二度量信息,并根据所述第一度量信息和第二度量信息分别为所述每个本地缓存创建所述每个本地缓存中的数据对象集的层级分组信息。第一度量信息和第二度量信息是表征本地缓存中的数据对象的不同访问特征的度量因子。在一个实施方式中,第一度量信息包括每个数据对象在每个度量周期内的访问次数,第二度量信息包括每个数据对象的最近访问时间差。在另一个实施方式中,第一度量信息包括每个数据对象的最近访问时间差,第二度量信息包括每个数据对象在每个度量周期内的访问次数。
本实施例中,每个本地缓存中的数据对象集的层级分组信息表征所述数据对象集中的每个数据对象的热点优先级。热点优先级用于衡量本地缓存中的每个数据对象对于客户端而言的访问热度的优先程度。每个本地缓存中的数据对象集的层级分组信息可以基于每个数据对象的第一度量信息和第二度量信息进行层级聚合分组而得到。
在一个实施方式中,如图3所示,上述步骤S202中所述根据所述多个本地缓存中的每个本地缓存中的数据对象集的第一度量信息和第二度量信息,分别为所述每个本地缓存创建所述每个本地缓存中的数据对象集的层级分组信息,包括:
步骤S301,对所述每个本地缓存中的数据对象的唯一标识符的集合按照数据对象的第一度量信息进行第一层分组,得到第一第一层分组和第二第一层分组;
步骤S302,对所述第一第一层分组和第二第一层分组中的数据对象的唯一标识符的集合按照数据对象的第二度量信息分别进行第二层分组,以将所述第一第一层分组分割为第一第二层分组和第二第二层分组,将所述第二第一层分组分割为第三第二层分组和第四第二层分组,其中所述第一第二层分组、第二第二层分组、第三第二层分组和第四第二层分组的热点优先级依次降低。
在一个实施方式中,一种示例性的层级分组信息的构建方式如图4所示。首先,将每个应用实例的本地缓存中的数据对象的唯一标识符(Key)的集合按照第一度量信息进行第一层分组,通过聚合分组的方式将本地缓存中的全部数据对象的唯一标识符的集合分割为两个第一层分组,即第一第一层分组和第二第一层分组。通过聚合分组的方式得到的第一第一层分组和第二第一层分组各自内部的数据对象之间第一度量信息具有相类似的特征,即第一第一层分组中的数据对象具有相对较高的热点优先级的第一度量信息,而第二第一层分组中的数据对象具有相对较低的热点优先级的第一度量信息。
以第一度量信息为每个数据对象在每个度量周期内的访问次数为例,在每个度量周期内的访问次数较高的数据对象通常热点优先级相对更高,而在每个度量周期内的访问次数较低的数据对象通常热点优先级相对更低,因此,通过上述聚合分组的方式,可以将具有类似的相对较高的访问次数的数据对象聚合分组到第一第一层分组,而将具有类似的相对较低的访问次数的数据对象聚合分组到第二第一层分组。
其次,在得到前述的第一第一层分组和第二第一层分组的基础上,可以分别对所述第一第一层分组和第二第一层分组中的每个第一层分组,按照数据对象的第二度量信息对所述第一第一层分组和第二第一层分组中的数据对象的的唯一标识符进行第二层分组,通过同样的聚合分组的方式将所述第一第一层分组进一步分割为第一第二层分组和第二第二层分组,将所述第二第一层分组进一步分割为第三第二层分组和第四第二层分组。
以第二度量信息为每个数据对象的最近访问时间差为例,每个数据对象的最近访问时间差相对较小的数据对象通常热点优先级相对更高,而每个数据对象的最近访问时间差相对较大的数据对象通常热点优先级相对更低,因此,通过上述聚合分组的方式,可以将第一第一层分组中具有类似的相对较小的最近访问时间差的数据对象聚合分组到第一第二层分组,而将第一第一层分组中具有类似的相对较大的最近访问时间差的数据对象聚合分组到第二第二层分组。同理,可以将第二第一层分组中具有类似的相对较小的最近访问时间差的数据对象聚合分组到第三第二层分组,而将第二第一层分组中具有类似的相对较大的最近访问时间差的数据对象聚合分组到第四第二层分组。
从而,基于每个数据对象的第一度量信息和第二度量信息以层级聚合分组的方式为每个应用实施的本地缓存中的数据对象构建了对应的层级分组信息。构建得到的该层级分组信息可以保存至每个应用实例对应的Zookeeper临时节点中。其中,层级分组信息中所述第一第二层分组、第二第二层分组、第三第二层分组和第四第二层分组的热点优先级依次呈降序排列,即第一第二层分组的热点优先级最高,第四第二层分组最低。
步骤S203,根据所述每个本地缓存的已占用空间大于第一阈值或者剩余空间小于第二阈值,从所述层级分组信息中热点优先级最低的目标分组中选择至少一部分数据对象,以将所述至少一部分数据对象从所述每个本地缓存中清除。
本实施例中,当每个应用实例对应的所述每个本地缓存的已占用空间大于第一阈值或者剩余空间小于第二阈值,即本地缓存的内存空间容量出现已占用空间过大或者剩余空间不足的事件时,需要从所述每个本地缓存对应的所述层级分组信息中热点优先级最低的目标分组中选择至少一部分数据对象,将所述至少一部分数据对象从所述每个本地缓存中清除,以获得额外的剩余空间。这种本地缓存的数据淘汰策略可以确保将层级分组信息中所标识的最低热点优先级的数据对象从本地缓存中清除,使得保留在每个本地缓存中的数据对象的热点优先级相对更高,从而可以显著性提高分布式环境下各应用实例的本地缓存的数据访问命中率,从而提高目标应用的数据访问性能。
在一个实施方式中,如图5所示,所述步骤S203中根据所述每个本地缓存的已占用空间大于第一阈值或者剩余空间小于第二阈值,从所述层级分组信息中热点优先级最低的目标分组中选择至少一部分数据对象,以将所述至少一部分数据对象从所述每个本地缓存中清除包括:
步骤401,按照热点优先级从低到高的顺序从所述第四第二层分组、第三第二层分组、第二第二层分组、第一第二层分组中选择所述目标分组;
步骤402,当所述目标分组中的全部数据对象从所述每个本地缓存中清除之后,如果所述每个本地缓存的已占用空间仍然大于第一阈值或者剩余空间仍然小于第二阈值,则继续从其他第二层分组中热点优先级最低的目标分组中选择至少一部分数据对象从所述每个本地缓存中清除,直至所述每个本地缓存的已占用空间不大于第一阈值或者剩余空间不小于第二阈值。
本实施例中,通过热点优先级从低到高的顺序从本地缓存的层级分组信息的所述第四第二层分组、第三第二层分组、第二第二层分组、第一第二层分组中选择需要清除数据对象的目标分组,从所述目标分组中选择需要清除的至少一部分数据对象,并根据所述至少一部分数据对象的唯一标识符将所述至少一部分数据对象从本地缓存中清除。当所述目标分组中的全部数据对象从所述每个本地缓存中清除之后,如果所述每个本地缓存的已占用空间仍然大于第一阈值或者剩余空间仍然小于第二阈值,则继续从其他第二层分组中热点优先级最低的目标分组中选择至少一部分数据对象从所述每个本地缓存中清除,重复上述过程,直至所述每个本地缓存的已占用空间不大于第一阈值或者剩余空间不小于第二阈值。
如此,本实施例可以确保将层级分组信息中所标识的最低热点优先级的数据对象从本地缓存中清除,并保留足够的本地缓存空间用于提供新的数据对象的缓存和访问,从而提高本地缓存的数据访问命中率。
在一个实施方式中,所述方法还可以包括:
在将所述至少一部分数据对象从所述每个本地缓存中清除、直至所述每个本地缓存的已占用空间不大于第一阈值或者剩余空间不小于第二阈值之后,基于所述每个本地缓存中的数据对象的最新的第一度量信息和第二度量信息重构所述层级分组信息。
具体而言,可以继续基于前述任一实施例中层级分组信息的构建方式重构所述本地缓存对应的层级分组信息,并用重构后的层级分组信息更新所述本地缓存对应的临时节点中保存的层级分组信息。
综上,本申请实施例的分布式环境下本地缓存的分组数据处理方法,通过为目标应用的多个应用实例分别分配本地缓存,根据每个本地缓存中的数据对象集的第一度量信息和第二度量信息,分别为所述每个本地缓存创建所述每个本地缓存中的数据对象集的层级分组信息,并根据所述每个本地缓存的已占用空间大于第一阈值或者剩余空间小于第二阈值,从所述层级分组信息中热点优先级最低的目标分组中选择至少一部分数据对象,以将所述至少一部分数据对象从所述每个本地缓存中清除,从而可以确保将层级分组信息中所标识的热点优先级最低的数据对象从本地缓存中清除,并保留足够的本地缓存空间用于提供新的热点数据对象的缓存和访问,可以显著性提高分布式环境下各应用实例的本地缓存的数据访问命中率,提高目标应用的数据访问性能。
在一个实施方式中,如图6所示,所述步骤S301中对所述每个本地缓存中的数据对象的唯一标识符的集合按照数据对象的第一度量信息进行第一层分组,得到第一第一层分组和第二第一层分组,可以包括:
步骤S501,对所述每个本地缓存中的数据对象的唯一标识符的集合,以数据对象的第一度量信息的平均值为分割线,分割得到初始的第一临时第一层分组和第二临时第一层分组;
步骤S502,对所述分割线以预定的第一幅度进行递增或递减调整,基于调整后的分割线分割得到调整后的第一临时第一层分组和第二临时第一层分组,直至所述调整后的第一临时第一层分组和第二临时第一层分组达到预定的第一层分组条件,则将所述调整后的第一临时第一层分组和第二临时第一层分组作为所述第一第一层分组和第二第一层分组。
本实施例通过以本地缓存的数据对象的第一度量信息的平均值为分割线,对所述每个本地缓存中的数据对象的唯一标识符的集合进行分割,并通过对所述分割线以预定的第一幅度进行递增或递减调整,基于调整后的分割线分割得到调整后的两个临时第一层分组,直至所述调整后的两个临时第一层分组达到预定的第一层分组条件。从而,可以以第一层聚合分组的方式快速分割得到所述第一第一层分组和第二第一层分组。
在一个实施方式中,如图7所示,所述步骤S302中对所述第一第一层分组和第二第一层分组中的数据对象的唯一标识符的集合按照数据对象的第二度量信息分别进行第二层分组,以将所述第一第一层分组分割为第一第二层分组和第二第二层分组,将所述第二第一层分组分割为第三第二层分组和第四第二层分组,可以包括:
步骤S601,分别对所述第一第一层分组和第二第一层分组中的数据对象的唯一标识符的集合,以数据对象的第二度量信息的平均值为分割线,分割得到初始的第一临时第二层分组和第二临时第二层分组以及第三临时第二层分组和第四临时第二层分组;
步骤S602,对所述分割线以预定的第二幅度进行递增或递减调整,基于调整后的分割线分割得到调整后的第一临时第二层分组和第二临时第二层分组以及第三临时第二层分组和第四临时第二层分组,直至所述调整后的第一临时第二层分组和第二临时第二层分组以及第三临时第二层分组和第四临时第二层分组达到预定的第二层分组条件,则将所述调整后的第一临时第二层分组和第二临时第二层分组以及第三临时第二层分组和第四临时第二层分组分别作为所述第一第二层分组、第二第二层分组、第三第二层分组和第四第二层分组。
本实施例通过以第一第一层分组和第二第一层分组中的数据对象的第二度量信息的平均值为分割线,对所述第一第一层分组和第二第一层分组中的数据对象的唯一标识符的集合分别进行分割,并通过对所述分割线以预定的第二幅度进行递增或递减调整,基于调整后的分割线分割得到调整后的多个临时第二层分组,直至所述调整后的多个临时第二层分组达到预定的第二层分组条件。从而,可以以第二层聚合分组的方式快速分割得到所述第一第二层分组、第二第二层分组、第三第二层分组和第四第二层分组。
在一个实施方式中,所述预定的第一层分组条件可以包括:所述第一第一层分组和第二第一层分组各自的内部数据对象的第一度量信息之间的平均距离之和,与所述第一第一层分组和第二第一层分组各自数据对象的第一度量信息的平均值之间的距离的比值小于第三阈值。
假设第一第一层分组表示为,第二第一层分组表示为,其中表示第一第一层分组中的第
i个数据对象的唯一标识符,,
m表示第一第一层分组中数据对象的唯一标识符的数量;表示第二第一层分组中的第
j个数据对象的唯一标识符,,
n表示第二第一层分组中数据对象的唯一标识符的数量。第一第一层分组中的第
i个数据对象的第一度量信息表示为,第二第一层分组中的第
j个数据对象的第一度量信息表示为,则所述第一第一层分组的内部数据对象的第一度量信息之间的平均距离可以表示为,其中;所述第二第一层分组的内部数据对象的第一度量信息之间的平均距离表示为,其中。
假设第一第一层分组中的数据对象的第一度量信息的平均值表示为,第二第一层分组中的数据对象的第一度量信息的平均值表示为,则所述第一第一层分组和第二第一层分组各自数据对象的第一度量信息的平均值之间的距离可以表示为。
那么,所述预定的第一层分组条件可以表示为如下公式:
其中,Th1表示所述第三阈值,可以根据实际情况选取。由于所述第一第一层分组和第二第一层分组各自的内部数据对象的第一度量信息之间的平均距离可以衡量每个第一层分组内部数据对象的第一度量信息的类似程度,所述第一第一层分组和第二第一层分组各自的内部数据对象的第一度量信息之间的平均距离越小,则每个第一层分组内部的数据对象之间类似程度越高,表明聚合分组的效果越好。所述第一第一层分组和第二第一层分组各自数据对象的第一度量信息的平均值之间的距离可以衡量两个第一层分组的数据对象之间的类似程度,所述第一第一层分组和第二第一层分组各自数据对象的第一度量信息的平均值之间的距离越大,则两个第一层分组的数据对象之间的类似程度越低,表明聚合分组的效果越好。因此,所述第一第一层分组和第二第一层分组各自的内部数据对象的第一度量信息之间的平均距离之和与所述第一第一层分组和第二第一层分组各自数据对象的第一度量信息的平均值之间的距离的比值越小,层级分组信息的第一层聚合分组的效果就越好。从而,可以采用所述比值小于所述第三阈值作为上述预设的第一层分组条件,当达到所述预设的第一层分组条件时,即终止分割线的递增或递减调整,得到最终的所述第一第一层分组和第二第一层分组。
在一个实施方式中,所述预定的第二层分组条件包括:所述第一第二层分组和第二第二层分组各自的内部数据对象的第二度量信息之间的平均距离之和,与所述第一第二层分组和第二第二层分组各自数据对象的第二度量信息的平均值之间的距离的比值,以及所述第三第二层分组和第四第二层分组各自的内部数据对象的第二度量信息之间的平均距离之和,与所述第三第二层分组和第四第二层分组各自数据对象的第二度量信息的平均值之间的距离的比值均小于第四阈值。
假设第一第二层分组表示为,第二第二层分组表示为,其中表示第一第二层分组中的第个数据对象的唯一标识符,,m1表示第一第二层分组中数据对象的唯一标识符的数量;表示第二第二层分组中的第
h个数据对象的唯一标识符,,m2表示第二第二层分组中数据对象的唯一标识符的数量。第一第二层分组中的第
l个数据对象的第二度量信息表示为,第二第二层分组中的第
j个数据对象的第二度量信息表示为,则所述第一第二层分组的内部数据对象的第二度量信息之间的平均距离可以表示为,其中;所述第二第二层分组的内部数据对象的第二度量信息之间的平均距离表示为,其中。
假设第一第二层分组中的数据对象的第二度量信息的平均值表示为,第二第二层分组中的数据对象的第二度量信息的平均值表示为,则所述第一第二层分组和第二第二层分组各自数据对象的第二度量信息的平均值之间的距离可以表示为。
那么,所述预定的第二层分组条件可以表示为如下公式:
其中,Th2表示所述第四阈值,可以根据实际情况选取。
同理,对于所述第三第二层分组和第四第二层分组各自的内部数据对象的第二度量信息之间的平均距离之和,与所述第三第二层分组和第四第二层分组各自数据对象的第二度量信息的平均值之间的距离的比值也可以采用上述同样的计算公式表示,在此不再赘述。如前所示,所述第一第二层分组和第二第二层分组各自的内部数据对象的第二度量信息之间的平均距离之和,与所述第一第二层分组和第二第二层分组各自数据对象的第二度量信息的平均值之间的距离的比值越小,以及所述第三第二层分组和第四第二层分组各自的内部数据对象的第二度量信息之间的平均距离之和,与所述第三第二层分组和第四第二层分组各自数据对象的第二度量信息的平均值之间的距离的比值越小,层级分组信息的第二层聚合分组的效果就越好。从而,可以采用所述比值小于所述第四阈值作为上述预设的第二层分组条件,当达到所述预设的第二层分组条件时,即终止分割线的递增或递减调整,得到最终的所述第一第二层分组、第二第二层分组、第三第二层分组和第四第二层分组。
在一个实施方式中,所述方法还包括:所述多个应用实例中的每个应用实例响应于接收到客户端对目标数据对象的访问请求,根据所述目标数据对象在所述每个应用实例的本地缓存中的命中结果以及所述目标数据对象的第一度量信息和第二度量信息,将所述目标数据对象的唯一标识符更新到所述每个应用实例的本地缓存对应的目标层级分组信息。
本实施例中,当每个应用实例接收到客户端对目标数据对象的访问请求,会首先去本地缓存中查询是否存在所述目标数据对象,并根据所述目标数据对象在所述本地缓存中的命中结果以及所述目标数据对象当前最新的第一度量信息和第二度量信息,将所述目标数据对象的唯一标识符更新到所述每个应用实例的本地缓存对应的目标层级分组信息。从而,随着客户端对目标数据对象的访问请求,每个应用实例都会实时更新目标数据对象在层级分组信息中的分组,使得本地缓存的层级分组信息保持实时更新的状态,实时反映本地缓存中的数据对象的热点优先级。
在一个实施方式中,如图8所示,所述根据所述目标数据对象在所述每个应用实例的本地缓存中的命中结果以及所述目标数据对象的第一度量信息和第二度量信息,将所述目标数据对象的唯一标识符更新到所述每个应用实例的本地缓存对应的目标层级分组信息包括:
步骤S701,计算所述目标数据对象的第一度量信息分别与所述目标层级分组信息中的两个第一层分组的各自数据对象的第一度量信息的平均值之间的第一欧氏距离和第二欧氏距离;
步骤S702,将所述目标数据对象分组到所述第一欧氏距离和第二欧氏距离中的最小值对应的目标第一层分组;
步骤S703,计算所述目标数据对象的第二度量信息分别与所述目标第一层分组中的两个第二层分组的各自数据对象的第二度量信息的平均值之间的第三欧氏距离和第四欧氏距离;
步骤S704,将所述目标数据对象分组到所述第三欧氏距离和第四欧氏距离中的最小值对应的目标第二层分组,并将所述目标数据对象的唯一标识符更新到所述目标第二层分组。
本实施例中,所述目标数据对象的第一度量信息与所述目标层级分组信息中的两个第一层分组的各自数据对象的第一度量信息的平均值之间欧氏距离可以衡量所述目标数据对象的第一度量信息距离哪个第一层分组更接近,所述目标数据对象的的第二度量信息与目标第一层分组中的两个第二层分组的各自数据对象的第二度量信息的平均值之间的欧氏距离可以衡量所述目标数据对象的第二度量信息距离哪个第二层分组更接近。
如果所述目标数据对象的第一度量信息表示为,所述目标数据对象的第二度量信息表示为,则计算出的所述目标数据对象的第一度量信息分别与所述目标层级分组信息中的两个第一层分组的各自数据对象的第一度量信息的平均值之间的第一欧氏距离和第二欧氏距离可以分别表示为:和。从而,从所述第一欧氏距离和第二欧氏距离中确定最小值,将所述目标数据对象分组到所述最小值对应的目标第一层分组。例如,假设所述目标数据对象的第一度量信息与所述目标层级分组信息中的第一第一层分组的数据对象的第一度量信息的平均值之间的第一欧氏距离小于所述目标数据对象的第一度量信息与所述目标层级分组信息中的第二第一层分组的数据对象的第一度量信息的平均值之间的第二欧氏距离,则将所述目标数据对象分组到所述第一第一层分组。
随后,计算所述目标数据对象的第二度量信息分别与所述第一第一层分组中的两个第二层分组的各自数据对象的第二度量信息的平均值之间的第三欧氏距离和第四欧氏距离,可以分别表示为:和。从而,从所述第三欧氏距离和第四欧氏距离中确定最小值,将所述目标数据对象分组到所述最小值对应的目标第二层分组。例如,假设所述目标数据对象的第二度量信息与所述第一第一层分组中的第一第二层分组的数据对象的第二度量信息的平均值之间的第三欧氏距离大于所述目标数据对象的第二度量信息与所述第一第一层分组中的第二第二层分组的数据对象的第二度量信息的平均值之间的第四欧氏距离,则将所述目标数据对象最终分组到所述第二第二层分组。
由此,本实施例当每个应用实例接收到客户端对目标数据对象的访问请求,根据所述目标数据对象的第一度量信息分别与所述目标层级分组信息中的两个第一层分组的各自数据对象的第一度量信息的平均值之间欧氏距离的比较,确定该目标数据对象所分组的目标第一层分组,同时根据所述目标数据对象的的第二度量信息与所述目标第一层分组中的两个第二层分组的各自数据对象的第二度量信息的平均值之间的欧氏距离的比较,确定该目标数据对象所分组的目标第二层分组,并将所述目标数据对象的唯一标识符更新到所述目标第二层分组。从而,随着客户端对目标数据对象的访问请求,每个应用实例都会实时确定和更新目标数据对象在层级分组信息中的目标第二层分组,使得层级分组信息中的目标数据对象可以准确反映其热点优先级。
在一个实施方式中,在前述任一实施例基础上,所述步骤S704中将所述目标数据对象的唯一标识符更新到所述目标第二层分组包括:
当所述目标数据对象在所述每个应用实例的本地缓存中命中时,将所述目标数据对象的唯一标识符从当前所属的第二层分组移动至所述目标第二层分组;
当所述目标数据对象在所述每个应用实例的本地缓存中没有命中时,将所述目标数据对象的唯一标识符新写入所述目标第二层分组。
本实施例中,在前述获得所述目标数据对象所分组的目标第二层分组之后,根据所述目标数据对象在所述每个应用实例的本地缓存中是否命中执行不同的更新处理。当所述目标数据对象在所述每个应用实例的本地缓存中命中时,即所述目标数据对象已经存在于本地缓存中,即该目标数据对象在层级分组信息中存在当前所属的第二层分组,那么此种情形下,将所述目标数据对象的唯一标识符从当前所属的第二层分组移动至所述目标第二层分组;当所述目标数据对象在所述每个应用实例的本地缓存中没有命中时,即该目标数据对象在层级分组信息中不存在,则可以直接将所述目标数据对象的唯一标识符新写入所述目标第二层分组。
在一个实施方式中,在前述任一实施例基础上,如图9所示,所述方法还可以包括:
步骤S801,构建所述多个应用实例分别对应的多个本地缓存的数据对象合集,并基于所述数据对象合集中的数据对象的第一度量信息和第二度量信息创建聚合层级分组信息;
步骤S802,将所述每个应用实例的本地缓存对应的层级分组信息与所述聚合层级分组信息进行比较,获取所述聚合层级分组信息的第一第二层分组相对于所述每个应用实例的本地缓存对应的层级分组信息的第一第二层分组的数据对象的唯一标识符的差集;
步骤S803,在所述差集中的数据对象不存在于所述每个应用实例的本地缓存时,从所述数据对象合集中获取所述差集中的数据对象,写入所述每个应用实例的本地缓存,并根据所述差集中的数据对象的全局第一度量信息和全局第二度量信息将所述差集中的数据对象的唯一标识符更新到所述每个应用实例的本地缓存对应的层级分组信息。
本实施例中,构建所述多个应用实例分别对应的多个本地缓存的数据对象合集,并基于所述数据对象合集中的数据对象的第一度量信息和第二度量信息创建聚合层级分组信息,从而可以在应用维度上聚合每个应用实例上的层级分组信息。在一个实施方式中,对于应用维度上的聚合层级分组信息中的每个数据对象,如果该数据对象存在于多个应用实例的本地缓存中,即在多个应用实例的本地缓存对应的层级分组信息中均存在对应的分组,则聚合层级分组信息中的该数据对象仅保留热点优先级最高的分组。相应地,聚合层级分组信息中的每个数据对象的第一度量信息和第二度量信息,选择该数据对象在所有应用实例的本地缓存中热点优先级最高的第一度量信息和第二度量信息作为其全局第一度量信息和全局第二度量信息。
在此基础上,对于每个应用实例而言,将所述每个应用实例的本地缓存对应的层级分组信息与所述聚合层级分组信息进行比较,获取所述聚合层级分组信息的第一第二层分组相对于所述每个应用实例的本地缓存对应的层级分组信息的第一第二层分组的数据对象的唯一标识符的差集;在所述差集中的数据对象不存在于所述每个应用实例的本地缓存时,从所述数据对象合集中获取所述差集中的数据对象,写入所述每个应用实例的本地缓存,并根据所述差集中的数据对象的全局第一度量信息和全局第二度量信息将所述差集中的数据对象的唯一标识符更新到所述每个应用实例的本地缓存对应的层级分组信息。具体而言,可以同样基于前述实施例中的欧氏距离计算,计算所述差集中的数据对象的全局第一度量信息和全局第二度量信息与所述每个应用实例的本地缓存的层级分组信息中各层级分组的数据对象的第一度量信息和第二度量信息的平均值的欧氏距离,从而将所述差集中的数据对象的唯一标识符更新到所述每个应用实例的本地缓存对应的层级分组信息。本实施例可以定期从其他应用实例的本地缓存中获得全局热点优先级高的热点数据对象,并写入每个应用实例的本地缓存,可以进一步提高分布式环境下各应用实例的本地缓存的数据访问命中率,提高目标应用的数据访问性能。
在一个实施方式中,在前述任一实施例基础上,如图10所示,所述方法还可以包括:
步骤S901,将所述每个应用实例的本地缓存对应的层级分组信息与所述聚合层级分组信息进行比较,获取所述聚合层级分组信息的第四第二层分组相对于所述每个应用实例的本地缓存对应的层级分组信息的第四第二层分组的数据对象的唯一标识符的交集;
步骤S902,从所述每个应用实例的本地缓存中清除所述交集中的数据对象,并将所述交集中的数据对象的唯一标识符从所述每个应用实例的本地缓存对应的层级分组信息中删除。
本实施例中,对于每个应用实例而言,将所述每个应用实例的本地缓存对应的层级分组信息与所述聚合层级分组信息进行比较,获取所述聚合层级分组信息的第四第二层分组相对于所述每个应用实例的本地缓存对应的层级分组信息的第四第二层分组的数据对象的唯一标识符的交集,所述交集中的数据对象是全局热点优先级低的数据对象,因此,从所述每个应用实例的本地缓存中清除所述交集中的数据对象,并将所述交集中的数据对象的唯一标识符从所述每个应用实例的本地缓存对应的层级分组信息中删除,就可以定期从每个应用实例的本地缓存中清除全局热点优先级低的数据对象,一方面可以保证本地缓存具有足够的剩余空间,另一方面从本地缓存清除全局热点优先级低的冷数据,可以进一步提高分布式环境下各应用实例的本地缓存的数据访问命中率,提高目标应用的数据访问性能。
图11是根据本申请一实施例的分布式环境下本地缓存的分组数据处理装置的结构示意图。如图11所示,本申请的分布式环境下本地缓存的分组数据处理装置,包括以下单元:
缓存构建单元1001,用于为目标应用的多个应用实例分别分配本地缓存,得到所述多个应用实例分别对应的多个本地缓存;
分组构建单元1002,用于根据所述多个本地缓存中每个本地缓存中的数据对象集的第一度量信息和第二度量信息,分别为所述每个本地缓存创建所述每个本地缓存中的数据对象集的层级分组信息,所述层级分组信息用于表征所述数据对象集中的每个数据对象的热点优先级;
数据清除单元1003,用于根据所述每个本地缓存的已占用空间大于第一阈值或者剩余空间小于第二阈值,从所述层级分组信息中热点优先级最低的目标分组中选择至少一部分数据对象,以将所述至少一部分数据对象从所述每个本地缓存中清除。
在一个实施方式中,如图12所示,所述分组构建单元1002,还可以包括:
第一层分组单元1101,用于对所述每个本地缓存中的数据对象的唯一标识符的集合按照数据对象的第一度量信息进行第一层分组,得到第一第一层分组和第二第一层分组;
第二层分组单元1102,用于对所述第一第一层分组和第二第一层分组中的数据对象的唯一标识符的集合按照数据对象的第二度量信息分别进行第二层分组,以将所述第一第一层分组分割为第一第二层分组和第二第二层分组,将所述第二第一层分组分割为第三第二层分组和第四第二层分组,其中所述第一第二层分组、第二第二层分组、第三第二层分组和第四第二层分组的热点优先级依次降低。
在一个实施方式中,如图13所示,所述数据清除单元1003,还可以包括:
目标分组选择单元1201,用于按照热点优先级从低到高的顺序从所述第四第二层分组、第三第二层分组、第二第二层分组、第一第二层分组中选择所述目标分组;
缓存清除单元1202,用于当所述目标分组中的全部数据对象从所述每个本地缓存中清除之后,如果所述每个本地缓存的已占用空间仍然大于第一阈值或者剩余空间仍然小于第二阈值,则继续从其他第二层分组中热点优先级最低的目标分组中选择至少一部分数据对象从所述每个本地缓存中清除,直至所述每个本地缓存的已占用空间不大于第一阈值或者剩余空间不小于第二阈值。
在一个实施方式中,所述装置还可以包括:
分组信息重构单元,用于在将所述至少一部分数据对象从所述每个本地缓存中清除、直至所述每个本地缓存的已占用空间不大于第一阈值或者剩余空间不小于第二阈值之后,基于所述每个本地缓存中的数据对象的最新的第一度量信息和第二度量信息重构所述层级分组信息。
在一个实施方式中,如图14所示,所述第一层分组单元1101,还可以包括:
第一分割单元1301,用于对所述每个本地缓存中的数据对象的唯一标识符的集合,以数据对象的第一度量信息的平均值为分割线,分割得到初始的第一临时第一层分组和第二临时第一层分组;
第二分割单元1302,用于对所述分割线以预定的第一幅度进行递增或递减调整,基于调整后的分割线分割得到调整后的第一临时第一层分组和第二临时第一层分组,直至所述调整后的第一临时第一层分组和第二临时第一层分组达到预定的第一层分组条件,则将所述调整后的第一临时第一层分组和第二临时第一层分组作为所述第一第一层分组和第二第一层分组。
在一个实施方式中,如图15所示,所述第二层分组单元1102,还可以包括:
第三分割单元1401,用于分别对所述第一第一层分组和第二第一层分组中的数据对象的唯一标识符的集合,以数据对象的第二度量信息的平均值为分割线,分割得到初始的第一临时第二层分组和第二临时第二层分组以及第三临时第二层分组和第四临时第二层分组;
第四分割单元1402,用于对所述分割线以预定的第二幅度进行递增或递减调整,基于调整后的分割线分割得到调整后的第一临时第二层分组和第二临时第二层分组以及第三临时第二层分组和第四临时第二层分组,直至所述调整后的第一临时第二层分组和第二临时第二层分组以及第三临时第二层分组和第四临时第二层分组达到预定的第二层分组条件,则将所述调整后的第一临时第二层分组和第二临时第二层分组以及第三临时第二层分组和第四临时第二层分组分别作为所述第一第二层分组、第二第二层分组、第三第二层分组和第四第二层分组。
在一个实施方式中,所述预定的第一层分组条件可以包括:所述第一第一层分组和第二第一层分组各自的内部数据对象的第一度量信息之间的平均距离之和,与所述第一第一层分组和第二第一层分组各自数据对象的第一度量信息的平均值之间的距离的比值小于第三阈值。
在一个实施方式中,所述预定的第二层分组条件包括:所述第一第二层分组和第二第二层分组各自的内部数据对象的第二度量信息之间的平均距离之和,与所述第一第二层分组和第二第二层分组各自数据对象的第二度量信息的平均值之间的距离的比值,以及所述第三第二层分组和第四第二层分组各自的内部数据对象的第二度量信息之间的平均距离之和,与所述第三第二层分组和第四第二层分组各自数据对象的第二度量信息的平均值之间的距离的比值均小于第四阈值。
在一个实施方式中,所述装置还包括:
分组信息更新单元,用于所述多个应用实例中的每个应用实例响应于接收到客户端对目标数据对象的访问请求,根据所述目标数据对象在所述每个应用实例的本地缓存中的命中结果以及所述目标数据对象的第一度量信息和第二度量信息,将所述目标数据对象的唯一标识符更新到所述每个应用实例的本地缓存对应的目标层级分组信息。
在一个实施方式中,如图16所示,所述分组信息更新单元,还可以包括:
第一距离计算单元1501,用于计算所述目标数据对象的第一度量信息分别与所述目标层级分组信息中的两个第一层分组的各自数据对象的第一度量信息的平均值之间的第一欧氏距离和第二欧氏距离;
第一层分组选择单元1502,用于将所述目标数据对象分组到所述第一欧氏距离和第二欧氏距离中的最小值对应的目标第一层分组;
第二距离计算单元1503,用于计算所述目标数据对象的第二度量信息分别与所述目标第一层分组中的两个第二层分组的各自数据对象的第二度量信息的平均值之间的第三欧氏距离和第四欧氏距离;
第二层分组选择单元1504,用于将所述目标数据对象分组到所述第三欧氏距离和第四欧氏距离中的最小值对应的目标第二层分组,并将所述目标数据对象的唯一标识符更新到所述目标第二层分组。
在一个实施方式中,在前述任一实施例基础上,所述第二层分组选择单元1504还可以用于:
当所述目标数据对象在所述每个应用实例的本地缓存中命中时,将所述目标数据对象的唯一标识符从当前所属的第二层分组移动至所述目标第二层分组;
当所述目标数据对象在所述每个应用实例的本地缓存中没有命中时,将所述目标数据对象的唯一标识符新写入所述目标第二层分组。
在一个实施方式中,在前述任一实施例基础上,如图17所示,所述装置还可以包括:
聚合分组单元1601,用于构建所述多个应用实例分别对应的多个本地缓存的数据对象合集,并基于所述数据对象合集中的数据对象的第一度量信息和第二度量信息创建聚合层级分组信息;
差集比较单元1602,用于将所述每个应用实例的本地缓存对应的层级分组信息与所述聚合层级分组信息进行比较,获取所述聚合层级分组信息的第一第二层分组相对于所述每个应用实例的本地缓存对应的层级分组信息的第一第二层分组的数据对象的唯一标识符的差集;
第一缓存更新单元1603,用于在所述差集中的数据对象不存在于所述每个应用实例的本地缓存时,从所述数据对象合集中获取所述差集中的数据对象,写入所述每个应用实例的本地缓存,并根据所述差集中的数据对象的全局第一度量信息和全局第二度量信息将所述差集中的数据对象的唯一标识符更新到所述每个应用实例的本地缓存对应的层级分组信息。
在一个实施方式中,在前述任一实施例基础上,如图18所示,所述装置还可以包括:
交集比较单元1701,用于将所述每个应用实例的本地缓存对应的层级分组信息与所述聚合层级分组信息进行比较,获取所述聚合层级分组信息的第四第二层分组相对于所述每个应用实例的本地缓存对应的层级分组信息的第四第二层分组的数据对象的唯一标识符的交集;
第二缓存更新单元1702,用于从所述每个应用实例的本地缓存中清除所述交集中的数据对象,并将所述交集中的数据对象的唯一标识符从所述每个应用实例的本地缓存对应的层级分组信息中删除。
综上,本申请实施例的分布式环境下本地缓存的分组数据处理装置,通过为目标应用的多个应用实例分别分配本地缓存,根据每个本地缓存中的数据对象集的第一度量信息和第二度量信息,分别为所述每个本地缓存创建所述每个本地缓存中的数据对象集的层级分组信息,并根据所述每个本地缓存的已占用空间大于第一阈值或者剩余空间小于第二阈值,从所述层级分组信息中热点优先级最低的目标分组中选择至少一部分数据对象,以将所述至少一部分数据对象从所述每个本地缓存中清除,从而可以确保将层级分组信息中所标识的热点优先级最低的数据对象从本地缓存中清除,并保留足够的本地缓存空间用于提供新的热点数据对象的缓存和访问,可以显著性提高分布式环境下各应用实例的本地缓存的数据访问命中率,提高目标应用的数据访问性能。
需要说明的是,本领域技术人员可以理解,本申请的方法实施例所描述的不同实施方式及其说明解释和所达到的技术效果,同样适用于本申请的装置实施例中,在此不再赘述。
进一步地,本申请实施例还提出一种电子设备,该电子设备可以包括:处理器和存储器。其中,存储器存储有计算机程序指令,处理器可以调用存储器中的计算机程序指令以执行本申请任一实施方式所述方法的全部或部分步骤。上述的存储器中的计算机程序指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。
进一步地,本申请还提供一种计算机程序产品,所述计算机程序产品包括存储有计算机程序的非暂态计算机可读存储介质,当该计算机可读存储介质连接至计算机设备,所述计算机程序被计算机设备的一个或多个处理器执行时,能够执行本申请任一实施方式所述方法的全部或部分步骤。
进一步地,本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序可以被一个或多个处理器执行以执行本申请任一实施方式所述方法的全部或部分步骤。
通过以上的实施方式的描述,本领域技术人员可以清楚地了解到本申请的各实施方式可借助软件或者软件结合必要的通用硬件平台的方式来实现,当然也可以通过硬件功能实现。基于这样的理解,本申请的技术方案本质上或者对现有技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备,例如包括但不限于个人计算机,服务器,或者网络设备等,来执行本申请任一实施方式所述方法的全部或部分步骤。前述的存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储计算机程序代码的介质。
以上描述了本申请示例性的实施例,应当理解,上述示例性的实施例不是限制性的,而是说明性的,本申请的保护范围不限于此。应理解,本领域技术人员在不脱离本申请的精神和范围的情况下,可以对本申请实施例进行修改和变型,这些修改和变型理应在本申请的保护范围之内。
Claims (9)
1.一种分布式环境下本地缓存的分组数据处理方法,其特征在于,包括:
为目标应用的多个应用实例分别分配本地缓存,得到所述多个应用实例分别对应的多个本地缓存;
根据所述多个本地缓存中每个本地缓存中的数据对象的第一度量信息和第二度量信息,分别为所述每个本地缓存创建所述每个本地缓存中的数据对象集的层级分组信息,所述层级分组信息基于所述数据对象集中的每个数据对象的第一度量信息和第二度量信息进行层级聚合分组而得到,用于表征所述数据对象集中的每个数据对象的热点优先级,所述第一度量信息和第二度量信息是表征数据对象的不同访问特征的度量因子;其中,对所述每个本地缓存中的数据对象的唯一标识符的集合按照数据对象的第一度量信息进行第一层聚合分组,得到第一第一层分组和第二第一层分组;对所述第一第一层分组和第二第一层分组中的数据对象的唯一标识符的集合按照数据对象的第二度量信息分别进行第二层聚合分组,以将所述第一第一层分组分割为第一第二层分组和第二第二层分组,将所述第二第一层分组分割为第三第二层分组和第四第二层分组,其中所述第一第二层分组、第二第二层分组、第三第二层分组和第四第二层分组的热点优先级依次降低;
根据所述每个本地缓存的已占用空间大于第一阈值或者剩余空间小于第二阈值,从所述层级分组信息中热点优先级最低的目标分组中选择至少一部分数据对象,以将所述至少一部分数据对象从所述每个本地缓存中清除。
2.根据权利要求1所述的分布式环境下本地缓存的分组数据处理方法,其特征在于,所述根据所述每个本地缓存的已占用空间大于第一阈值或者剩余空间小于第二阈值,从所述层级分组信息中热点优先级最低的目标分组中选择至少一部分数据对象,以将所述至少一部分数据对象从所述每个本地缓存中清除包括:
按照热点优先级从低到高的顺序从所述第四第二层分组、第三第二层分组、第二第二层分组、第一第二层分组中选择所述目标分组;
当所述目标分组中的全部数据对象从所述每个本地缓存中清除之后,如果所述每个本地缓存的已占用空间仍然大于第一阈值或者剩余空间仍然小于第二阈值,则继续从其他第二层分组中热点优先级最低的目标分组中选择至少一部分数据对象从所述每个本地缓存中清除,直至所述每个本地缓存的已占用空间不大于第一阈值或者剩余空间不小于第二阈值。
3.根据权利要求2所述的分布式环境下本地缓存的分组数据处理方法,其特征在于,所述方法还包括:
在将所述至少一部分数据对象从所述每个本地缓存中清除、直至所述每个本地缓存的已占用空间不大于第一阈值或者剩余空间不小于第二阈值之后,基于所述每个本地缓存中的数据对象的最新的第一度量信息和第二度量信息重构所述层级分组信息。
4.根据权利要求1所述的分布式环境下本地缓存的分组数据处理方法,其特征在于,所述方法还包括:
所述多个应用实例中的每个应用实例响应于接收到客户端对目标数据对象的访问请求,根据所述目标数据对象在所述每个应用实例的本地缓存中的命中结果以及所述目标数据对象的第一度量信息和第二度量信息,将所述目标数据对象的唯一标识符更新到所述每个应用实例的本地缓存对应的目标层级分组信息。
5.根据权利要求4所述的分布式环境下本地缓存的分组数据处理方法,其特征在于,所述根据所述目标数据对象在所述每个应用实例的本地缓存中的命中结果以及所述目标数据对象的第一度量信息和第二度量信息,将所述目标数据对象的唯一标识符更新到所述每个应用实例的本地缓存对应的目标层级分组信息,包括:
计算所述目标数据对象的第一度量信息分别与所述目标层级分组信息中的两个第一层分组的各自数据对象的第一度量信息的平均值之间的第一欧氏距离和第二欧氏距离;
将所述目标数据对象分组到所述第一欧氏距离和第二欧氏距离中的最小值对应的目标第一层分组;
计算所述目标数据对象的第二度量信息分别与所述目标第一层分组中的两个第二层分组的各自数据对象的第二度量信息的平均值之间的第三欧氏距离和第四欧氏距离;
将所述目标数据对象分组到所述第三欧氏距离和第四欧氏距离中的最小值对应的目标第二层分组,并将所述目标数据对象的唯一标识符更新到所述目标第二层分组。
6.根据权利要求5所述的分布式环境下本地缓存的分组数据处理方法,其特征在于,所述将所述目标数据对象的唯一标识符更新到所述目标第二层分组包括:
当所述目标数据对象在所述每个应用实例的本地缓存中命中时,将所述目标数据对象的唯一标识符从当前所属的第二层分组移动至所述目标第二层分组;
当所述目标数据对象在所述每个应用实例的本地缓存中没有命中时,将所述目标数据对象的唯一标识符新写入所述目标第二层分组。
7.根据权利要求1所述的分布式环境下本地缓存的分组数据处理方法,其特征在于,所述方法还包括:
构建所述多个应用实例分别对应的多个本地缓存的数据对象合集,并基于所述数据对象合集中的数据对象的第一度量信息和第二度量信息创建聚合层级分组信息;
将所述每个应用实例的本地缓存对应的层级分组信息与所述聚合层级分组信息进行比较,获取所述聚合层级分组信息的第一第二层分组相对于所述每个应用实例的本地缓存对应的层级分组信息的第一第二层分组的数据对象的唯一标识符的差集;
在所述差集中的数据对象不存在于所述每个应用实例的本地缓存时,从所述数据对象合集中获取所述差集中的数据对象,写入所述每个应用实例的本地缓存,并根据所述差集中的数据对象的全局第一度量信息和全局第二度量信息将所述差集中的数据对象的唯一标识符更新到所述每个应用实例的本地缓存对应的层级分组信息。
8.根据权利要求7所述的分布式环境下本地缓存的分组数据处理方法,其特征在于,所述方法还包括:
将所述每个应用实例的本地缓存对应的层级分组信息与所述聚合层级分组信息进行比较,获取所述聚合层级分组信息的第四第二层分组相对于所述每个应用实例的本地缓存对应的层级分组信息的第四第二层分组的数据对象的唯一标识符的交集;
从所述每个应用实例的本地缓存中清除所述交集中的数据对象,并将所述交集中的数据对象的唯一标识符从所述每个应用实例的本地缓存对应的层级分组信息中删除。
9.一种分布式环境下本地缓存的分组数据处理装置,其特征在于,包括:
缓存构建单元,用于为目标应用的多个应用实例分别分配本地缓存,得到所述多个应用实例分别对应的多个本地缓存;
分组构建单元,用于根据所述多个本地缓存中每个本地缓存中的数据对象的第一度量信息和第二度量信息,分别为所述每个本地缓存创建所述每个本地缓存中的数据对象集的层级分组信息,所述层级分组信息基于所述数据对象集中的每个数据对象的第一度量信息和第二度量信息进行层级聚合分组而得到,用于表征所述数据对象集中的每个数据对象的热点优先级,所述第一度量信息和第二度量信息是表征数据对象的不同访问特征的度量因子;其中,对所述每个本地缓存中的数据对象的唯一标识符的集合按照数据对象的第一度量信息进行第一层聚合分组,得到第一第一层分组和第二第一层分组;对所述第一第一层分组和第二第一层分组中的数据对象的唯一标识符的集合按照数据对象的第二度量信息分别进行第二层聚合分组,以将所述第一第一层分组分割为第一第二层分组和第二第二层分组,将所述第二第一层分组分割为第三第二层分组和第四第二层分组,其中所述第一第二层分组、第二第二层分组、第三第二层分组和第四第二层分组的热点优先级依次降低;
数据清除单元,用于根据所述每个本地缓存的已占用空间大于第一阈值或者剩余空间小于第二阈值,从所述层级分组信息中热点优先级最低的目标分组中选择至少一部分数据对象,以将所述至少一部分数据对象从所述每个本地缓存中清除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310093512.6A CN115793994B (zh) | 2023-02-10 | 2023-02-10 | 分布式环境下本地缓存的分组数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310093512.6A CN115793994B (zh) | 2023-02-10 | 2023-02-10 | 分布式环境下本地缓存的分组数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115793994A CN115793994A (zh) | 2023-03-14 |
CN115793994B true CN115793994B (zh) | 2023-04-14 |
Family
ID=85430805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310093512.6A Active CN115793994B (zh) | 2023-02-10 | 2023-02-10 | 分布式环境下本地缓存的分组数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115793994B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4042359B2 (ja) * | 2001-07-10 | 2008-02-06 | 日本電気株式会社 | キャッシュ制御方法及びキャッシュ装置 |
CN109255055B (zh) * | 2018-08-06 | 2020-10-30 | 四川蜀天梦图数据科技有限公司 | 一种基于分组关联表的图数据存取方法和装置 |
CN111177486B (zh) * | 2019-12-19 | 2020-09-08 | 四川蜀天梦图数据科技有限公司 | 一种分布式图计算过程中的消息传递方法和装置 |
CN113392041A (zh) * | 2021-02-08 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 应用缓存清理方法、装置、设备及存储介质 |
-
2023
- 2023-02-10 CN CN202310093512.6A patent/CN115793994B/zh active Active
Non-Patent Citations (1)
Title |
---|
朱江 ; 雷云 ; 刘亚利 ; .一种基于无线电环境地图的路由优化机制.电讯技术.2018,(第09期), * |
Also Published As
Publication number | Publication date |
---|---|
CN115793994A (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108810041B (zh) | 一种分布式缓存系统的数据写入及扩容方法、装置 | |
TWI684099B (zh) | 剖析快取替代 | |
CN107018172B (zh) | 用于在分布式缓存存储器中自适应分区的系统和方法 | |
KR100338224B1 (ko) | 참조의 국한성에 대한 고효율의 동적 추적 방법 및 장치 | |
US20030220951A1 (en) | Dynamic disk space management by multiple database server instances in a cluster configuration | |
US9612760B2 (en) | Modular block-allocator for data storage systems | |
US10102147B1 (en) | Phased based distributed LRU for shared cache systems | |
US9971698B2 (en) | Using access-frequency hierarchy for selection of eviction destination | |
CN110858162B (zh) | 内存管理方法及装置、服务器 | |
JP2015512551A (ja) | ネットワーク・インフラストラクチャにおけるデータ記憶及び編成を容易にするコンシステント・リング名前空間 | |
CN110268391A (zh) | 用于缓存数据的系统和方法 | |
US20050172076A1 (en) | System for managing distributed cache resources on a computing grid | |
JPWO2014007249A1 (ja) | I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法 | |
CN107341114B (zh) | 一种目录管理的方法、节点控制器和系统 | |
CN110245129B (zh) | 一种分布式全局数据去重方法和装置 | |
WO2015100549A1 (zh) | 一种图数据查询方法及装置 | |
CN113867627A (zh) | 一种存储系统性能优化方法及系统 | |
CN115793994B (zh) | 分布式环境下本地缓存的分组数据处理方法和装置 | |
CN107133334B (zh) | 基于高带宽存储系统的数据同步方法 | |
CN115878677B (zh) | 分布式多级缓存的数据处理方法和装置 | |
CN116541553A (zh) | 一种视频调度方法、装置、设备及可读存储介质 | |
CN110825732A (zh) | 数据查询方法、装置、计算机设备和可读存储介质 | |
CN114390069B (zh) | 基于分布式缓存的数据访问方法与系统、设备及存储介质 | |
US8028011B1 (en) | Global UNIX file system cylinder group cache | |
CN115794366A (zh) | 一种内存预取方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |