CN112433960B - 一种异步基于版本控制的刷新级联缓存的方法 - Google Patents
一种异步基于版本控制的刷新级联缓存的方法 Download PDFInfo
- Publication number
- CN112433960B CN112433960B CN202011423266.9A CN202011423266A CN112433960B CN 112433960 B CN112433960 B CN 112433960B CN 202011423266 A CN202011423266 A CN 202011423266A CN 112433960 B CN112433960 B CN 112433960B
- Authority
- CN
- China
- Prior art keywords
- cache
- version
- factors
- caching
- factor
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种异步基于版本控制的刷新级联缓存的方法,包括以下步骤:S100:缓存因子基础数据配置及缓存因子级联关系的建立;S200:针对所有缓存因子的版本管理配置,初始化时均统一初始化为起始基础版本;S300:基于已经构建好的缓存因子,配置缓存基础元数据;S400:缓存因子与缓存的级联关联关系保存,缓存与缓存因子为一对多的对应关系,对应的缓存因子发生改变均需要触发缓存的版本及缓存数据的更新处理;S500:当缓存因子对应的数据信息发生变化,计算出级联影响的缓存因子及缓存;S600:根据步骤S500的处理结果与实际缓存因子、缓存的版本进行比较,确认出本次需要影响的缓存因子及实际缓存。可满足用户在级联缓存更新时各个缓存的级联更新问题。
Description
技术领域
本发明涉及缓存级联管理领域,更具体的说是涉及一种异步基于版本控制的刷新级联缓存的方法。
背景技术
需要缓存级联管理的业务系统,一般业务系统为了提高系统吞吐量都会使用缓存作为数据交换的缓冲区,当某一硬件要读取数据时,会首先从缓存中查询数据,有则直接执行,不存在时从磁盘中获取。由于缓存的数据比磁盘快的多,所以缓存的作用就是帮助硬件更快的运行。伴随着数据吞吐量以及数据处理流程复杂度的不断提高,缓存的应用场景也越来越复杂。例如,业务系统中一般需要多个缓存数据,并且,缓存数据之间存在相同的依赖数据资源。这就需要构造多个相互间具备依赖关系的缓存,即,级联缓存。
在现有技术中,缓存的刷新管理通常采用隔离方式管理,各个缓存间独立刷新控制。然而,由于级联缓存中的各个缓存相互间存在依赖关系,如果采用隔离方式刷新管理,就会出现集群刷新数据资源的重复、集中数据资源调用,对数据资源性能产生影响。
发明内容
本发明的目的在于提供一种异步基于版本控制的刷新级联缓存的方法,以期解决背景技术中的问题。
为了实现上述目的,本发明采用以下技术方案:
一种异步基于版本控制的刷新级联缓存的方法,包括以下步骤:
S100:缓存因子基础数据配置及缓存因子级联关系的建立;
S200:针对所有缓存因子的版本管理配置,初始化时均统一初始化为起始基础版本;
S300:基于已经构建好的缓存因子,配置缓存基础元数据;
S400:缓存因子与缓存的级联关联关系保存,缓存与缓存因子为一对多的对应关系,对应的缓存因子发生改变均需要触发缓存的版本及缓存数据的更新处理;
S500:当缓存因子对应的数据信息发生变化,计算出级联影响的缓存因子及缓存;
S600:根据步骤S500的处理结果与实际缓存因子、缓存的版本进行比较,确认出本次需要影响的缓存因子及实际缓存。
所述步骤S100具体为:为当前系统需要使用到的缓存抽象出相关的缓存因子,缓存因子由因子对应的名、因子对应的值及因子对应的版本构成,缓存因子键需要保证全局唯一。
所述步骤S300具体为:为各个缓存设置基于缓存因子的计算公式,各个缓存的缓存因子的计算公式是用户自行配置的,当缓存因子发生变化时,就会触发缓存的更新。
所述步骤S400具体为:缓存的版本计算基于缓存因子的版本位运算计算而来;当缓存因子发生变化触发了缓存因子的版本升级,缓存的版本也会进行级联升级。
所述步骤S500具体为:假设其中一个缓存因子的变化会触发另外的缓存因子的刷新以及由该变化的缓存因子影响的缓存的变化,系统会级联将相关的缓存因子版本、缓存版本进行刷新,再异步触发相关缓存因子及缓存值的重新计算,由于前面的缓存因子与缓存的关系配置,系统中已经能计算出相关的逻辑影响树,所以在更新时,会按照被依赖的先进行更新的原则进行。
所述步骤S600具体为:每次更新先根据依赖配置计算保存最新的缓存因子或缓存的版本信息、按照逻辑影响依赖树先更新被依赖的缓存因子再逐步更新相关缓存、异步执行缓存结果计算。
进一步的,计算出逻辑影响依赖树,永远先保证被依赖的缓存因子先进行更新,再更新后续依赖的缓存。
进一步的,异步更新完成时会将本次计算版本与实际版本进行比较,若计算版本与实际版本相等,则表示实际版本与本次更新计算版本一致,将最新计算结果值进行更新保存;否则,表示本次更新已经是历史版本,本次更新进行放弃。
本发明与现有技术相比具有的有益效果是:
本发明提供了一种异步基于版本控制的刷新级联缓存的方法,通过构建缓存影响因子依赖关系,在进行缓存存储时,建立实际缓存与相关缓存因子的关联关系及版本信息,当缓存因子发生变化,异步级联更新相依赖的缓存因子及实际缓存版本,并异步进行缓存数据的级联刷新。缓存的版本控制即刷新与实际业务系统独立开来,避免缓存更新过程中,影响实际业务的处理效率。通过异步级联缓存刷新,既可以大大提高缓存的数据资源的利用率,也可以为业务系统提高几乎无感知的缓存级联更新,对业务系统的缓存使用可以带来很大的提升。
附图说明
图1为本发明的一种异步基于版本控制的刷新级联缓存的方法的缓存因子变化级联触发异步缓存更新的流程图;
具体实施方式
下面结合实施例对本发明作进一步的描述,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域的普通技术人员在没有做出创造性劳动前提下所获得的其他所用实施例,都属于本发明的保护范围。
实施例1:
下面将结合附图,对本发明的技术方案进行完整的描述。如附图1示,
一种异步基于版本控制的刷新级联缓存的方法,包括以下步骤:
S100:缓存因子基础数据配置及缓存因子级联关系的建立。
为当前系统需要使用到的缓存抽象出相关的缓存因子,缓存因子由因子对应的名、因子对应的值(或者sql计算语句配置)及因子对应的版本构成,缓存因子键需要保证全局唯一,缓存因子的更新,其实就是因子对应的值会随着我们系统的业务数据进行变更修改,每一次变更修改,均需要先升级该缓存因子的版本,在缓存因子的基础之上建立起级联关系影响链,级联关系影响链其实存储缓存因子与影响其他缓存因子的关联关系,一般来讲,系统中一个缓存因子的更新很可能需要级联影响触发其他缓存因子的更新,这种情况我们就可以通过级联关系影响链进行配置。
S200:在步骤S100的基础上,针对所有缓存因子的版本管理配置,初始化时均统一初始化为起始基础版本1.0。
S300:基于已经构建好的缓存因子,配置缓存基础元数据,主要为各个缓存设置基于缓存因子的计算公式(包括缓存数据计算公式与缓存版本计算公式)。需要特别说明的是,各个缓存的缓存因子计算公式是用户自行配置的,比如缓存A的计算公式可能为缓存因子1+缓存因子2。当缓存因子1或者缓存因子2发生变化时,就会触发缓存A的更新(详细的更新步骤由后续步骤进行详细阐述)。
S400:缓存因子与缓存的级联关联关系保存,缓存与缓存因子为一对多的对应关系,对应的缓存因子发生改变均需要触发缓存的版本及缓存数据的更新处理,需要特别说明的是缓存的版本计算基于缓存因子的版本位运算计算而来。如步骤3的例子,当缓存因子发生变化触发了缓存因子1的版本升级,缓存A的版本也会进行级联升级(有缓存因子1的版本与缓存因子2的版本乘积算出最新的缓存版本值)。
S500:当缓存因子对应的数据信息发生变化,计算出级联影响的缓存因子及缓存。当缓存因子发生变化,根据缓存因子计算出最新的相关缓存的版本。如步骤3的例子,假设缓存因子1的变化会触发缓存因子3,缓存因子4的刷新以及由缓存因子1影响的缓存A的变化,系统会级联将相关的缓存因子版本、缓存版本进行刷新,再异步触发相关缓存因子及缓存值的重新计算,由于前面的缓存因子与缓存的关系配置,系统中已经能计算出相关的逻辑影响树,所以在更新时,会按照被依赖的先进行更新的原则进行。
S600:根据步骤S500的处理结果与实际缓存因子、缓存的版本进行比较,确认出本次需要影响的缓存因子及实际缓存。更新时的实现原则主要为:每次更新先根据依赖配置计算保存最新的缓存因子或缓存的版本信息、按照逻辑影响依赖树先更新被依赖的缓存因子再逐步更新相关缓存、异步执行缓存结果计算(结果更新时若发现计算提交版本已经小于存储版本,表示本次更新结果已经为历史版本数据,放弃本次更新及后续未完成的依赖更新)。
计算出逻辑影响依赖树,永远先保证被依赖的缓存因子先进行更新,再更新后续依赖的缓存。特别注意的时异步更新完成时会将本次计算版本与实际版本进行比较,若计算版本与实际版本相等,则表示实际版本与本次更新计算版本一致,将最新计算结果值进行更新保存。否则,表示本次更新已经是历史版本,本次更新进行放弃。
以上所述仅为本发明较佳实例而已,本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (5)
1.一种异步基于版本控制的刷新级联缓存的方法,其特征在于,包括以下步骤:
S100:缓存因子基础数据配置及缓存因子级联关系的建立;
S200:针对所有缓存因子的版本管理配置,初始化时均统一初始化为起始基础版本;
S300:基于已经构建好的缓存因子,配置缓存基础元数据;
S400:缓存因子与缓存的级联关联关系保存,缓存与缓存因子为一对多的对应关系,对应的缓存因子发生改变均需要触发缓存的版本及缓存数据的更新处理;
S500:当缓存因子对应的数据信息发生变化,计算出级联影响的缓存因子及缓存;
S600:根据步骤S500的处理结果与实际缓存因子、缓存的版本进行比较,确认出本次需要影响的缓存因子及实际缓存;
所述步骤S100具体为:为当前系统需要使用到的缓存抽象出相关的缓存因子,缓存因子由因子对应的名、因子对应的值及因子对应的版本构成,缓存因子键需要保证全局唯一;
所述步骤S400具体为:缓存的版本计算基于缓存因子的版本位运算计算而来;当缓存因子发生变化触发了缓存因子的版本升级,缓存的版本也会进行级联升级;
所述步骤S500具体为:假设其中一个缓存因子的变化会触发另外的缓存因子的刷新以及由该变化的缓存因子影响的缓存的变化,系统会级联将相关的缓存因子版本、缓存版本进行刷新,再异步触发相关缓存因子及缓存值的重新计算,由于前面的缓存因子与缓存的关系配置,系统中已经能计算出相关的逻辑影响树,所以在更新时,会按照被依赖的先进行更新的原则进行。
2.根据权利要求1所述的一种异步基于版本控制的刷新级联缓存的方法,其特征在于,所述步骤S300具体为:为各个缓存设置基于缓存因子的计算公式,各个缓存的缓存因子的计算公式是用户自行配置的,当缓存因子发生变化时,就会触发缓存的更新。
3.根据权利要求1所述的一种异步基于版本控制的刷新级联缓存的方法,其特征在于,所述步骤S600具体为:每次更新先根据依赖配置计算保存最新的缓存因子或缓存的版本信息、按照逻辑影响依赖树先更新被依赖的缓存因子再逐步更新相关缓存、异步执行缓存结果计算。
4.根据权利要求3所述的一种异步基于版本控制的刷新级联缓存的方法,其特征在于,计算出逻辑影响依赖树,永远先保证被依赖的缓存因子先进行更新,再更新后续依赖的缓存。
5.根据权利要求3所述的一种异步基于版本控制的刷新级联缓存的方法,其特征在于,异步更新完成时会将本次计算版本与实际版本进行比较,若计算版本与实际版本相等,则表示实际版本与本次更新计算版本一致,将最新计算结果值进行更新保存;否则,表示本次更新已经是历史版本,本次更新进行放弃。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011423266.9A CN112433960B (zh) | 2020-12-08 | 2020-12-08 | 一种异步基于版本控制的刷新级联缓存的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011423266.9A CN112433960B (zh) | 2020-12-08 | 2020-12-08 | 一种异步基于版本控制的刷新级联缓存的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112433960A CN112433960A (zh) | 2021-03-02 |
CN112433960B true CN112433960B (zh) | 2022-06-21 |
Family
ID=74690947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011423266.9A Active CN112433960B (zh) | 2020-12-08 | 2020-12-08 | 一种异步基于版本控制的刷新级联缓存的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112433960B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706801A (zh) * | 2009-11-17 | 2010-05-12 | 广州从兴电子开发有限公司 | 一种内存数据库数据的管理方法及系统 |
CN102970284A (zh) * | 2012-11-05 | 2013-03-13 | 北京奇虎科技有限公司 | 用户信息处理方法和服务器 |
CN103380417A (zh) * | 2011-02-18 | 2013-10-30 | 英特尔公司(特拉华州公司) | 用于从存储器请求所存储的数据的技术 |
CN110505310A (zh) * | 2014-07-11 | 2019-11-26 | 阿里巴巴集团控股有限公司 | 一种实现分布式缓存的方法、装置及系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6405219B2 (en) * | 1999-06-22 | 2002-06-11 | F5 Networks, Inc. | Method and system for automatically updating the version of a set of files stored on content servers |
US8005792B2 (en) * | 2004-05-14 | 2011-08-23 | Oracle International Corporation | System and method for managing versions of metadata |
US8407419B2 (en) * | 2010-11-30 | 2013-03-26 | Open Text S.A. | System and method for managing a cache using file system metadata |
US8650156B1 (en) * | 2010-12-23 | 2014-02-11 | Amazon Technologies, Inc. | System and method for fetching the latest versions of stored data objects |
US20180203807A1 (en) * | 2017-01-13 | 2018-07-19 | Arm Limited | Partitioning tlb or cache allocation |
US10705590B2 (en) * | 2017-11-28 | 2020-07-07 | Google Llc | Power-conserving cache memory usage |
CN110059023B (zh) * | 2019-04-04 | 2020-11-10 | 创新先进技术有限公司 | 一种刷新级联缓存的方法、系统及设备 |
CN111538681B (zh) * | 2020-03-25 | 2022-11-01 | 武汉理工大学 | Spark平台下基于最大化缓存增益的缓存替换方法 |
-
2020
- 2020-12-08 CN CN202011423266.9A patent/CN112433960B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706801A (zh) * | 2009-11-17 | 2010-05-12 | 广州从兴电子开发有限公司 | 一种内存数据库数据的管理方法及系统 |
CN103380417A (zh) * | 2011-02-18 | 2013-10-30 | 英特尔公司(特拉华州公司) | 用于从存储器请求所存储的数据的技术 |
CN102970284A (zh) * | 2012-11-05 | 2013-03-13 | 北京奇虎科技有限公司 | 用户信息处理方法和服务器 |
CN110505310A (zh) * | 2014-07-11 | 2019-11-26 | 阿里巴巴集团控股有限公司 | 一种实现分布式缓存的方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112433960A (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552372B2 (en) | Systems, methods, and computer-readable media for a fast snapshot of application data in storage | |
JP5259404B2 (ja) | データベースフラグメントのクローン化および管理 | |
US20190377737A1 (en) | Incremental and collocated redistribution for expansion of online shared nothing database | |
US20150254257A1 (en) | Seamless data migration across databases | |
CN108984224A (zh) | 一种插件管理方法、计算机可读存储介质及终端设备 | |
US20090204570A1 (en) | Method and apparatus for performing multi-stage table updates | |
US11216412B2 (en) | Intelligent merging for efficient updates in columnar databases | |
Hadian et al. | Interp olation-friendly B-tr ees: Bridging the Gap Betw een AlgorithmicandLearnedInde xes | |
CN112106038A (zh) | 在目标数据库管理系统上自动优化资源使用量以提高工作负载性能 | |
CN109241193B (zh) | 分布式数据库的处理方法和装置,及服务器集群 | |
CN111522811B (zh) | 数据库的处理方法及装置、存储介质、终端 | |
WO2023202394A1 (zh) | 分区表建立、针对分区表的数据写入、读取方法及装置 | |
CN107153680B (zh) | 一种分布式内存数据库在线扩展节点的方法及系统 | |
CN111127252A (zh) | 一种水资源管理决策支持系统的数据管理方法 | |
CN112433960B (zh) | 一种异步基于版本控制的刷新级联缓存的方法 | |
US20150178328A1 (en) | Client-Side Directed Commands to a Loosely Coupled Database | |
US10452545B1 (en) | Systems and methods for maintaining cache coherency | |
Arrieta-Salinas et al. | Classic replication techniques on the cloud | |
US20070005552A1 (en) | Methods and systems for reducing transient memory consumption in an object-oriented system | |
US10846014B2 (en) | Concept for group memory write instructions | |
CN109446214B (zh) | 大数据背景下基于乐观锁机制实现主数据版本管理的系统及方法 | |
JP6189266B2 (ja) | データ処理装置、データ処理方法及びデータ処理プログラム | |
JP2018526740A (ja) | モバイル端末のためのデータ記憶方法及び装置 | |
CN112699148A (zh) | 刷新缓存的方法、装置、设备及存储介质 | |
US11048692B2 (en) | Partition move in case of table update |
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 |