CN115840770A - 基于分布式环境下的本地缓存数据处理方法和相关设备 - Google Patents
基于分布式环境下的本地缓存数据处理方法和相关设备 Download PDFInfo
- Publication number
- CN115840770A CN115840770A CN202310093517.9A CN202310093517A CN115840770A CN 115840770 A CN115840770 A CN 115840770A CN 202310093517 A CN202310093517 A CN 202310093517A CN 115840770 A CN115840770 A CN 115840770A
- Authority
- CN
- China
- Prior art keywords
- data
- local cache
- cache
- query
- local
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种基于分布式环境下的本地缓存数据处理方法和相关设备,涉及数据处理技术领域。该方法包括:为目标应用的第一实例分配第一本地缓存;获取目标应用的第二实例对应的第二本地缓存中的第二缓存数据信息;获取目标应用的第三实例对应的第三本地缓存中的第三缓存数据信息;根据第二缓存数据信息与第三缓存数据信息,将第二本地缓存中的数据与第三本地缓存中的数据进行数据交集组合;将交集组合后的数据存储至第一本地缓存。本申请可以实现新设置的本地缓存在一开始就预先存储了对应应用实例的热点数据,使得在处理该应用实例时,所需的数据并不需要全部都从数据库中进行读取,从而可以提高对应应用实例的处理效率。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种基于分布式环境下的本地缓存数据处理方法、装置、存储介质和电子设备。
背景技术
在对系统高并发性要求比较高时候,通常会将通常将一些数据存储在缓存,从而提高用户访问速度。缓存分为分布式缓存和本地缓存。分布式缓存方案中,一般应用进程和缓存进程不在同一台服务器,通过RPC或HTTP进行通信,可以实现应用服务和缓存的完全解耦,支持大量的数据存储。分布式缓存常见有redis,memcache等。
本地缓存方案中的应用进程和缓存进程在同一个进程,没有网络开销,访问速度快,但受限于内存,不适合存储大量数据。因此,对于某些数据量较小,但访问十分频繁的数据,通常将其存储于应用的本地缓存中,以提高系统的访问效率,减少无谓的数据库访问,而需要服务器对本地缓存数据进行访问。
在一些分布式系统环境中,采用本地缓存或者二级缓存方案可以很好地解决系统并发的需求,但由于本地缓存的数据受限于内存,现有技术难以有效地对本地缓存中的数据进行统筹监控和管理。这使得在某些情况下,本地缓存中所存储的数据并非都是最优的数据。
发明内容
有鉴于此,有必要提出一种基于分布式环境下的本地缓存数据处理方法、装置、存储介质和电子设备,以优化本地缓存中的数据管理。
本申请第一方面,提供了一种基于分布式环境下的本地缓存数据处理方法,所述方法包括:
为目标应用的第一实例分配第一本地缓存;
获取目标应用的第二实例对应的第二本地缓存中的第二缓存数据信息;
获取目标应用的第三实例对应的第三本地缓存中的第三缓存数据信息;
根据所述第二缓存数据信息与所述第三缓存数据信息,将所述第二本地缓存中的数据与所述第三本地缓存中的数据进行数据交集组合;
将交集组合后的数据存储至所述第一本地缓存,所述交集组合后的数据同样存在于所述第二本地缓存和所述第三本地缓存中。
在其中一个实施例中,所述第二缓存数据信息中包括所述第二本地缓存中的数据的第二查询命中信息,所述第三缓存数据信息中包括所述第三本地缓存中的数据的第三查询命中信息;
所述将所述第二本地缓存中的数据与所述第三本地缓存中的数据进行数据交集组合,包括:
所述将所述第二本地缓存中的数据与所述第三本地缓存中的数据中,满足第一查询条件的数据之间进行交集组合。
在其中一个实施例中,所述第二查询命中信息包括第二查询次数、第二命中次数和第二查询命中率中的至少一种,所述方法还包括:
当所述第二本地缓存中的数据A的所述第二查询次数超过第一查询次数阈值,且所述第二本地缓存中的数据A的所述第二查询命中率也超过第一命中率阈值时;
判定所述第二本地缓存中的数据A满足所述第一查询条件。
在其中一个实施例中,所述方法还包括:
通过软件开发工具包SDK所提供的接口查询所述第二本地缓存中的数据A是否存在;
当存在时,对所述第二本地缓存中的数据A的第二查询次数加1,对所述第二本地缓存中的数据A的第二命中次数加1;
当不存在时,对所述第二本地缓存中的数据A的第二查询次数加1,所述第二本地缓存中的数据A的第二命中次数不变;
将最新的第二命中次数与最新的第二查询次数相除,计算出最新的第二查询命中率。
在其中一个实施例中,所述方法还包括:
检测所述第一本地缓存中的数据在所述第一本地缓存中的第一占用率;当所述第一占用率低于占用率阈值时,将所述第二本地缓存中的数据与所述第三本地缓存中的数据进行数据并集组合;
将并集组合后的数据存储至所述第一本地缓存,所述并集组合后的数据存在于所述第二本地缓存或所述第三本地缓存中。
在其中一个实施例中,每个本地缓存包括多个缓存分组,处于上一级缓存分组中的数据的失效时长大于处于下一级缓存分组中的数据的失效时长,每个查询命中信息包括查询次数、命中次数和查询命中率中的至少一种,所述每个本地缓存包括所述第一本地缓存、所述第二本地缓存和所述第三本地缓存;
所述方法还包括:
检测数据B在所述每个本地缓存中的查询命中信息,当所述数据B在所述每个本地缓存中的查询命中信息均满足第二查询条件时,调整所述数据B在所述每个所述本地缓存中的分组。
在其中一个实施例中,当所述数据B在所述每个本地缓存中的查询命中信息均满足第二查询条件时,调整所述数据B在所述每个所述本地缓存中的分组包括:
当所述第二查询条件为查询次数超过第二查询次数阈值、且查询命中率低于第二命中率阈值时,调高所述数据B在所述每个所述本地缓存中的分组;
当所述第二查询条件为查询次数低于第三查询次数阈值、且查询命中率超过第三命中率阈值时,调低所述数据B在所述每个所述本地缓存中的分组;
所述第三查询次数阈值小于所述第二查询次数阈值。
本申请第二方面,提供了一种基于分布式环境下的本地缓存数据处理装置,所述装置包括:
本地缓存配置模块,用于为目标应用的第一实例分配第一本地缓存;
缓存数据信息查询模块,用于获取目标应用的第二实例对应的第二本地缓存中的第二缓存数据信息;获取目标应用的第三实例对应的第三本地缓存中的第三缓存数据信息;
缓存数据同步模块,用于根据所述第二缓存数据信息与所述第三缓存数据信息,将所述第二本地缓存中的数据与所述第三本地缓存中的数据进行数据交集组合;将交集组合后的数据存储至所述第一本地缓存,所述交集组合后的数据同样存在于所述第二本地缓存和所述第三本地缓存中。
本申请第三方面,提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行本申请第一方面的方法。
本申请第四方面,提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行本申请第一方面的方法。
上述的基于分布式环境下的本地缓存数据处理方法、装置、存储介质和电子设备,针对新设置的本地缓存,通过将分布式环境下的其他本地缓存中的数据进行交集组合,将交集组合后的数据同步至新设置的本地缓存中,使得新设置的本地缓存在一开始就预先存储了对应应用实例的热点数据,使得在处理该应用实例时,所需的数据并不需要全部都从数据库中进行读取,从而可以提高对应应用实例的处理效率。
附图说明
图1为一个实施例中基于分布式环境下的本地缓存数据处理方法的场景示意图;
图2为一个实施例中基于分布式环境下的本地缓存数据处理方法的流程示意图;
图3为另一个实施例中基于分布式环境下的本地缓存数据处理方法的流程示意图;
图4为一个实施例中基于分布式环境下的本地缓存数据处理装置的结构示意图;
图5为一个实施例中电子设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请所使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
比如本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一本地缓存称为第二本地缓存,且类似地,可将第二本地缓存称为第一本地缓存。第一本地缓存和第二本地缓存两者都是本地缓存,但其不是同一本地缓存。
再比如本申请所使用的术语“包括”、“包含”等表明了特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
本申请中的基于分布式环境下的本地缓存数据处理方法可应用于如图1所示的应用场景中。其中,电子设备上安装有分布式(包括微服务)环境下相应的管理系统,该管理系统可订阅应用的各个实例的缓存信息,基于该缓存信息,对个应用实例对应的节点中的本地缓存数据进行处理。
其中,该分布式环境可为分布式Java系统架构环境,可基于zookeeper平台进行的分布式部署。应用实例(instance)可为对应应用需要连接数据库的后台,或者对应应用运行起来的服务。管理系统连接有多个节点(比如图1中的应用实例1(临时节点)、应用实例2(临时节点)、应用实例3(临时节点)),每个节点上部署有用于存储对应应用的数据的本地缓存(应用空间/localcaches),本地缓存可采用键值对(key->value)格式来缓存数据。该应用实例1、应用实例2、应用实例3对应的应用可为相同的应用。
电子设备可向各个实例发送相关控制命令,以了解应用的各个实例的缓存信息。具体地,各应用实例(比如图1中的应用实例1、应用实例2、应用实例3)可基于接收到的管理系统发送的控制指令,向对应的节点上报其缓存信息,各节点则将其所获取到的缓存信息发送给管理系统。
可选地,本申请中的基于分布式环境下的本地缓存数据处理方法可为基于zookeeper、Caffeine实现的分布式环境下的JVM本地缓存数据处理方法。其中,在目标应用启动时候,软件开发工具包SDK会根据目标应用名称,IP在zookeeper下的对应的应用目录下创建一个临时节点,在应用的运行过程中,SDK中会将收集各个内存的key、命中次数、总查询次数等信息组成元数据存放在Zookeeper中。SDK中还提供对本地缓存的操作接口,通过缓存key可以对缓存进行新增、编辑和删除。
分布式管理平台通过接入同一个zookeeper集群,可以获得注册到Zookeeper上的各个应用的实例缓存情况,有了该信息管理平台便可以提供可视化的界面,并根据该信息和SDK提供的操作接口实现对每个应用实例的本地缓存操作。
在一个实施例中,如图2所示,提供了一种基于分布式环境下的本地缓存数据处理方法,该方法包括:
步骤202,为目标应用的第一实例分配第一本地缓存。
本实施例中,本地缓存可处于对应的节点中,节点可为分布式系统中的设有本地缓存的服务器或数据库等设备。分布式系统下设有多个节点,比如可为本申请中的第一节点、第二节点、第三节点等。每个节点可对应存储应用的实例相关的数据至其本地缓存中。比如第一节点可存储目标应用的实例(即第一实例)的相关数据至其本地缓存(即第一本地缓存),第二节点可存储目标应用的实例(即第二实例)的相关数据至其本地缓存(即第二本地缓存),第三节点可存储目标应用的实例(即第三实例)的相关数据至其本地缓存(即第三本地缓存)。
可选地,第一本地缓存可为分布式环境中,第一节点针对目标应用的第一实例所新设置的缓存。其中,目标应用为本申请中待分析的应用。
其中,本地缓存中的应用进程和缓存进程在同一个进程,没有网络开销,访问速度快,但受限于内存,不适合存储大量数据。本地缓存可为Guavacache,Caffeine,Encache等,还可以为通过HashMap机制自实现的本地缓存。
本地缓存用于存储处理目标应用的实例所需的相关数据,该数据在本地缓存中以键值对的形式存储。
比如在该分布式Java系统中,存在着一些修改频率远远小于查询频率的数据,甚至有些数据JVM允许周期都不会变更,近乎常量,为了可维护性,对此类数据在系统启动前维护在数据库中,随着系统启动时读入或者访问时候从数据库读取。但是随着访问频率提高,数据库压力增大,并且会存在缓冲溢出的风险。故而可以将这些数据全部或部分地存入本地缓存中。
步骤204,获取目标应用的第二实例对应的第二本地缓存中的第二缓存数据信息。
步骤206,获取目标应用的第三实例对应的第三本地缓存中的第三缓存数据信息。
可选地,步骤204和步骤206可以并行执行,也可以分先后执行。
电子设备可按照预设频率实时获取分布式系统中,目标应用的各个实例在其对应的本地缓存中的缓存数据信息。该各个实例包括上述的第二实例和第三实例,各个本地缓存包括上述的第一本地缓存、第二本地缓存、第三本地缓存等。
目标应用的第一实例可为图1中的应用实例1,目标应用的第二实例可为图1中的应用实例2,目标应用的第三实例可为图1中的应用实例3。相应地,第一本地缓存可为图1中的应用实例1临时节点中的本地缓存,第二本地缓存可为图1中的应用实例2临时节点中的本地缓存,第三本地缓存可为图1中的应用实例3临时节点中的本地缓存。
缓存数据信息为对应本地缓存中所缓存的数据的信息,可包括缓存的键值对,以及对应键值对的查询命中信息。其中,该查询命中信息包括查询次数、查询命中次数和查询命中率等其中的一种或多种。
查询次数表示对应数据(即键key)在对应本地缓存中的查询次数,查询命中次数表示对应数据(即键key)在对应本地缓存。
步骤208,根据第二缓存数据信息与第三缓存数据信息,将第二本地缓存中的数据与第三本地缓存中的数据进行数据交集组合。
步骤210,将交集组合后的数据存储至第一本地缓存。
本实施例中,交集组合后的数据同样存在于第二本地缓存和第三本地缓存中。电子设备可以基于各个本地缓存中的缓存数据信息,确定哪些数据可以存储到新创建的第一本地缓存中。
其中,该缓存数据信息中包括了对应本地缓存中包含了哪些数据(键key),比如第二缓存数据信息中包含了第二本地缓存中所包含了哪些数据,第三缓存数据信息包含了第三本地缓存中所包含了哪些数据。
交集组合表示将两个或两个以上的数据进行求交集,从而得到两个或两个以上的数据中所包含的共同的数据。电子设备可以将第一本地缓存和第二本地缓存中的数据进行求交集,形成交集组合后的数据。
电子设备通过缓存数据信息可以识别出对应本地缓存中当前的数据集,在将至少两个本地缓存的数据集进行求交集,从而可以得到交集组合后的数据。
举例来说,电子设备通过第二缓存数据信息中识别出在第二本地缓存中的第二数据集,在第三缓存数据信息中识别出在第三本地缓存中的第三数据集,将该两个数据集进行交集组合,得到的交集组合后的数据集中的数据均存在与两个数据集中。
比如在第二缓存数据信息中识别出在第二本地缓存中存在数据x,在第三缓存数据信息中识别出在第三本地缓存中也同样存在数据x,则两者的交集组合后的数据也同样包括数据x,可认为该数据x是对应应用的热点数据,电子设备可将数据x存储至第一本地缓存中。
通过进行交集组合,从而可以识别出哪些数据是各个本地缓存(或至少两个本地缓存)中都存在的,如果某个数据在多个本地缓存中都存在,则说明这些数据是热点数据,应用实例需要使用到的这些数据的概率较大,故而可以事先将其加载到本地缓存中,实现对新接入节点的预热。从而使得在通过第一本地缓存处理目标应用的第一实例时,需要访问的一些热点数据可以在本地缓存中查询到,提高了目标应用的第一实例的处理效率。
在一个实施例中,第二缓存数据信息中包括第二本地缓存中的数据的第二查询命中信息,第三缓存数据信息中包括第三本地缓存中的数据的第三查询命中信息,步骤208包括:将第二本地缓存中的数据与第三本地缓存中的数据中,满足第一查询条件的数据之间进行交集组合。
查询命中信息是指对数据的查询结果相关的信息,包括查询次数、查询是否命中、查询命中次数、查询命中率等其中的一种或几种。查询次数和查询命中次数的初始值为0。
即第二查询信息是指针对第二本地缓存中的数据的查询结果相关的信息,其包括第二查询次数、第二查询命中次数和第二查询命中率中的一种或多种。第三查询信息是指针对第三本地缓存中的数据的查询结果相关的信息,其包括第三查询次数、第三查询命中次数和第三查询命中率中的一种或多种。
本实施例中,由于本地缓存受限于内存的大小,并不适合将所有的数据都存储到本地缓存中,且应用实例在后续运行过程中也会有新的缓存数据增加,故电子设备可预设对应的第一查询条件,该第一查询条件为用于识别是否允许相应数据是否进行交集组合的条件。对于满足第一查询条件的数据,才检测是否需要对该数据进行交集组合。
具体地,第一查询条件可为查询次数超过预设次数、查询命中率超过预设命中率等其中的一种或几种条件,查询命中率表示查询命中次数相对于查询次数的比率。
在一个实施例中,该查询次数、查询命中率可为预设时间段内的查询次数、查询命中率。该预设时间段可为任意合适的时间段,比如可为最近一个月的时间。电子设备可检测个本地缓存中满足该第一查询条件的数据,从满足第一查询条件的数据集中进行交集组合。
在一个实施例中,第一查询条件包括数据在其本地数据中的查询次数超过第一查询次数阈值、查询命中率超过第一命中率阈值。以第二本地缓存中的数据A为例进行说明,当第二本地缓存中的数据A的第二查询次数超过第一查询次数阈值,且第二本地缓存中的数据A的第二查询命中率也超过第一命中率阈值时,判定第二本地缓存中的数据A满足第一查询条件。
同样地,若该数据A也存在于第三本地缓存中,则针对第三本地缓存中的数据A,当第三本地缓存中的数据A的第三查询次数超过第一查询次数阈值,且第三本地缓存中的数据A的第三查询命中率也超过第一命中率阈值时,判定第三本地缓存中的数据A也满足第一查询条件。
其中,第一查询次数阈值、第一命中率阈值可为预设的任意合适的数值,比如第一查询次数阈值可为10000,20000等任意数值,第一命中率阈值可为50%、60%、80%、90%、95%等。
比如针对该数据A,当其在第二本地缓存中满足第一查询条件,且在第三本地缓存中也满足第一查询条件时,则可以将该数据A也存储到第一本地缓存中。
上述的方法,通过设置查询次数和查询命中率,只有满足了对应的查询次数和查询命中率的数据才进行交集组合,从而筛选出在各个本地缓存中均满足第一查询条件的数据,进而将该数据存储到第一本地缓存中,使得存入新接入节点的本地缓存中的数据是对应应用实例最需要的数据,且可以防止一开始就使得本地缓存中占用过多的内容开销。
在一个实施例中,上述方法还包括:通过软件开发工具包SDK所提供的接口查询第二本地缓存中的数据A是否存在;当存在时,对第二本地缓存中的数据A的第二查询次数加1,对第二本地缓存中的数据A的第二命中次数加1,当不存在时,对第二本地缓存中的数据A的第二查询次数加1,第二本地缓存中的数据A的第二命中次数不变,将最新的第二命中次数与最新的第二查询次数相除,计算出最新的第二查询命中率。
本实施例中,电子设备可通过对应的软件开发工具包SDK所提供的接口来获取各个本地缓存中的缓存数据信息。
以JVM本地缓存为例进行说明,各个节点可配置对应的Java工程作为相应的SDK工程,在该SDK中可创建自定义注解类,并设定本地缓存中的最大数量、刷新时间、过期时间、缓存的key等信息。
其中,可定义一个全局的字典Map,其可用来存储每个本地缓存对应的加载缓存LoadingCache,并定义用来存储缓存字典cacheMap中各个缓存的调用和命中情况,基于此信息可以获得本地缓存中的各数据key的查询信息。
具体的,可通过SDK提供的接口,在LoadingCache中查询对应的缓存数据key在相应本地缓存中是否存在,若存在,则返回,并将该缓存数据的查询次数和查村命中次数都加1,否则,只将该缓存数据的查询次数加1。通过该方法可以累计各个数据在对应本地缓存中的查询次数和查询命中次数,基于该查询次数和查询命中次数计算出对应的查询命中率。
举例来说,存在数据A在第二本地缓存和第三本地缓存中,当在某次查询中,在第二本地缓存中对数据A的查询次数(即第二查询次数)为10000次,其查询命中次数(即第二查询命中次数)为9898次,则其在第二本地缓存中的查询命中率(即第二查询命中率)为98.98%。同样的,若在第三本地缓存中对数据A的查询次数(即第三查询次数)为12500次,其查询命中次数(即第三查询命中次数)为12000次,则其查询命中率(即第三查询命中率)为96%。
在一个实施例中,上述方法还包括:检测第一本地缓存中的数据在第一本地缓存中的第一占用率;当第一占用率低于占用率阈值时,将第二本地缓存中的数据与第三本地缓存中的数据进行数据并集组合;将并集组合后的数据存储至第一本地缓存,并集组合后的数据存在于第二本地缓存或第三本地缓存中。
本实施例中,占用率表示本地缓存中的空间的使用率。比如配置的本地空间有100Gb,而在本地缓存中的数据占用了60Gb,则其占用率为60%。电子设备可以通过SDK所配置的接口获取每个本地缓存的占用率。其中,第一本地缓存的占用率称为第一占用率。当占用率过大,比如超过了100%,则会存在缓存溢出,当占用率较小,则说明其内还有较多的缓存空间可以利用。
进一步地,还预设了各个本地缓存的占用率阈值,该占用率阈值为用于评判本地缓存中的数据的使用率是否过多的阈值,比如可以将该占用率阈值设置为30%、40%或50%等任意合适的数值。
当第一占用率低于该占用率阈值的时,可将的第二本地缓存和第三本地缓存中的数据进行并集组合,将并集组合后的数据存储在第一本地缓存中。与交集组合相反,并集组合中的数据为取第二本地缓存和第三本地缓存中的所有的数据,并集组合后的数据可存在与第二本地缓存中或者存储在于第三本地缓存中。
可选地,可以在第一本地缓存创建的时长超过一定时长之后,在判定其第一占用率是否超过占用率阈值。当长时间未超过占用率阈值,则执行上述的并集组合。
在一个实施例中,电子设备还可以预设第三查询条件,第三查询条件可为用于识别是否允许相应数据进行并集组合的条件。对于满足第三查询条件的数据,才检测是否需要对该数据进行并集组合。电子设备可将第二本地缓存中的数据与第三本地缓存中的数据中,满足第三查询条件的数据之间进行交集组合。
具体地,第三查询条件可为查询次数超过预设次数、查询命中率超过预设命中率等其中的一种或几种条件,查询命中率表示查询命中次数相对于查询次数的比率。
当第二本地缓存中的数据A的第二查询次数超过第四查询次数阈值,且第二本地缓存中的数据A的第二查询命中率也超过第四命中率阈值时,判定第二本地缓存中的数据A满足第三查询条件。其中,第三查询条件可以与第一查询条件相同,或者与第一查询条件不同。即该第四查询次数阈值可与第一查询次数阈值相同或不同,第四查询命中率与第一查询命中率可相同或不同。
本实施例中,通过设置第三查询条件,在第一本地缓存中的数据的占用率不高的情况下,将满足第三查询条件的数据进行并集组合,使得其他本地缓存中达到一定查询条件的数据都可以同步到第一本地缓存中,进一步提到了目标应用的第一实例的处理效率。
在一个实施例中,每个本地缓存包括多个缓存分组,处于上一级缓存分组中的数据的失效时长大于处于下一级缓存分组中的数据的失效时间,每个查询命中信息包括查询次数、命中次数和查询命中率中的至少一种,每个本地缓存包括第一本地缓存、第二本地缓存和第三本地缓存。
本申请中的基于分布式环境下的本地缓存数据处理方法还包括:检测数据B在每个本地缓存中的查询命中信息,当数据B在每个本地缓存中的查询命中信息均满足第二查询条件时,调整数据B在每个本地缓存中的分组。
由于缓存中的数据被查询读取的频率等各不相同,有些数据被查询的频率较高,有些数据被查询的频率交低,故本申请中还对本地缓存进行了分组。其中,每个本地缓存所形成的分组的数量相同,且每个分组中所存储的数据也是一致的。处于不同的缓存分组中的数据的失效时长各不相同。该失效时长表示对应的数据在相应时长范围内未被访问或查询时则会失效,处于失效的数据会移出本地缓存,被移出本地缓存的数据,在下次进行查询时,不会被命中,可将其从数据库中再次移入本地缓存,并移入对应的缓存分组中。
第二查询条件为判定所处某个缓存分组的数据是否需要调整其分组的条件。其中,该分组的调整可为调高分组,或者调低分组。可选地,本地缓存分组的数量可设为N个,处于第i个分组中的数据,其具有比处于第i+1个分组(即相对该第i个分组的下一级分组)中的数据的失效时长更长,比处于第i-1个(即相对该第i个分组的上一级分组)分组中的数据的失效时长更短。N可为大于1的任意合适的正整数。
可选地,与第一查询条件类似,第二查询条件同样可包括涉及到数据的查询次数、查询命中次数和查询命中率等其中的一种或多种。即第二查询条件可为查询次数高于或低于某个次数、查询命中次数也高于或低于某个次数、查询命中率也高于或低于某个命中率等其中的一种或多种。不同的数据分组对应的具体的第二查询条件可以相同或不相同。
以每个分组中的数据的第二查询条件均相同为例,则当检测得到各个本地缓存中的数据满足对应的第二查询条件时,则说明其可以适合分配到其他的缓存分组中,可以调高或降低其缓存分组,从而可以将该数据更好的分配到其他分组中,从而进一步提高数据的使用效率。
由于单个本地缓存中的数据的查询条件可能存在个例的情况,故电子设备可以统计各个本地缓存中的相关数据是否达到第二查询条件,当每个本地缓存中的同一个数据都满足了第二查询条件时,或者超过一定数量的本地缓存中的同一个数据都满足了第二查询条件时,则可以对其进行缓存分组进行调整。其中,该一定数量可以为固定的数值,也可为分布式系统中的所有本地缓存数量的80%等任意合适的比例。该每个本地缓存包括上述的第一本地缓存、第二本地缓存、第三本地缓存等。
在一个实施例中,电子设备可以针对处于本地缓存中可变更缓存分组的数据才进行第二查询条件判断,对于不可变更本地缓存分组的数据,则保持其所处的缓存分组不变。
可以理解地,并非所有的数据都适合进行缓存分组变动,有些数据是被设定了处于默认的缓存分布不变的。故电子设备可以识别对应的数据是否为可变更缓存分组的数据,若是,则进行第二查询条件判断。
在一个实施例中,可针对不同的缓存分组设定的第二查询条件各不相同。可选地,第二查询条件包括上述的查询次数和查询命中率。电子设备预设了各个不同的缓存分组中的数据的查询命中率阈值和查询次数阈值,当超过该对应的范围时,则判定其满足对应的第二查询条件,说明其更适合处于其他缓存分组中。
具体地,以某个数据B处于某个缓存分组为例进行说明。当第二查询条件为查询次数超过第二查询次数阈值、且查询命中率低于第二命中率阈值时,调整数据B在每个本地缓存中的分组,包括:调高数据B在每个本地缓存中的分组。
当第二查询条件为查询次数低于第三查询次数阈值、且查询命中率超过第三命中率阈值时,调整数据B在每个本地缓存中的分组,包括:调低数据B在每个本地缓存中的分组。其中,第三查询次数阈值小于第二查询次数阈值。
由于不同的缓存分组被设置了不同的失效时长,故而相同的数据处于不同的缓存分组中的时候,其对应的查询次数和查询命中率均会有所变动,当处于某个缓存分组的数据B,其查询次数过小,而查询命中率过高,则说明其经常处于该缓存分组中而没有被充分查询、访问或读取,故而可以将其调低至其他缓存分组中,降低其失效时长,防止其在本地缓存中过多的占用内存资源。反之,当数据B在其所处的缓存分组中,查询次数较高,但查询命中率较低,则说明其经常出现在本地缓存分组中访问该数据B时,识别到其超过了分配的失效时长而被移出本地缓存,故而需要适当调高其失效时长,并调高其所处的缓存分组。
具体地,电子设备可以设置N个缓存分组,针对每个节点,其对应的第二查询条件如下表所示。其中,xi、yi即表示对应的查询次数阈值和命中率阈值。比如针对第1组中的数据,该x1即为对应的第三查询次数阈值,y1表示对应的第三命中率阈值;针对第2组中的数据,该x2即为对应的第二查询次数阈值,y2即为对应的第二命中率阈值,该x3即为对应的第三查询次数阈值,y3即为对应的第三命中率阈值;针对第3组中的数据,该x4即为对应的第二查询次数阈值,y4即为对应的第二命中率阈值,该x5即为对应的第三查询次数阈值,y5即为对应的第三命中率阈值。
表1
在不满足该第二查询条件时,则说明其不需要进行缓存分组调整。电子设备可通过SDK所提供的接口,获取各个本地缓存中的数据所处的缓存分组,及其查询次数和查询命中率,基于这些数据来确定对应该数据是否满足与之匹配的第二查询条件,在识别出了某个数据(比如数据B)在所有本地缓存中均满足对应的第二查询条件时,则对其进行本地缓存分组调整,以进一步提高其利用率。
在一个实施例中,如图3所示,提供了另一种基于分布式环境下的本地缓存数据处理方法,该方法包括:
步骤302,为目标应用的第一实例分配第一本地缓存。
可选地,以分布式(含微服务)Java系统为例,本地缓存可为分布式JVM本地缓存,第一本地缓存可为新创立不久的本地缓存,第二本地缓存和第三本地缓存可为系统中已经创立有一段时间的本地缓存。
进一步地,每个本地缓存通过引入SDK配置了本地缓存分组。每个本地缓存中用于存储目标应用的各个实例相关的数据。该数据可包括与应用相关的修改频率远远小于查询频率的数据,也包括JVM允许周期都不会变更的近乎常量的数据。
可选地,可新建一个Java工程作为SDK工程,在该SDK中创建自定义注解类@CaffeineLocalCache,该注解包含属性如下表所示。
表2
可选地,各个本地缓存包括多个缓存分组,处于上一级缓存分组中的数据的失效时长大于处于下一级缓存分组中的数据的失效时长。比如所创建的第一本地缓存的缓存分组有5级。其第一级缓存分组的失效时长为30分钟,第二级缓存分组的失效时长为15分钟,第三级缓存分组的失效时长为10分钟,第四级缓存分组的失效时长为5分钟,第五级缓存分组的失效时长为2分钟。可以理解的,缓存分组的数量以及各个缓存分组对应的失效时长可以根据实际情况进行适当的设定。
针对创建的SDK,定义一个全局的字典Map,用来存储每个缓存分组对应的加载缓存LoadingCache。同时还定义一个Map用来存储cacheMap中各个缓存的调用和命中情况,依据此信息可以获取缓存的命中率情况。
实现CaffeineLocalCacheAdvice对上述定义的注解做处理。在实现时可采用环绕通知@Around(value= "caffeineLocalCache()&&@annotation(localCache)")。在切面中可根据参数和注解先获取要使用的缓存分组,接着根据SPEL表达式获取该次操作对应的缓存key。
在cacheMap中寻找上述的缓存分组,若没有找到,则根据该分组名称(groupName.intern)加锁,防止多个线程同时执行,并实例化该分组对应的LoadingCache。
针对得到的LoadingCache和缓存key,在LoadingCache中查询该key是否存在,若存在,则返回并将该key缓存的命中次数和查询次数都加1。否则,只将查询次数加1。
在完成了上述的定义后,提供几个用于操作cacheMap管理下的LocalCache的接口。该接口包括根据指定的分组和key查询缓存的内容、新增缓存、编辑缓存、清除缓存、清理全部缓存、查询全部缓存等基本接口。
通过所提供的接口,将实例向zookeeper注册,将缓存的命中情况传输到zookeeper该应用实例对应的临时节点下。
步骤304,获取目标应用的第二实例对应的第二本地缓存中的第二缓存数据信息。
步骤306,获取目标应用的第三实例对应的第三本地缓存中的第三缓存数据信息。
可遍历对应caffeineLocalCache对应的服务目录,获取接入zookeeper的各个应用。针对要分析的应用即为目标应用。
可遍历各目标应用下的临时节点,该临时节点为目标应用下的具体实例信息。并通过上述SDK提供的相应接口查看每个实例上各个key的查询次数、命中次数、命中率等。其中,各本地缓存分组中缓存数据信息包括对应的查询次数、命中次数、命中率等查询命中信息。
步骤308,根据第二缓存数据信息与第三缓存数据信息,将第二本地缓存中的数据与第三本地缓存中的数据进行数据交集组合。
可选地,将第二本地缓存中的数据与第三本地缓存中的数据中,满足第一查询条件的数据之间进行交集组合。
以本地缓存中的数据A为例进行说明,以通过软件开发工具包SDK所提供的接口查询对应本地缓存中的数据A是否存在;当存在时,对数据A的查询次数加1,第二命中次数加1,当不存在时,对数据A的查询次数加1,对其命中次数保持不变。根据最新的查询次数和查询命中次数,将最新的命中次数与最新的查询次数相除,计算出最新的查询命中率。基于所计算出来的最新的查询次数和查询命中率来确定对应本地缓存中的数据是否满足第一查询条件。
当数据A的查询次数超过第一查询次数阈值,且数据A的第二查询命中率也超过第一命中率阈值时,判定该本地缓存中的数据A满足第一查询条件。
电子设备可以从各个本地缓存中筛选出满足第一查询条件的数据,并针对这些数据进行交集组合。
步骤310,将交集组合后的数据存储至第一本地缓存。
本实施例中,交集组合后的数据同样存在于第二本地缓存和第三本地缓存中。具体地,可以根据SDK的设定,将对应的数据存储对应的第一本地缓存的缓存分组中。
通过设置第一查询条件来进行数据筛选,从而可以筛选出一些热点数据事先同步到新创建的第一本地缓存之中。这样,在该应用实例运行时,对于部分常用的数据首次使用时就可以直接到第一本地缓存中进行查询,不必针对每个新出现的数据都首先去从数据库中访问,从而提高了对应应用的运行效率。
步骤312,检测第一本地缓存中的数据在第一本地缓存中的第一占用率。
进一步地,当在将交集组合的数据存储到了第一本地缓存中后,可检测第一本地缓存中的空间的使用情况,检测其是否还具有足够的空间来存放其他相关数据。
步骤314,当第一占用率低于占用率阈值时,将第二本地缓存中的数据与第三本地缓存中的数据进行数据并集组合。
当检测到第一本地缓存中的空间的占用率低于预设的占用率阈值时,则可以继续筛选出合适的数据提前存储至第一本地缓存中。
具体地,可将各个本地缓存中的数据进行并集组合,将并集组合后的数据作为待存储到第一本地缓存中的数据。
进一步地,可针对待筛选的用于并集组合的数据设定第三查询条件,当各个本地缓存中的数据满足第三查询条件时,则作为进行并集组合的数据。
与第一查询条件类似,第三查询条件同样可包括对应的查询次数和查询命中率。当某个数据在其本地缓存中的查询次数超过第四查询次数阈值,查询命中率超过第四命中率阈值时,则可以判定其满足第三查询条件。
步骤316,将并集组合后的数据存储至第一本地缓存。
本实施例中,并集组合后的数据存在于第二本地缓存或第三本地缓存中。
当第一本地缓存中的剩余存储空间足够时,通过进一步将其它本地缓存中,满足查询次数和查询命中率的数据进行并集组合,使存储至第一本地缓存中的数据也是经常被使用的数据,从而可以进一步提高第一本地缓存中的空间的利用率。
步骤318,检测数据B在每个本地缓存中的查询命中信息,当数据B在每个本地缓存中的查询命中信息均满足第二查询条件时,调整数据B在每个本地缓存中的分组。
其中,每个本地缓存包括多个缓存分组,处于上一级缓存分组中的数据的失效时长大于处于下一级缓存分组中的数据的失效时长,每个查询命中信息包括查询次数、命中次数和查询命中率中的至少一种,每个本地缓存包括第一本地缓存、第二本地缓存和第三本地缓存;
具体的,当第二查询条件为查询次数超过第二查询次数阈值、且查询命中率低于第二命中率阈值时,调高数据B在每个本地缓存中的分组。
当第二查询条件为查询次数低于第三查询次数阈值、且查询命中率超过第三命中率阈值时,调低数据B在每个本地缓存中的分组。
通过进一步设置缓存分组,并结合整个本地缓存中的数据来进行查询信息分析,使得可以灵活地调整各个本地缓存中的数据的失效时长,从而进一步优化各个数据的使用效率。
本申请中的方法,可以整合对接定时任务系统,可实现对各个实例缓存的定时操作,比如可在某些活动是开启的场景下使用。
在一个实施例中,如图4所示,提供了一种基于分布式环境下的本地缓存数据处理装置,装置包括:
本地缓存配置模块402,用于为目标应用的第一实例分配第一本地缓存;
缓存数据信息查询模块404,用于获取目标应用的第二实例对应的第二本地缓存中的第二缓存数据信息;获取目标应用的第三实例对应的第三本地缓存中的第三缓存数据信息;
缓存数据同步模块406,用于根据第二缓存数据信息与第三缓存数据信息,将第二本地缓存中的数据与第三本地缓存中的数据进行数据交集组合;将交集组合后的数据存储至第一本地缓存,交集组合后的数据同样存在于第二本地缓存和第三本地缓存中。
在一个实施例中,缓存数据同步模块406还用于将第二本地缓存中的数据与第三本地缓存中的数据中,满足第一查询条件的数据之间进行交集组合。
在一个实施例中,缓存数据信息查询模块404还用于当第二本地缓存中的数据A的第二查询次数超过第一查询次数阈值,且第二本地缓存中的数据A的第二查询命中率也超过第一命中率阈值时,判定第二本地缓存中的数据A满足第一查询条件。
在一个实施例中,缓存数据信息查询模块404还用于通过软件开发工具包SDK所提供的接口查询第二本地缓存中的数据A是否存在;当存在时,对第二本地缓存中的数据A的第二查询次数加1,对第二本地缓存中的数据A的第二命中次数加1,当不存在时,对第二本地缓存中的数据A的第二查询次数加1,第二本地缓存中的数据A的第二命中次数不变,将最新的第二命中次数与最新的第二查询次数相除,计算出最新的第二查询命中率。
在一个实施例中,缓存数据信息查询模块404还用于检测第一本地缓存中的数据在第一本地缓存中的第一占用率。
缓存数据同步模块406还用于当第一占用率低于占用率阈值时,将第二本地缓存中的数据与第三本地缓存中的数据进行数据并集组合;将并集组合后的数据存储至第一本地缓存,并集组合后的数据存在于第二本地缓存或第三本地缓存中。
在一个实施例中,缓存数据信息查询模块404还用于检测数据B在每个本地缓存中的查询命中信息。
缓存数据同步模块406还用于当数据B在每个本地缓存中的查询命中信息均满足第二查询条件时,调整数据B在每个本地缓存中的分组。
在一个实施例中,缓存数据同步模块406还用于当第二查询条件为查询次数超过第二查询次数阈值、且查询命中率低于第二命中率阈值时,调高数据B在每个本地缓存中的分组;当第二查询条件为查询次数低于第三查询次数阈值、且查询命中率超过第三命中率阈值时,调低数据B在每个本地缓存中的分组。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述各方法实施例中的步骤。
在一个实施例中,还提供了一种电子设备,包括一个或多个处理器;存储器,存储器中存储有一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述各方法实施例中的步骤。
在一个实施例中,如图5所示,其示出了用于实现本申请的实施例的电子设备的结构示意图。电子设备500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。CPU501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,包括承载指令的在计算机可读介质,在这样的实施例中,该指令可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该指令被中央处理单元(CPU)501执行时,执行本申请中描述的各个方法步骤。
尽管已经描述了示例实施例,但是对于本领域技术人员来说显而易见的是,在不脱离本申请构思的精神和范围的情况下,可以进行各种改变和修改。因此,应当理解,上述示例实施例不是限制性的,而是说明性的。
Claims (10)
1.一种基于分布式环境下的本地缓存数据处理方法,其特征在于,所述方法包括:
为目标应用的第一实例分配第一本地缓存;
获取目标应用的第二实例对应的第二本地缓存中的第二缓存数据信息;
获取目标应用的第三实例对应的第三本地缓存中的第三缓存数据信息;
根据所述第二缓存数据信息与所述第三缓存数据信息,将所述第二本地缓存中的数据与所述第三本地缓存中的数据进行数据交集组合;
将交集组合后的数据存储至所述第一本地缓存,所述交集组合后的数据同样存在于所述第二本地缓存和所述第三本地缓存中。
2.根据权利要求1所述的方法,其特征在于,所述第二缓存数据信息中包括所述第二本地缓存中的数据的第二查询命中信息,所述第三缓存数据信息中包括所述第三本地缓存中的数据的第三查询命中信息;
所述将所述第二本地缓存中的数据与所述第三本地缓存中的数据进行数据交集组合,包括:
所述将所述第二本地缓存中的数据与所述第三本地缓存中的数据中,满足第一查询条件的数据之间进行交集组合。
3.根据权利要求2所述的方法,其特征在于,所述第二查询命中信息包括第二查询次数、第二命中次数和第二查询命中率中的至少一种,所述方法还包括:
当所述第二本地缓存中的数据A的所述第二查询次数超过第一查询次数阈值,且所述第二本地缓存中的数据A的所述第二查询命中率也超过第一命中率阈值时;
判定所述第二本地缓存中的数据A满足所述第一查询条件。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
通过软件开发工具包SDK所提供的接口查询所述第二本地缓存中的数据A是否存在;
当存在时,对所述第二本地缓存中的数据A的第二查询次数加1,对所述第二本地缓存中的数据A的第二命中次数加1;
当不存在时,对所述第二本地缓存中的数据A的第二查询次数加1,所述第二本地缓存中的数据A的第二命中次数不变;
将最新的第二命中次数与最新的第二查询次数相除,计算出最新的第二查询命中率。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测所述第一本地缓存中的数据在所述第一本地缓存中的第一占用率;
当所述第一占用率低于占用率阈值时,将所述第二本地缓存中的数据与所述第三本地缓存中的数据进行数据并集组合;
将并集组合后的数据存储至所述第一本地缓存,所述并集组合后的数据存在于所述第二本地缓存或所述第三本地缓存中。
6.根据权利要求1所述的方法,其特征在于,每个本地缓存包括多个缓存分组,处于上一级缓存分组中的数据的失效时长大于处于下一级缓存分组中的数据的失效时长,每个查询命中信息包括查询次数、命中次数和查询命中率中的至少一种,所述每个本地缓存包括所述第一本地缓存、所述第二本地缓存和所述第三本地缓存;
所述方法还包括:
检测数据B在所述每个本地缓存中的查询命中信息,当所述数据B在所述每个本地缓存中的查询命中信息均满足第二查询条件时,调整所述数据B在所述每个所述本地缓存中的分组。
7.根据权利要求6所述的方法,其特征在于,所述当所述数据B在所述每个本地缓存中的查询命中信息均满足第二查询条件时,调整所述数据B在所述每个所述本地缓存中的分组包括:
当所述第二查询条件为查询次数超过第二查询次数阈值、且查询命中率低于第二命中率阈值时,调高所述数据B在所述每个所述本地缓存中的分组;
当所述第二查询条件为查询次数低于第三查询次数阈值、且查询命中率超过第三命中率阈值时,调低所述数据B在所述每个所述本地缓存中的分组;
所述第三查询次数阈值小于所述第二查询次数阈值。
8.一种基于分布式环境下的本地缓存数据处理装置,其特征在于,所述装置包括:
本地缓存配置模块,用于为目标应用的第一实例分配第一本地缓存;
缓存数据信息查询模块,用于获取目标应用的第二实例对应的第二本地缓存中的第二缓存数据信息;获取目标应用的第三实例对应的第三本地缓存中的第三缓存数据信息;
缓存数据同步模块,用于根据所述第二缓存数据信息与所述第三缓存数据信息,将所述第二本地缓存中的数据与所述第三本地缓存中的数据进行数据交集组合;将交集组合后的数据存储至所述第一本地缓存,所述交集组合后的数据同样存在于所述第二本地缓存和所述第三本地缓存中。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有可执行指令,该指令被处理器执行时使处理器执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310093517.9A CN115840770B (zh) | 2023-02-10 | 2023-02-10 | 基于分布式环境下的本地缓存数据处理方法和相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310093517.9A CN115840770B (zh) | 2023-02-10 | 2023-02-10 | 基于分布式环境下的本地缓存数据处理方法和相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115840770A true CN115840770A (zh) | 2023-03-24 |
CN115840770B CN115840770B (zh) | 2023-05-05 |
Family
ID=85579594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310093517.9A Active CN115840770B (zh) | 2023-02-10 | 2023-02-10 | 基于分布式环境下的本地缓存数据处理方法和相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115840770B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200310658A1 (en) * | 2019-03-28 | 2020-10-01 | Nutanix, Inc. | Machine learning for local caching of remote data in a clustered computing environment |
CN112506973A (zh) * | 2020-12-14 | 2021-03-16 | 中国银联股份有限公司 | 一种存储数据管理的方法及装置 |
CN113760982A (zh) * | 2021-01-18 | 2021-12-07 | 西安京迅递供应链科技有限公司 | 一种数据处理方法和装置 |
CN114265927A (zh) * | 2021-12-21 | 2022-04-01 | 中国电信股份有限公司 | 数据查询方法及装置、存储介质及电子装置 |
CN115129752A (zh) * | 2022-06-28 | 2022-09-30 | 广州鑫景信息科技服务有限公司 | 数据缓存方法、数据处理方法、系统、设备及存储介质 |
-
2023
- 2023-02-10 CN CN202310093517.9A patent/CN115840770B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200310658A1 (en) * | 2019-03-28 | 2020-10-01 | Nutanix, Inc. | Machine learning for local caching of remote data in a clustered computing environment |
CN112506973A (zh) * | 2020-12-14 | 2021-03-16 | 中国银联股份有限公司 | 一种存储数据管理的方法及装置 |
CN113760982A (zh) * | 2021-01-18 | 2021-12-07 | 西安京迅递供应链科技有限公司 | 一种数据处理方法和装置 |
CN114265927A (zh) * | 2021-12-21 | 2022-04-01 | 中国电信股份有限公司 | 数据查询方法及装置、存储介质及电子装置 |
CN115129752A (zh) * | 2022-06-28 | 2022-09-30 | 广州鑫景信息科技服务有限公司 | 数据缓存方法、数据处理方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115840770B (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110109953B (zh) | 一种数据查询方法、装置及设备 | |
CN109299144B (zh) | 一种数据处理方法、装置、系统及应用服务器 | |
US20110119251A1 (en) | System and Method for SQL Query Load Balancing | |
EP3058481B1 (en) | Acceleration based on cached flows | |
CN109656956B (zh) | 一种实现业务系统数据集中式缓存的方法及装置 | |
CN112202837B (zh) | 一种基于数据集与节点缓存的调度方法和装置 | |
CN105550338A (zh) | 一种基于HTML5应用缓存的移动Web缓存优化方法 | |
CN111859132A (zh) | 一种数据处理方法、装置及智能设备、存储介质 | |
CN108512768B (zh) | 一种访问量的控制方法及装置 | |
US20210406086A1 (en) | Auto-sizing for stream processing applications | |
CN112130996A (zh) | 数据监控控制系统、方法、装置、电子设备和存储介质 | |
CN108471385B (zh) | 一种针对分布式系统的流量控制方法及装置 | |
CN109446225B (zh) | 数据缓存方法、装置、计算机设备及存储介质 | |
CN110311963B (zh) | 消息推送方法、装置、计算机设备及计算机可读存储介质 | |
CN111382206A (zh) | 一种数据存储方法及装置 | |
US8732323B2 (en) | Recording medium storing transaction model generation support program, transaction model generation support computer, and transaction model generation support method | |
CN115840770A (zh) | 基于分布式环境下的本地缓存数据处理方法和相关设备 | |
CN111522870A (zh) | 数据库访问方法、中间件和可读存储介质 | |
WO2022152086A1 (zh) | 数据缓存方法、装置、设备及计算机可读存储介质 | |
CN113138943B (zh) | 一种处理请求的方法和装置 | |
CN112671569B (zh) | 一种基于配置分级的网络管理方法和系统 | |
CN111966936B (zh) | 一种页面预加载的方法和设备 | |
CN117194185A (zh) | 数据监测方法及电子设备 | |
US20240089339A1 (en) | Caching across multiple cloud environments | |
CN110209645A (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 |