CN112506973A - 一种存储数据管理的方法及装置 - Google Patents
一种存储数据管理的方法及装置 Download PDFInfo
- Publication number
- CN112506973A CN112506973A CN202011474655.4A CN202011474655A CN112506973A CN 112506973 A CN112506973 A CN 112506973A CN 202011474655 A CN202011474655 A CN 202011474655A CN 112506973 A CN112506973 A CN 112506973A
- Authority
- CN
- China
- Prior art keywords
- data
- query
- identifier
- cache
- data corresponding
- 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
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000012545 processing Methods 0.000 claims description 26
- 238000004140 cleaning Methods 0.000 claims description 25
- 238000003860 storage Methods 0.000 claims description 21
- 238000013500 data storage Methods 0.000 claims description 14
- 238000013523 data management Methods 0.000 claims description 10
- 230000000875 corresponding effect Effects 0.000 description 94
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000002035 prolonged effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 230000000149 penetrating effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种存储数据管理的方法及装置,该方法包括分布式热点缓存节点获取前端发送的查询信息,查询信息包括查询数据的标识,根据查询数据的标识,确定本地缓存中是否存在查询数据的标识对应的数据,若存在,则向前端反馈查询结果,并根据查询数据的标识对应的数据的生命周期,对查询数据的标识对应的数据进行管理,其中,本地缓存中的数据的生命周期由数据的历史查询次数和历史更新次数确定的。通过对本地缓存中的数据设置动态的生命周期,可以弹性的维护缓存中的热点数据,在降低系统资源消耗的同时提高查询的整体命中率。
Description
技术领域
本发明涉及存储数据管理技术领域,尤其涉及一种存储数据管理的方法及装置。
背景技术
伴随着业务系统的快速发展,联机系统中会涌入大量的并发查询请求,给数据库、磁盘等系统资源带来很大压力。如果所有查询均到达数据库层进行操作,无疑会大大提升程序的响应时间,导致查询效率低下。为提升高并发场景下的查询效率,常见的方法是在系统中建立缓存机制。
现有缓存方案中,常规设计是对所有缓存节点设置单一的缓存过期时间,即系统当前时间之后多少秒(或分钟等)后缓存数据失效。缓存节点在缓存数据达到过期时间时即将该缓存数据进行清理,此时如出现后端数据系统查询异常等情况时,大量缓存数据会逐渐被缓存节点清理,将导致前端应用逐渐全面失效。
发明内容
本发明实施例提供一种存储数据管理的方法及装置,用以保证数据查询的高可用性与高查询效率,避免查询请求穿透至底层存储层。
第一方面,本发明实施例提供一种存储数据管理的方法,包括:
分布式热点缓存节点获取前端发送的查询信息,所述查询信息包括查询数据的标识;
所述分布式热点缓存节点根据所述查询数据的标识,确定本地缓存中是否存在所述查询数据的标识对应的数据;
若存在,则所述分布式热点缓存节点向所述前端反馈查询结果,并根据所述查询数据的标识对应的数据的生命周期,对所述查询数据的标识对应的数据进行管理;
其中,所述本地缓存中的数据的生命周期由数据的历史查询次数和历史更新次数确定的。
上述技术方案中,通过对本地缓存中的数据设置动态的生命周期,可以弹性的维护缓存中的热点数据,在降低系统资源消耗的同时提高查询的整体命中率。
可选的,所述方法还包括:
所述分布式热点缓存节点在确定所述本地缓存中不存在所述查询数据的标识对应的数据时,向与底层数据存储系统通信的全量数据缓存系统发送所述查询数据的标识,以使所述全量数据缓存系统根据所述查询数据的标识查询对应的数据;
所述分布式热点缓存节点接收所述全量数据缓存系统的查询结果;
若所述全量数据缓存系统的查询结果为所述查询数据的标识对应的数据,则所述分布式热点缓存节点向所述前端反馈所述全量数据缓存系统的查询结果,并根据所述查询数据的标识对应的数据的生命周期,对所述查询数据的标识对应的数据进行管理;
若所述全量数据缓存系统的查询结果为未查询到,则所述分布式热点缓存节点向所述前端反馈数据不存在的查询结果,并对所述查询数据的标识进行管理。
可选的,所述分布式热点缓存节点对所述查询数据的标识进行管理,包括:
所述分布式热点缓存节点在所述本地缓存中将所述查询数据的标识进行存储,并设置状态为数据不存在以及查询次数加1。
可选的,所述分布式热点缓存节点根据所述查询数据的标识对应的数据的生命周期,对所述查询数据的标识对应的数据进行管理,包括:
若所述查询数据的标识对应的数据的当前查询时间未超过所述查询数据的标识对应的数据的生命周期中的过期时间点,则所述分布式热点缓存节点将所述查询数据的标识对应的数据的查询次数加1,不对所述查询数据的标识对应的数据执行更新操作;
若所述查询数据的标识对应的数据的当前查询时间超过所述查询数据的标识对应的数据的生命周期中的过期时间点且未超过所述查询数据的标识对应的数据的生命周期中的清理时间点,则所述分布式热点缓存节点将所述查询数据的标识对应的数据的查询次数加1,对所述查询数据的标识对应的数据执行更新操作。
可选的,所述分布式热点缓存节点对所述查询数据的标识对应的数据执行更新操作,包括:
所述分布式热点缓存节点根据所述查询数据的标识查询全量数据缓存系统;
若查询到所述查询数据的标识对应的数据,则所述分布式热点缓存节点将查询到的所述查询数据的标识对应的数据更新所述本地缓存,并将所述查询数据的标识对应的数据的生命周期重置;
若从所述全量数据缓存系统查询失败,则所述分布式热点缓存节点将所述本地缓存中所述查询数据的标识对应的数据的生命周期重置。
可选的,所述方法还包括:
所述分布式热点缓存节点定期清理所述本地缓存中生命周期超过清理时间点的数据。
可选的,所述分布式热点缓存节点由数据的历史查询次数和历史更新次数确定所述本地缓存中的数据的生命周期,包括:
所述分布式热点缓存节点根据数据的基础更新时间、历史更新次数和在当前分布式热点缓存节点上的历史查询次数,确定所述本地缓存中的数据的生命周期中的过期时间点;
所述分布式热点缓存节点根据数据的基础更新时间、数据的各生命周期的历史查询次数和在当前分布式热点缓存节点上的历史查询次数,确定所述本地缓存中的数据的生命周期中的清理时间点。
第二方面,本发明实施例提供一种存储数据管理的装置,包括:
获取单元,用于获取前端发送的查询信息,所述查询信息包括查询数据的标识;
处理单元,用于根据所述查询数据的标识,确定本地缓存中是否存在所述查询数据的标识对应的数据;若存在,则向所述前端反馈查询结果,并根据所述查询数据的标识对应的数据的生命周期,对所述查询数据的标识对应的数据进行管理;其中,所述本地缓存中的数据的生命周期由数据的历史查询次数和历史更新次数确定的。
可选的,所述处理单元还用于:
在确定所述本地缓存中不存在所述查询数据的标识对应的数据时,向与底层数据存储系统通信的全量数据缓存系统发送所述查询数据的标识,以使所述全量数据缓存系统根据所述查询数据的标识查询对应的数据;
接收所述全量数据缓存系统的查询结果;
若所述全量数据缓存系统的查询结果为所述查询数据的标识对应的数据,则向所述前端反馈所述全量数据缓存系统的查询结果,并根据所述查询数据的标识对应的数据的生命周期,对所述查询数据的标识对应的数据进行管理;
若所述全量数据缓存系统的查询结果为未查询到,则向所述前端反馈数据不存在的查询结果,并对所述查询数据的标识进行管理。
可选的,所述处理单元具体用于:
在所述本地缓存中将所述查询数据的标识进行存储,并设置状态为数据不存在以及查询次数加1。
可选的,所述处理单元具体用于:
若所述查询数据的标识对应的数据的当前查询时间未超过所述查询数据的标识对应的数据的生命周期中的过期时间点,则将所述查询数据的标识对应的数据的查询次数加1,不对所述查询数据的标识对应的数据执行更新操作;
若所述查询数据的标识对应的数据的当前查询时间超过所述查询数据的标识对应的数据的生命周期中的过期时间点且未超过所述查询数据的标识对应的数据的生命周期中的清理时间点,则将所述查询数据的标识对应的数据的查询次数加1,对所述查询数据的标识对应的数据执行更新操作。
可选的,所述处理单元具体用于:
根据所述查询数据的标识查询全量数据缓存系统;
若查询到所述查询数据的标识对应的数据,则将查询到的所述查询数据的标识对应的数据更新所述本地缓存,并将所述查询数据的标识对应的数据的生命周期重置;
若从所述全量数据缓存系统查询失败,则将所述本地缓存中所述查询数据的标识对应的数据的生命周期重置。
可选的,所述处理单元还用于:
定期清理所述本地缓存中生命周期超过清理时间点的数据。
可选的,所述处理单元具体用于:
根据数据的基础更新时间、历史更新次数和在当前分布式热点缓存节点上的历史查询次数,确定所述本地缓存中的数据的生命周期中的过期时间点;
根据数据的基础更新时间、数据的各生命周期的历史查询次数和在当前分布式热点缓存节点上的历史查询次数,确定所述本地缓存中的数据的生命周期中的清理时间点。
第三方面,本发明实施例还提供一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述存储数据管理的方法。
第四方面,本发明实施例还提供一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述存储数据管理的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种系统架构的示意图;
图2为本发明实施例提供的一种存储数据管理的方法的流程示意图;
图3为本发明实施例提供的一种数据生命周期的示意图;
图4为本发明实施例提供的一种存储数据管理的装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种系统架构。如图1所示,该系统架构可以为包括多个分布式热点缓存节点100、全量数据缓存系统200和底层数据存储系统300。多个分布式热点缓存节点100分别与全量数据缓存系统200进行通信,全量数据缓存系统200与底层数据存储系统300进行通信。
其中,分布式热点缓存节点100为系统架构的边缘查询节点,在具体实现过程中,可以作为业务服务的一部分进行嵌入式开发,由业务服务进程进行热点缓存信息的维护。主要是可以将热点数据缓存至本地缓存中,在接收到查询服务时,可以在本地缓存中获得热点数据而无需进行网络通信,可对外提供高效率的查询服务,并避免大量查询请求穿透至下层系统造成压力。该分布式热点缓存节点100可使用LRU(Least Recently Used,最近最少使用)、LFU(Least Frequently Used,最近不经常使用)、LRFU(Least Recently/Frequently Used,最近最少/不经常使用)等淘汰算法对热点数据进行淘汰管理以控制本地缓存使用,本发明实施例对使用的淘汰算法不进行限制。
全量数据缓存系统200可以使用Redis等k-v数据库构成,本发明实施例中该全量数据缓存系统200可以实时将底层数据存储系统300中的全量数据缓存至全量数据缓存系统200的本地缓存中,向分布式热点缓存节点100提供数据查询功能。
底层数据存储系统300使用mysql等数据库构成,用于数据的存储与维护,数据库类型不进行限制。
需要说明的是,上述图1所示的结构仅是一种示例,本发明实施例对此不做限定。
基于上述描述,图2详细的示出了本发明实施例提供的一种存储数据管理的方法的流程,该流程可以由存储数据管理的装置执行,该装置可以是上述分布式热点缓存节点,也可以位于分布式热点缓存节点内。
如图2所示,该流程具体包括:
步骤201,分布式热点缓存节点获取前端发送的查询信息。
在本发明实施例中,查询信息可以包括查询数据的标识,主要是通过标识查询到对应的数据。
步骤202,所述分布式热点缓存节点根据所述查询数据的标识,确定本地缓存中是否存在所述查询数据的标识对应的数据,若存在,则向所述前端反馈查询结果。
若本地缓存中存在该查询数据的标识对应的数据,即可以查询到,就可以向前端反馈查询结果,查询结果中包括该查询数据的标识对应的数据。
步骤203,根据所述查询数据的标识对应的数据的生命周期,对所述查询数据的标识对应的数据进行管理。
本地缓存中的数据的生命周期由数据的历史查询次数和历史更新次数确定的,具体的,可以根据数据的基础更新时间、历史更新次数和在当前分布式热点缓存节点上的历史查询次数,确定本地缓存中的数据的生命周期中的过期时间点。根据数据的基础更新时间、数据的各生命周期的历史查询次数和在当前分布式热点缓存节点上的历史查询次数,确定本地缓存中的数据的生命周期中的清理时间点。
如图3所示,数据的生命周期可以包括插入时间点、过期时间点和清理时间点。
过期时间点可影响本地缓存中热点数据的更新频率。当一个热点数据无需频繁更新,可将其过期时间设置为较长时间,使该热点数据可在缓存中进行更长时间的本地查询而不会触发更新,从而提高命中率、并降低对全量数据缓存系统的查询频率。如延长清理时间,则可以使已过期的热点数据在缓存中继续存活(清理时间点-超时时间点)时间间隔,在此期间如发生全量数据缓存系统访问异常等情况,热节点会继续使用已过期但未清理的本地缓存中的热点数据,并主动延长本地缓存中热点数据的生命周期。通过本发明实施例,可有效提高热点缓存系统的热点数据的高可用性,在后端系统异常时可保证绝大多数热点数据的持续查询。
全量数据缓存系统在将底层存储中的数据信息实时存储至内存中时,会同时记录每个数据信息的最后更新/新增时间。同时,在上层分布式热点缓存节点出现对全量数据缓存系统的查询请求时,如命中全量数据缓存系统内的数据,则会对该数据的查询次数进行累计。优选地,可以通过redis的内嵌式lua脚本实现次数累计功能。
在分布式热点缓存节点向全量数据缓存系统查询数据信息时,全量数据缓存系统同时将该数据记录的最后更新/新增时间T、分布式热点缓存系统查询次数C分别作为一个字段并入原始数据信息返回。
如上文所述,分布式热点缓存节点在远程调用全量数据缓存系统查询某数据信息时,可同时获得该数据信息的最后更新时间T最后更新时间、与累计查询次数C。同时,分布式热点缓存节点会记录该数据信息在本节点上一生命周期内发生的外部查询次数N。每次出现热点数据的调用时,根据以上信息决定该数据信息的过期时间点与清理时间点,判断公式如下:
T过期时间点=T基础更新时间+F1(T当前时间-T最后更新时间)+F2(N) (1)
T清理时间点=T基础更新时间+F3(C/(T当前时间-T最后更新时间))+F2(N) (2)
其中,F1(T当前时间-T最后更新时间)表示该数据的版本更新情况,值越大则版本最近越少更新;F2(N)表示该数据在当前分布式热点缓存节点上的最近查询频率,值越大则最近查询频率越高;F3(C/(T当前时间-T最后更新时间))表示该数据的历史周期查询频率,值越大则历史周期查询频率越高。需要注意的是,历史周期查询频率仅表示在分布式热点缓存节点的生命周期内是否存在持续查询并触发分布式热点缓存节点到全量数据缓存系统的查询频率,不表示外系统客户端的实际查询频率。
如上设计,在本发明实施例中,热点缓存节点中数据信息的过期时间点的设置与该数据近期的查询频率成正相关,近期查询频率越高,则其过期时间点设置越长,即其在热点缓存节点中可提供更长时间的有效查询,而无需查询全量缓存系统进行更新。同时,更新时间也与版本更新情况有关,当该数据在此之前长时间未出现数据版本修改时,其在热点缓存中也可保持更长时间的有效查询,而无需频繁进行过期-更新操作;而当该节点的上次更新时间距离当前时间较近,即近期发生过数据修改,则减小其更新时间,以将后续可能继续进行的数据修改更快地更新至热点缓存中。
热点缓存中数据信息的清理时间点的设置不仅与该数据近期查询频率成正相关,也与该数据的历史查询频率成正相关,当该缓存节点在历史及近期的查询频率越高,则将其重要性视作更大,延长其有效时间可以保证该数据即使在后端系统异常时,也可在缓存中存活更长时间,而不会触发超时清理机制,可有效提升热点缓存系统的高可用性,保证系统在后端异常时整体仍可向前提供重要信息的查询功能。
特别地,本发明实施例中提出该类型缓存系统的方案设计,不对具体使用的函数、参数进行限制。在不同业务设计、资源概况下,对于过期时间、清理时间的具体设置策略需进行针对性调整,但均在本发明实施例的设计思路之中。
在依据查询数据的标识对应的数据的生命周期对查询数据的标识对应的数据进行管理时,主要分下面三种情况:
第一种:
若查询数据的标识对应的数据的当前查询时间未超过查询数据的标识对应的数据的生命周期中的过期时间点,则将查询数据的标识对应的数据的查询次数加1,不对查询数据的标识对应的数据执行更新操作。
第二种:
若查询数据的标识对应的数据的当前查询时间超过查询数据的标识对应的数据的生命周期中的过期时间点且未超过查询数据的标识对应的数据的生命周期中的清理时间点,则将查询数据的标识对应的数据的查询次数加1,对查询数据的标识对应的数据执行更新操作。
其中,进行更新操作时,可以根据查询数据的标识查询全量数据缓存系统,若查询到查询数据的标识对应的数据,则分布式热点缓存节点将查询到的查询数据的标识对应的数据更新本地缓存,并将查询数据的标识对应的数据的生命周期重置。若从全量数据缓存系统查询失败,则分布式热点缓存节点将本地缓存中查询数据的标识对应的数据的生命周期重置。其中,查询失败是指全量数据缓存系统出现系统异常、查询超时等未获得查询结果的情况。
此外,分布式热点缓存节点还可以对本地缓存中已缓存的数据进行清理,具体是定期清理本地缓存中生命周期超过清理时间点的数据。该定期的时间可以依据经验设置,例如1s、2s等。
具体的,如果前端查询时在分布式热点缓存节点中命中已缓存的数据,此时该数据可能处于以上生命周期的其中两个时间点之间位置,缓存处理逻辑如下:
(1)将该数据的查询统计次数加1;
(2)如该数据的生命周期未达到过期时间点时,查询时直接返回缓存内该数据,不会触发缓存更新等操作;
(3)如该数据的生命周期超过过期时间点而未到清理时间点,在查询该数据时,首先返回缓存内的现有旧数据并将该数据设置为更新态。获得更新态的线程继续查询全量数据缓存系统,查询成功时使用查询获得的最新数据对该数据进行更新;其他未获得更新态的线程在此期间如收到查询该数据的请求,则直接返回缓存内的现有该数据;
如果更新态线程在查询全量数据缓存系统时失败,则将该数据的生命周期置为最新状态,以使该数据可在缓存中继续保留,不会被超时清理;
(4)在该数据的生命周期达到清理时间后,缓存对超时的该数据进行清理。
分布式热点缓存节点在确定本地缓存中不存在查询数据的标识对应的数据时,向与底层数据存储系统通信的全量数据缓存系统发送查询数据的标识。分布式热点缓存节点接收所述全量数据缓存系统的查询结果,若全量数据缓存系统的查询结果为查询数据的标识对应的数据,则分布式热点缓存节点向前端反馈全量数据缓存系统的查询结果,并根据查询数据的标识对应的数据的生命周期,对查询数据的标识对应的数据进行管理。若全量数据缓存系统的查询结果为未查询到,则分布式热点缓存节点向前端反馈数据不存在的查询结果,并对查询数据的标识进行管理。
也就是说,在查询失败时,则本地缓存中插入该数据不存在的信息(即分布式热点缓存节点中存储“非数据”),将该数据的查询统计次数加1,并向前端返回数据不存在应答。
在本发明实施例中,全量数据缓存系统属于一级缓存,分布式热点缓存节点属于二级缓存。当所查询信息在二级缓存中不存在时,查询请求会向下穿透查询至一级缓存;如一级缓存查询无此信息,则返回查询失败,不会继续穿透至底层数据存储系统。
本发明实施例提供了一种高并发、高可用、低系统资源消耗的多级缓存系统。该系统使用过期时间+清理时间的双超时机制,在提高系统高可用性的同时,可及时将后端最新数据修改情况更新至本地热点缓存内。同时,超时时间与清理时间的长度设置可根据节点近期及历史查询频率、历史更新时间等信息决定,以提高查询效率、并节约缓存空间。
本发明实施例可以使较少更新且较多查询的数据可以在缓存内保留更长时间,提高缓存的命中效果。对于较近更新或较少查询的数据信息,使其在热点缓存中的生存时间较短,即可保证数据的时效性,发生缓存“雪崩”的风险也相对较小。
在本发明实施例中,分布式热点缓存节点获取前端发送的查询信息,查询信息包括查询数据的标识,根据查询数据的标识,确定本地缓存中是否存在查询数据的标识对应的数据,若存在,则向前端反馈查询结果,并根据查询数据的标识对应的数据的生命周期,对查询数据的标识对应的数据进行管理,其中,本地缓存中的数据的生命周期由数据的历史查询次数和历史更新次数确定的。通过对本地缓存中的数据设置动态的生命周期,可以弹性的维护缓存中的热点数据,在降低系统资源消耗的同时提高查询的整体命中率。
基于相同的技术构思,图4示例性的示出了本发明实施例提供的一种存储数据管理的装置的结构,该装置可以执行存储数据管理的流程。
如图4所示,该装置具体包括:
获取单元401,用于获取前端发送的查询信息,所述查询信息包括查询数据的标识;
处理单元402,用于根据所述查询数据的标识,确定本地缓存中是否存在所述查询数据的标识对应的数据;若存在,则向所述前端反馈查询结果,并根据所述查询数据的标识对应的数据的生命周期,对所述查询数据的标识对应的数据进行管理;其中,所述本地缓存中的数据的生命周期由数据的历史查询次数和历史更新次数确定的。
可选的,所述处理单元402还用于:
在确定所述本地缓存中不存在所述查询数据的标识对应的数据时,向与底层数据存储系统通信的全量数据缓存系统发送所述查询数据的标识,以使所述全量数据缓存系统根据所述查询数据的标识查询对应的数据;
接收所述全量数据缓存系统的查询结果;
若所述全量数据缓存系统的查询结果为所述查询数据的标识对应的数据,则向所述前端反馈所述全量数据缓存系统的查询结果,并根据所述查询数据的标识对应的数据的生命周期,对所述查询数据的标识对应的数据进行管理;
若所述全量数据缓存系统的查询结果为未查询到,则向所述前端反馈数据不存在的查询结果,并对所述查询数据的标识进行管理。
可选的,所述处理单元402具体用于:
在所述本地缓存中将所述查询数据的标识进行存储,并设置状态为数据不存在以及查询次数加1。
可选的,所述处理单元402具体用于:
若所述查询数据的标识对应的数据的当前查询时间未超过所述查询数据的标识对应的数据的生命周期中的过期时间点,则将所述查询数据的标识对应的数据的查询次数加1,不对所述查询数据的标识对应的数据执行更新操作;
若所述查询数据的标识对应的数据的当前查询时间超过所述查询数据的标识对应的数据的生命周期中的过期时间点且未超过所述查询数据的标识对应的数据的生命周期中的清理时间点,则将所述查询数据的标识对应的数据的查询次数加1,对所述查询数据的标识对应的数据执行更新操作。
可选的,所述处理单元402具体用于:
根据所述查询数据的标识查询全量数据缓存系统;
若查询到所述查询数据的标识对应的数据,则将查询到的所述查询数据的标识对应的数据更新所述本地缓存,并将所述查询数据的标识对应的数据的生命周期重置;
若从所述全量数据缓存系统查询失败,则将所述本地缓存中所述查询数据的标识对应的数据的生命周期重置。
可选的,所述处理单元402还用于:
定期清理所述本地缓存中生命周期超过清理时间点的数据。
可选的,所述处理单元402具体用于:
根据数据的基础更新时间、历史更新次数和在当前分布式热点缓存节点上的历史查询次数,确定所述本地缓存中的数据的生命周期中的过期时间点;
根据数据的基础更新时间、数据的各生命周期的历史查询次数和在当前分布式热点缓存节点上的历史查询次数,确定所述本地缓存中的数据的生命周期中的清理时间点。
基于相同的技术构思,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用存储器中存储的程序指令,按照获得的程序执行上述存储数据管理的方法。
基于相同的技术构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行计算机可读指令时,使得计算机执行上述存储数据管理的方法。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程存储数据管理设备的处理器以产生一个机器,使得通过计算机或其他可编程存储数据管理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程存储数据管理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程存储数据管理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种存储数据管理的方法,其特征在于,包括:
分布式热点缓存节点获取前端发送的查询信息,所述查询信息包括查询数据的标识;
所述分布式热点缓存节点根据所述查询数据的标识,确定本地缓存中是否存在所述查询数据的标识对应的数据;
若存在,则所述分布式热点缓存节点向所述前端反馈查询结果,并根据所述查询数据的标识对应的数据的生命周期,对所述查询数据的标识对应的数据进行管理;
其中,所述本地缓存中的数据的生命周期由数据的历史查询次数和历史更新次数确定的。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述分布式热点缓存节点在确定所述本地缓存中不存在所述查询数据的标识对应的数据时,向与底层数据存储系统通信的全量数据缓存系统发送所述查询数据的标识,以使所述全量数据缓存系统根据所述查询数据的标识查询对应的数据;
所述分布式热点缓存节点接收所述全量数据缓存系统的查询结果;
若所述全量数据缓存系统的查询结果为所述查询数据的标识对应的数据,则所述分布式热点缓存节点向所述前端反馈所述全量数据缓存系统的查询结果,并根据所述查询数据的标识对应的数据的生命周期,对所述查询数据的标识对应的数据进行管理;
若所述全量数据缓存系统的查询结果为未查询到,则所述分布式热点缓存节点向所述前端反馈数据不存在的查询结果,并对所述查询数据的标识进行管理。
3.如权利要求2所述的方法,其特征在于,所述分布式热点缓存节点对所述查询数据的标识进行管理,包括:
所述分布式热点缓存节点在所述本地缓存中将所述查询数据的标识进行存储,并设置状态为数据不存在以及查询次数加1。
4.如权利要求1所述的方法,其特征在于,所述分布式热点缓存节点根据所述查询数据的标识对应的数据的生命周期,对所述查询数据的标识对应的数据进行管理,包括:
若所述查询数据的标识对应的数据的当前查询时间未超过所述查询数据的标识对应的数据的生命周期中的过期时间点,则所述分布式热点缓存节点将所述查询数据的标识对应的数据的查询次数加1,不对所述查询数据的标识对应的数据执行更新操作;
若所述查询数据的标识对应的数据的当前查询时间超过所述查询数据的标识对应的数据的生命周期中的过期时间点且未超过所述查询数据的标识对应的数据的生命周期中的清理时间点,则所述分布式热点缓存节点将所述查询数据的标识对应的数据的查询次数加1,对所述查询数据的标识对应的数据执行更新操作。
5.如权利要求4所述的方法,其特征在于,所述分布式热点缓存节点对所述查询数据的标识对应的数据执行更新操作,包括:
所述分布式热点缓存节点根据所述查询数据的标识查询全量数据缓存系统;
若查询到所述查询数据的标识对应的数据,则所述分布式热点缓存节点将查询到的所述查询数据的标识对应的数据更新所述本地缓存,并将所述查询数据的标识对应的数据的生命周期重置;
若从所述全量数据缓存系统查询失败,则所述分布式热点缓存节点将所述本地缓存中所述查询数据的标识对应的数据的生命周期重置。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述分布式热点缓存节点定期清理所述本地缓存中生命周期超过清理时间点的数据。
7.如权利要求1至6任一项所述的方法,其特征在于,所述分布式热点缓存节点由数据的历史查询次数和历史更新次数确定所述本地缓存中的数据的生命周期,包括:
所述分布式热点缓存节点根据数据的基础更新时间、历史更新次数和在当前分布式热点缓存节点上的历史查询次数,确定所述本地缓存中的数据的生命周期中的过期时间点;
所述分布式热点缓存节点根据数据的基础更新时间、数据的各生命周期的历史查询次数和在当前分布式热点缓存节点上的历史查询次数,确定所述本地缓存中的数据的生命周期中的清理时间点。
8.一种存储数据管理的装置,其特征在于,包括:
获取单元,用于获取前端发送的查询信息,所述查询信息包括查询数据的标识;
处理单元,用于根据所述查询数据的标识,确定本地缓存中是否存在所述查询数据的标识对应的数据;若存在,则向所述前端反馈查询结果,并根据所述查询数据的标识对应的数据的生命周期,对所述查询数据的标识对应的数据进行管理;其中,所述本地缓存中的数据的生命周期由数据的历史查询次数和历史更新次数确定的。
9.如权利要求8所述的装置,其特征在于,所述处理单元还用于:
在确定所述本地缓存中不存在所述查询数据的标识对应的数据时,向与底层数据存储系统通信的全量数据缓存系统发送所述查询数据的标识,以使所述全量数据缓存系统根据所述查询数据的标识查询对应的数据;
接收所述全量数据缓存系统的查询结果;
若所述全量数据缓存系统的查询结果为所述查询数据的标识对应的数据,则向所述前端反馈所述全量数据缓存系统的查询结果,并根据所述查询数据的标识对应的数据的生命周期,对所述查询数据的标识对应的数据进行管理;
若所述全量数据缓存系统的查询结果为未查询到,则向所述前端反馈数据不存在的查询结果,并对所述查询数据的标识进行管理。
10.如权利要求9所述的装置,其特征在于,所述处理单元具体用于:
在所述本地缓存中将所述查询数据的标识进行存储,并设置状态为数据不存在以及查询次数加1。
11.如权利要求8所述的装置,其特征在于,所述处理单元具体用于:
若所述查询数据的标识对应的数据的当前查询时间未超过所述查询数据的标识对应的数据的生命周期中的过期时间点,则将所述查询数据的标识对应的数据的查询次数加1,不对所述查询数据的标识对应的数据执行更新操作;
若所述查询数据的标识对应的数据的当前查询时间超过所述查询数据的标识对应的数据的生命周期中的过期时间点且未超过所述查询数据的标识对应的数据的生命周期中的清理时间点,则将所述查询数据的标识对应的数据的查询次数加1,对所述查询数据的标识对应的数据执行更新操作。
12.如权利要求11所述的装置,其特征在于,所述处理单元具体用于:
根据所述查询数据的标识查询全量数据缓存系统;
若查询到所述查询数据的标识对应的数据,则将查询到的所述查询数据的标识对应的数据更新所述本地缓存,并将所述查询数据的标识对应的数据的生命周期重置;
若从所述全量数据缓存系统查询失败,则将所述本地缓存中所述查询数据的标识对应的数据的生命周期重置。
13.如权利要求8所述的装置,其特征在于,所述处理单元还用于:
定期清理所述本地缓存中生命周期超过清理时间点的数据。
14.如权利要求8至13任一项所述的装置,其特征在于,所述处理单元具体用于:
根据数据的基础更新时间、历史更新次数和在当前分布式热点缓存节点上的历史查询次数,确定所述本地缓存中的数据的生命周期中的过期时间点;
根据数据的基础更新时间、数据的各生命周期的历史查询次数和在当前分布式热点缓存节点上的历史查询次数,确定所述本地缓存中的数据的生命周期中的清理时间点。
15.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至7任一项所述的方法。
16.一种计算机可读非易失性存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011474655.4A CN112506973B (zh) | 2020-12-14 | 2020-12-14 | 一种存储数据管理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011474655.4A CN112506973B (zh) | 2020-12-14 | 2020-12-14 | 一种存储数据管理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112506973A true CN112506973A (zh) | 2021-03-16 |
CN112506973B CN112506973B (zh) | 2023-12-15 |
Family
ID=74973334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011474655.4A Active CN112506973B (zh) | 2020-12-14 | 2020-12-14 | 一种存储数据管理的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112506973B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760982A (zh) * | 2021-01-18 | 2021-12-07 | 西安京迅递供应链科技有限公司 | 一种数据处理方法和装置 |
CN114691734A (zh) * | 2022-03-29 | 2022-07-01 | 中国电信股份有限公司 | 缓存管控方法、装置、计算机可读介质及电子设备 |
CN115840770A (zh) * | 2023-02-10 | 2023-03-24 | 广东徐工汉云工业互联网有限公司 | 基于分布式环境下的本地缓存数据处理方法和相关设备 |
CN115878677A (zh) * | 2023-02-09 | 2023-03-31 | 徐工汉云技术股份有限公司 | 分布式多级缓存的数据处理方法和装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110131242A1 (en) * | 2009-11-27 | 2011-06-02 | International Business Machines Corporation | Persistent querying in a federated database system |
JP2012043338A (ja) * | 2010-08-23 | 2012-03-01 | Nippon Telegr & Teleph Corp <Ntt> | キャッシュ管理装置、キャッシュ管理プログラム及び記録媒体 |
US20140310232A1 (en) * | 2013-04-11 | 2014-10-16 | Hasso-Plattner-Institut für Softwaresystemtechnik GmbH | Aggregate query-caching in databases architectures with a differential buffer and a main store |
CN105302840A (zh) * | 2014-07-31 | 2016-02-03 | 阿里巴巴集团控股有限公司 | 一种缓存管理方法与设备 |
CN105389311A (zh) * | 2014-09-04 | 2016-03-09 | 阿里巴巴集团控股有限公司 | 一种用于确定查询结果的方法与设备 |
CN106815287A (zh) * | 2016-12-06 | 2017-06-09 | 中国银联股份有限公司 | 一种缓存管理方法及装置 |
CN107943594A (zh) * | 2016-10-13 | 2018-04-20 | 北京京东尚科信息技术有限公司 | 数据获取方法和装置 |
CN109947668A (zh) * | 2017-12-21 | 2019-06-28 | 北京京东尚科信息技术有限公司 | 存储数据的方法和装置 |
CN110598138A (zh) * | 2018-06-12 | 2019-12-20 | 北京京东尚科信息技术有限公司 | 基于缓存的处理方法和装置 |
US20200057819A1 (en) * | 2018-08-17 | 2020-02-20 | Salesforce.Com, Inc. | Maintaining data across query executions of a long-running query |
-
2020
- 2020-12-14 CN CN202011474655.4A patent/CN112506973B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110131242A1 (en) * | 2009-11-27 | 2011-06-02 | International Business Machines Corporation | Persistent querying in a federated database system |
JP2012043338A (ja) * | 2010-08-23 | 2012-03-01 | Nippon Telegr & Teleph Corp <Ntt> | キャッシュ管理装置、キャッシュ管理プログラム及び記録媒体 |
US20140310232A1 (en) * | 2013-04-11 | 2014-10-16 | Hasso-Plattner-Institut für Softwaresystemtechnik GmbH | Aggregate query-caching in databases architectures with a differential buffer and a main store |
CN105302840A (zh) * | 2014-07-31 | 2016-02-03 | 阿里巴巴集团控股有限公司 | 一种缓存管理方法与设备 |
CN105389311A (zh) * | 2014-09-04 | 2016-03-09 | 阿里巴巴集团控股有限公司 | 一种用于确定查询结果的方法与设备 |
CN107943594A (zh) * | 2016-10-13 | 2018-04-20 | 北京京东尚科信息技术有限公司 | 数据获取方法和装置 |
CN106815287A (zh) * | 2016-12-06 | 2017-06-09 | 中国银联股份有限公司 | 一种缓存管理方法及装置 |
CN109947668A (zh) * | 2017-12-21 | 2019-06-28 | 北京京东尚科信息技术有限公司 | 存储数据的方法和装置 |
CN110598138A (zh) * | 2018-06-12 | 2019-12-20 | 北京京东尚科信息技术有限公司 | 基于缓存的处理方法和装置 |
US20200057819A1 (en) * | 2018-08-17 | 2020-02-20 | Salesforce.Com, Inc. | Maintaining data across query executions of a long-running query |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760982A (zh) * | 2021-01-18 | 2021-12-07 | 西安京迅递供应链科技有限公司 | 一种数据处理方法和装置 |
CN113760982B (zh) * | 2021-01-18 | 2024-05-17 | 西安京迅递供应链科技有限公司 | 一种数据处理方法和装置 |
CN114691734A (zh) * | 2022-03-29 | 2022-07-01 | 中国电信股份有限公司 | 缓存管控方法、装置、计算机可读介质及电子设备 |
CN114691734B (zh) * | 2022-03-29 | 2023-12-08 | 中国电信股份有限公司 | 缓存管控方法、装置、计算机可读介质及电子设备 |
CN115878677A (zh) * | 2023-02-09 | 2023-03-31 | 徐工汉云技术股份有限公司 | 分布式多级缓存的数据处理方法和装置 |
CN115840770A (zh) * | 2023-02-10 | 2023-03-24 | 广东徐工汉云工业互联网有限公司 | 基于分布式环境下的本地缓存数据处理方法和相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112506973B (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112506973B (zh) | 一种存储数据管理的方法及装置 | |
CN109324757B (zh) | 区块链数据缩容方法、装置及存储介质 | |
US9063787B2 (en) | System and method for using cluster level quorum to prevent split brain scenario in a data grid cluster | |
CN103139255B (zh) | 分配资源标识和标识段的方法 | |
CN108694075B (zh) | 处理报表数据的方法、装置、电子设备和可读存储介质 | |
US20090094200A1 (en) | Method for Admission-controlled Caching | |
CN106874076B (zh) | 分布式事务处理方法 | |
CN106230997B (zh) | 一种资源调度方法和装置 | |
CN106021468B (zh) | 分布式缓存和本地缓存的更新方法和系统 | |
CN106790422A (zh) | 一种用于web应用的数据缓存集群和数据检索方法 | |
CN110019239B (zh) | 上报数据的存储方法、装置、电子设备和存储介质 | |
CN105472056A (zh) | Dns递归服务器分层缓存方法和系统 | |
EP2482200A1 (en) | Storing method of performance data and system thereof | |
CN112559573B (zh) | 数据缓存方法、装置、设备及计算机可读介质 | |
CN107992270B (zh) | 一种多控存储系统全局共享缓存的方法及装置 | |
CN106599152A (zh) | 一种数据缓存方法及系统 | |
CN112069237B (zh) | 一种集群数据库连接池的管理系统 | |
CN114629883B (zh) | 服务请求的处理方法、装置、电子设备及存储介质 | |
US20200133883A1 (en) | Asynchronous Tracking for High-Frequency and High-Volume Storage | |
CN116881288A (zh) | 一种数据查询方法、装置及设备 | |
CN105893150B (zh) | 接口调用频度控制、接口调用请求处理方法及装置 | |
CN105471616B (zh) | 缓存系统管理方法和系统 | |
US11269784B1 (en) | System and methods for efficient caching in a distributed environment | |
CN108255937B (zh) | 基于sdn的资源清理方法、装置、存储介质和计算机设备 | |
CN108416017B (zh) | 一种cdn缓存清除方法和系统 |
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 |