CN114416798A - 基于数据依赖关系和一致性保证的缓存管理方法及装置 - Google Patents
基于数据依赖关系和一致性保证的缓存管理方法及装置 Download PDFInfo
- Publication number
- CN114416798A CN114416798A CN202210066453.9A CN202210066453A CN114416798A CN 114416798 A CN114416798 A CN 114416798A CN 202210066453 A CN202210066453 A CN 202210066453A CN 114416798 A CN114416798 A CN 114416798A
- Authority
- CN
- China
- Prior art keywords
- data
- cache management
- cache
- query
- deleted
- 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.)
- Pending
Links
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/23—Updating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了基于数据依赖关系和一致性保证的缓存管理方法及系统,以低代码侵入即仅在用户代码中通过注解而不需要写管理逻辑的方式,实现缓存管理需求。其技术方案为:第一,单个记录/多个记录:基于单个数据元素返回值、多个数据元素返回值在管理上的区别,及多个记录类型中的合集和页。第二,五个切入点:为增删改查这四种操作提供缓存管理入口,实现低代码侵入的目标。第三,数据查询逻辑的处理:包括解析查询结果,通过自动化的类型识别、id计算,完成查询结果的类型识别和依赖关系网的创建。第四,驱逐单数据对象算法:将失效模式分为删除模式/更新模式,结合单个记录/多个记录中不同缓存类型的特征,进行差异化管理。
Description
技术领域
本发明涉及一种缓存处理技术,具体涉及一种基于数据依赖关系和一致性保证的缓存管理方法及装置。
背景技术
数据缓存是现代中大型软件系统的重要特性之一,通过缓存软件(如Redis,一个高性能的键值对key-value数据库)将查询结果缓存起来,并与查询条件建立关联,当相同的查询条件再次被请求时,可直接返回缓存数据,避免了查询数据库导致的巨量时间和IO开销。
已有的工具或框架已经提供基本的数据缓存的存、取和删除等操作,在软件开发过程中可直接使用。但直接使用基本的操作无法满足实际业务中对缓存灵活性的要求,因为数据对象间往往存在复杂的关联关系,当一个数据对象发生变化时,需要考虑被依赖对象的缓存的有效性,并以此类推,形成递归管理关系。
举例来说,假设现有业务涉及3个数据类型:年级、班级、学生,它们有以下属性:
从数据库角度,以上属性分别在表中建立字段和主外键关系,模型即可建立起来。但从实际业务需求角度,业务代码中的数据对象往往还需要额外字段来形成完整的描述(即展示字段,展示字段在数据对象中根据实际需要填充,可能为空),如:
通过展示字段,在web页面或者API接口接收到的数据中,除了数据对象本身的属性外,还包含其关联的数据对象。
因此,当缓存数据存入时,需要解析出各数据类型间的依赖关系。当某一数据发生变化(增、删或更新)时,通过解析出的依赖关系,即可将被依赖对象级联失效,从而保证缓存数据与数据库数据的一致性。
但是,现有工具或解决方案中,尚无基于数据间的依赖关系,来提供完整的自动解析关系网,并提供相应的增删改查的操作入口,进而实现基于数据依赖关系和一致性保证的缓存管理方法。
发明内容
以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
本发明的目的在于解决上述问题,提供了一种基于数据依赖关系和一致性保证的缓存管理方法及系统,能够以一种低代码侵入即仅在用户代码中通过注解而不需要写管理逻辑的方式,来实现缓存管理需求。
本发明的技术方案为:本发明揭示了一种基于数据依赖关系和一致性保证的缓存管理方法,方法包括对数据的四种操作类型的处理流程,分别是数据查询流程、数据新增流程、数据删除流程、数据更新流程,其中:
数据查询流程,包括:
步骤11:根据数据对象查询中的执行条件表达式,计算表达式的值,其中执行条件表达式用于检查查询条件是否合法;
步骤12:当计算出的表达式的值表示查询条件不合法时,不执行缓存管理逻辑,直接执行用户的查询方法,缓存管理逻辑结束;
步骤13:当计算出的表达式的值表示查询条件合法时,根据数据对象查询中的参数计算缓存键值;
步骤14:查询计算出的缓存键值是否存在于键值对数据库中,如存在则执行步骤15,如不存在则执行步骤16;
步骤15:从缓存中获取查询条件对应的查询结果并返回,缓存管理逻辑结束;
步骤16:执行用户的查询方法,以获取查询结果;
步骤17:解析查询结果,判断返回的是单个记录还是多个记录,自动识别查询对象类型,计算查询对象标识,所依赖的对象类型、依赖类型、依赖对象标识集合,多个类型,生成对应的单个记录/多个记录,将生成的单个记录/多个记录存入缓存管理数据,建立起缓存键值与其对应结果的对象类型、对象标识之间的关联关系,根据缓存管理数据形成缓存数据的依赖关系网;
步骤18:将查询结果存入键值对数据库中;
步骤19:返回查询结果,缓存管理逻辑结束;
数据删除流程,包括:
步骤21:根据数据对象删除中的执行条件表达式,计算表达式的值;
步骤22:当计算出的表达式的值表示条件不合法时,不执行缓存管理逻辑,直接执行用户的查询方法,缓存管理逻辑结束;
步骤23:当计算出的表达式的值表示条件合法时,执行缓存管理逻辑,根据删除对象标识表达式,计算被删除对象的标识值;
步骤24:执行驱逐单数据对象算法的删除模式,传入被删除对象的标识;
步骤25:遍历数据对象删除中指定的失效对象数组,执行驱逐单数据对象算法的更新模式;
步骤26:执行完毕返回,缓存管理逻辑结束,开始执行用户的删除方法;
数据新增流程,包括:
步骤31:根据新增对象的类型,将新增对象类型在多个记录的集合管理中登记的所有缓存置为失效,并在键值对数据库上删除相应缓存;
步骤32:遍历数据对象新增中指定的失效对象数组,执行驱逐单数据对象算法的更新模式,缓存管理逻辑结束;
数据更新流程,包括:
步骤41:根据数据更新对象中的执行条件表达式计算表达式的值;
步骤42:当计算出的表达式的值表示条件不合法时,不执行缓存管理逻辑,直接执行用户的更新方法,缓存管理逻辑结束;
步骤43:当计算出的表达式的值表示条件合法时,执行缓存管理逻辑,根据更新对象标识表达式,计算被更新对象的标识值;
步骤44:执行驱逐单数据对象算法的更新模式,传入被更新对象的标识;
步骤45:遍历数据对象更新中指定的失效对象数组,执行驱逐单数据对象算法的更新模式;
步骤46:缓存管理逻辑执行完毕返回,开始执行用户的更新方法。
根据本发明的基于数据依赖关系和一致性保证的缓存管理方法的一实施例,驱逐单数据对象算法,是在处理当对象被删除或更新时,对应该失效的缓存数据和缓存管理数据进行相应的管理;当其他对象的数据依赖被删除对象时,调用该驱逐单数据对象算法进行缓存管理,递归调用后直到所有与被删除对象的数据有直接或间接依赖的所有缓存数据和缓存管理数据都被识别和删除。
根据本发明的基于数据依赖关系和一致性保证的缓存管理方法的一实施例,驱逐单数据对象算法配置为执行以下的步骤:
步骤101:根据输入判断是更新模式还是删除模式;
步骤102:在删除模式时,在多个记录的集合中找到符合条件的记录,执行步骤104;
步骤103:在更新模式时,在多个记录的集合中找到符合条件的记录,再执行步骤104;
步骤104:删除步骤102和步骤103中收集到的多个记录及其对应的缓存;
步骤105:在单个记录的集合中过滤出被删除数据对象及其对应的缓存,并加以删除;
步骤106:在单个记录的集合中查找依赖了被删除对象的所有记录,删除查找到的这些被依赖的对象及其缓存;
步骤107:步骤106中被依赖的对象删除后,返回到步骤103,逐个调用驱逐单数据对象算法的更新模式进行遍历处理;
步骤108:所有受影响缓存均处理完毕后算法结束。
根据本发明的基于数据依赖关系和一致性保证的缓存管理方法的一实施例,在步骤102中,查找符合条件的记录进一步配置为:
计算多个类型的集合中的数据,过滤出满足以下条件的记录:(1)目标是输入的对象类型;(2)当类型是合集时,开发人员指定当该对象类型的任意对象被更新,就删除对应的缓存数据;当类型是页时,全部选中;
其中,合集是根据查询条件得到的完整结果,页是根据查询条件得到的部分结果。
根据本发明的基于数据依赖关系和一致性保证的缓存管理方法的一实施例,在步骤103中,查找符合条件的记录进一步配置为:
计算多个类型的结合中的数据,过滤出满足以下条件的记录:(1)目标是输入的对象类型;(2)当开发人员指定当该对象类型的任意对象被更新,就删除对应的缓存数据。
本发明还揭示了一种基于数据依赖关系和一致性保证的缓存管理系统,系统包括数据查询模块、数据新增模块、数据删除模块、数据更新模块,其中:
数据查询模块配置为执行以下流程:
步骤11:根据数据对象查询中的执行条件表达式,计算表达式的值,其中执行条件表达式用于检查查询条件是否合法;
步骤12:当计算出的表达式的值表示查询条件不合法时,不执行缓存管理逻辑,直接执行用户的查询方法,缓存管理逻辑结束;
步骤13:当计算出的表达式的值表示查询条件合法时,根据数据对象查询中的参数计算缓存键值;
步骤14:查询计算出的缓存键值是否存在于键值对数据库中,如存在则执行步骤15,如不存在则执行步骤16;
步骤15:从缓存中获取查询条件对应的查询结果并返回,缓存管理逻辑结束;
步骤16:执行用户的查询方法,以获取查询结果;
步骤17:解析查询结果,判断返回的是单个记录还是多个记录,自动识别查询对象类型,计算查询对象标识,所依赖的对象类型、依赖类型、依赖对象标识集合,多个类型,生成对应的单个记录/多个记录,将生成的单个记录/多个记录存入缓存管理数据,建立起缓存键值与其对应结果的对象类型、对象标识之间的关联关系,根据缓存管理数据形成缓存数据的依赖关系网;
步骤18:将查询结果存入键值对数据库中;
步骤19:返回查询结果,缓存管理逻辑结束;
数据删除模块配置为执行以下的流程:
步骤21:根据数据对象删除中的执行条件表达式,计算表达式的值;
步骤22:当计算出的表达式的值表示条件不合法时,不执行缓存管理逻辑,直接执行用户的查询方法,缓存管理逻辑结束;
步骤23:当计算出的表达式的值表示条件合法时,执行缓存管理逻辑,根据删除对象标识表达式,计算被删除对象的标识值;
步骤24:执行驱逐单数据对象算法的删除模式,传入被删除对象的标识;
步骤25:遍历数据对象删除中指定的失效对象数组,执行驱逐单数据对象算法的更新模式;
步骤26:执行完毕返回,缓存管理逻辑结束,开始执行用户的删除方法;
数据新增模块配置为执行以下的流程:
步骤31:根据新增对象的类型,将新增对象类型在多个记录的集合管理中登记的所有缓存置为失效,并在键值对数据库上删除相应缓存;
步骤32:遍历数据对象新增中指定的失效对象数组,执行驱逐单数据对象算法的更新模式,缓存管理逻辑结束;
数据更新模块配置为执行以下的流程:
步骤41:根据数据更新对象中的执行条件表达式计算表达式的值;
步骤42:当计算出的表达式的值表示条件不合法时,不执行缓存管理逻辑,直接执行用户的更新方法,缓存管理逻辑结束;
步骤43:当计算出的表达式的值表示条件合法时,执行缓存管理逻辑,根据更新对象标识表达式,计算被更新对象的标识值;
步骤44:执行驱逐单数据对象算法的更新模式,传入被更新对象的标识;
步骤45:遍历数据对象更新中指定的失效对象数组,执行驱逐单数据对象算法的更新模式;
步骤46:缓存管理逻辑执行完毕返回,开始执行用户的更新方法。
根据本发明的基于数据依赖关系和一致性保证的缓存管理系统的一实施例,驱逐单数据对象算法,是在处理当对象被删除或更新时,对应该失效的缓存数据和缓存管理数据进行相应的管理;当其他对象的数据依赖被删除对象时,调用该驱逐单数据对象算法进行缓存管理,递归调用后直到所有与被删除对象的数据有直接或间接依赖的所有缓存数据和缓存管理数据都被识别和删除。
根据本发明的基于数据依赖关系和一致性保证的缓存管理系统的一实施例,驱逐单数据对象算法配置为执行以下的步骤:
步骤101:根据输入判断是更新模式还是删除模式;
步骤102:在删除模式时,在多个记录的集合中找到符合条件的记录,执行步骤104;
步骤103:在更新模式时,在多个记录的集合中找到符合条件的记录,再执行步骤104;
步骤104:删除步骤102和步骤103中收集到的多个记录及其对应的缓存;
步骤105:在单个记录的集合中过滤出被删除数据对象及其对应的缓存,并加以删除;
步骤106:在单个记录的集合中查找依赖了被删除对象的所有记录,删除查找到的这些被依赖的对象及其缓存;
步骤107:步骤106中被依赖的对象删除后,返回到步骤103,逐个调用驱逐单数据对象算法的更新模式进行遍历处理;
步骤108:所有受影响缓存均处理完毕后算法结束。
根据本发明的基于数据依赖关系和一致性保证的缓存管理系统的一实施例,在驱逐单数据对象算法的步骤102中,查找符合条件的记录进一步配置为:
计算多个类型的集合中的数据,过滤出满足以下条件的记录:(1)目标是输入的对象类型;(2)当类型是合集时,开发人员指定当该对象类型的任意对象被更新,就删除对应的缓存数据;当类型是页时,全部选中;
其中,合集是根据查询条件得到的完整结果,页是根据查询条件得到的部分结果。
根据本发明的基于数据依赖关系和一致性保证的缓存管理系统的一实施例,在驱逐单数据对象算法的步骤103中,查找符合条件的记录进一步配置为:
计算多个类型的结合中的数据,过滤出满足以下条件的记录:(1)目标是输入的对象类型;(2)当开发人员指定当该对象类型的任意对象被更新,就删除对应的缓存数据。
本发明对比现有技术有如下的有益效果:本发明的方法中具有以下的技术要点。
第一,单个(Single)记录/多个(Many)记录概念:这些概念是实际应用中不断总结提炼的模型,考虑到单个数据元素返回值、多个数据元素返回值在管理上的区别,特别是多个(Many)类型中的合集(collection)和页(page)等概念的深入细化,使得本发明逻辑得以实现。
第二,五个切入点(也称为注解):这些注解是本发明得以应用的核心。这些注解为增删改查这四种操作提供缓存管理入口,实现了本发明低代码侵入的目标。
第三,数据查询逻辑的处理:包括解析查询结果,通过自动化的类型识别、id计算等方式,完成查询结果的类型识别和依赖关系网的创建。
第四,驱逐单数据对象算法:该算法创新点在于管理逻辑设计,将失效模式分为删除模式/更新模式,结合单个(Single)记录/多个(Many)记录中不同缓存类型的特征,进行精确的差异化管理,是实现一致性保证、精确失效的保证。
附图说明
在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本发明的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。
图1示出了本发明的基于数据依赖关系和一致性保证的缓存管理方法的一实施例的数据查询流程的示意图。
图2示出了本发明的基于数据依赖关系和一致性保证的缓存管理方法的一实施例的数据删除流程的示意图。
图3示出了本发明的基于数据依赖关系和一致性保证的缓存管理方法的一实施例的数据新增流程的示意图。
图4示出了本发明的基于数据依赖关系和一致性保证的缓存管理方法的一实施例的数据更新流程的示意图。
图5示出了本发明的基于数据依赖关系和一致性保证的缓存管理方法的一实施例中所包含的驱逐单数据对象算法的流程图。
图6示出了本发明的基于数据依赖关系和一致性保证的缓存管理器系统的一实施例的原理图。
具体实施方式
以下结合附图和具体实施例对本发明作详细描述。注意,以下结合附图和具体实施例描述的诸方面仅是示例性的,而不应被理解为对本发明的保护范围进行任何限制。
本发明的基于数据依赖关系和一致性保证的缓存管理方法,涉及到的对数据的操作包括四种类型:新增、删除、更新和查询。其中查询操作是缓存数据的来源,其他三种操作则会引起缓存数据的失效。
以下四个流程分别针对上述的四种操作,即包括:数据查询流程、数据新增流程、数据删除流程、数据更新流程。
并且,在详细说明这四种操作的流程步骤之前,先提出这四种操作中会涉及到的四个切入点(也称为注解)以及一个辅助切入点(注解),这5个切入点的功能及其对应参数的说明见下表:
上表的参数说明中,涉及到了many(多个)和single(单个),这两个术语的解释如下:
单个(Single)记录:当查询方法返回的是单个数据元素时,记为Single记录,如根据学号查询某学生信息的方法所返回的单个学生数据。
一条单个(Single)记录包括以下属性:数据类型、数据id、缓存键值、依赖的数据类型、依赖类型、依赖数据的id集合。
其中,依赖类型分为单依赖、多依赖。如在班级数据中,依赖学生数据,依赖类型为多依赖;学生数据中,依赖年级、班级数据,依赖类型均为单依赖,此时需要两条单个(Single)记录来描述。
SingleData:包含所有单个(Single)记录的集合。
多个(Many)记录:
当查询方法返回的是多个数据元素时,如列表(list)、集合(set)、页(page)等,记为多个(Many)记录,如根据班级id查询该班级所有学生的方法所返回的多个学生数据。
一条多个(Many)记录包括以下属性:数据类型、Many类型、evictAddAny(bool类型)、evictUpdateAny(bool类型)、evictDelAny(bool类型)、缓存键值、数据的id集合。
其中,多个(Many)类型包括合集(collection)和页(page)两种,合集(collection)类型指返回的查询结果是对查询条件的完整响应,page是指分页数据,即返回的查询结果是查询条件的部分响应,page通常包含第几页、共几页等描述;evictAddAny是bool类型,由开发人员在注解中标定,当为true时,表示只要有该数据类型执行新增操作时,该Many记录对应的缓存键值就应该失效;evictAddAny是bool类型,由开发人员在注解中标定,当为true时,表示只要有该数据类型执行新增操作,该Many记录对应的缓存键值就应该失效;evictUpdateAny是bool类型,由开发人员在注解中标定,当为true时,表示只要有该数据类型执行更新操作,该Many记录对应的缓存键值就应该失效;evictDelAny是bool类型,由开发人员在注解中标定,当为true时,表示只要有该数据类型执行删除操作,该Many记录对应的缓存键值就应该失效。evictAddAny、evictUpdateAny和evictDelAny这三个开关的目的是为开发人员手工控制某个查询方法返回的数据提供一种缓存管理上的灵活性。。
合集(collection)和page在元素的增、删、更新时所对应的管理逻辑存在区别,若有学生被删除,则通常只需要删除包含该学生id的合集(collection)即可,其他合集(collection)可以不删除(除非evictDelAny=true);而page数据间是互相依赖的,删除第一页的某条学生记录,第二页到最后一页的学生数据也会发生变化,此时所有的page都应失效。
ManyData:包含所有Many记录的集合。
缓存管理数据:由SingleData和ManyData组成,用于进行缓存数据管理的数据。
数据查询流程如图1所示,数据查询逻辑的目的是在处理查询数据对象时,对缓存数据和缓存管理数据进行相应的管理(缓存数据是查询方法获取到的结果,是存到缓存管理装置Redis中的,可能被再次使用的;缓存管理数据是上文提到的SingleData和ManyData)。查询管理逻辑在调用用户的查询方法前被执行,对应的切入点名称(注解)是CDMGet,其中redisValue和redisKey是必选项。查询管理逻辑是本发明对查询方法所做的管理,即图1所对应的逻辑;查询方法是开发人员根据业务需要编写的查询方法。具体程序执行时,当执行到查询方法时,会先执行查询管理逻辑,查询管理逻辑根据需要决定是否继续执行查询管理逻辑,还是直接返回缓存数据。
以下结合图1对数据查询流程进行详细的描述。
步骤1:根据condition表达式计算condition的值。Condition表达式通常用于检查查询条件是否合法(比如查询条件不能为null),是本逻辑内部管理的最基本条件,下同。
condition表达式即数据对象查询CDMGet中的执行条件表达式。
步骤2:当计算出的condition的值为false(即查询条件不合法)时,不执行缓存管理逻辑,直接执行用户的查询方法,缓存管理逻辑结束。
步骤3:当计算出的condition的值为true(即查询条件合法)时,根据数据查询对象中的参数redisValue和redisKey计算缓存键值(cache key)。其中redisValue通常是固定的字符串,redisKey通常是变量表达式,如#obj.id。
步骤4:查询计算出的缓存键值是否存在于Redis中。如存在则执行步骤5,如不存在则执行步骤6。
步骤5:Redis中已有该缓存键值,说明查询条件对应的查询结果已存在于缓存中,则从缓存中获取该查询结果并返回,缓存管理逻辑结束。
步骤6:Redis中不存在该缓存键值,说明查询条件对应的结果并不存在于缓存中,则执行用户的查询方法,以获取查询结果。接着执行步骤7。
步骤7:解析查询结果,判断返回的是Single记录还是Many记录,自动识别查询对象类型,计算查询对象标识(id)、所依赖的对象类型、依赖类型、依赖对象id集合等,Many类型(page还是collection)等,生成对应的Single记录/Many记录,将生成的Single记录/Many记录存入缓存管理数据,建立起缓存键值与其对应结果的对象类型、id之间的关联关系。根据这些缓存管理数据,即形成了缓存数据的依赖关系网。
步骤8:将查询结果存入redis。
步骤9:返回查询结果,缓存管理逻辑结束。
数据删除流程如图2所示,数据删除逻辑的目的是处理对象被删除时,对缓存管理器装置中的数据和缓存数据进行相应的管理。数据删除逻辑在调用用户的删除方法前被执行,对应的切入点名称(注解)是CDMDel,其中被删除对象的数据类型、id是必选项,即所有根据其他条件进行删除的操作,都应先根据条件查询出对应id,再根据id进行删除。
以下结合图2对数据删除流程进行详细的描述。
步骤1:根据condition表达式计算condition的值。
condition表达式即数据对象删除CDMDel中的执行条件表达式。
步骤2:当计算出的condition的值为false时(即查询条件不合法),不执行缓存管理逻辑,直接执行用户的删除方法,缓存管理逻辑结束。
步骤3:当计算出的condition的值为true时,执行缓存管理逻辑。根据delId表达式(删除对象id表达式),计算被删除对象的id值。
步骤4:执行驱逐单数据对象算法(删除模式),传入被删除对象的id。
在步骤4中,缓存管理的是被删除对象,因此此步骤中的驱逐单数据对象算法采用的是删除模式。
步骤5:遍历数据对象删除中指定的CDMEvict数组(即指定的失效对象数组),执行驱逐单数据对象算法(更新模式)。
有别于步骤4,步骤5中缓存管理的是因被删除对象而级联到的其他对象,而这些其他对象并没有被删除,只是缓存需要将其失效,因此此步骤中的驱逐单数据对象算法采用更新模式。
步骤6:执行完毕返回,缓存管理逻辑结束,开始执行用户的删除方法。
上述的驱逐单数据对象算法,目的是处理当对象被删除或更新时,对应该失效的缓存数据和缓存管理数据进行相应的管理。该算法属于递归算法,当其他对象的数据依赖被删除对象时,同样需要调用该算法进行缓存管理,依次类推,直到所有与被删除对象的数据有直接或间接依赖的所有缓存数据和缓存管理数据都被识别和删除。
驱逐单数据对象算法的具体实现流程如图5所示,其实施步骤结合图5详述如下。
步骤1:根据输入判断是更新模式还是删除模式。
算法的输入包括了对象类型、id和模式(更新或者删除),因此可直接从输入中判断是更新模式还是删除模式。
步骤2:删除模式时,按相应条件,在ManyData中找到符合的记录。然后执行步骤4。
查找符合的记录的具体方式为:
计算ManyData中的数据,过滤出满足以下条件的记录:(1)目标是输入的对象类型;(2)当类型是合集(collection)时,记录的evictUpdateAny=true或该记录的ids中包含输入id(开发人员指定当该对象类型的任意对象被更新,即删除该缓存数据);当类型是page时,全部选中。
类型合集(collection)是根据查询条件得到的完整结果,而类型page是根据查询条件得到的部分结果(分页的)。步骤2和步骤3的区别在于,删除时,由于page之间的数据关联性(多个page才组成完成的查询结果),所有包含该数据类型的page都应该失效。
步骤3:更新模式时,按相应条件,在ManyData中找到符合的记录。然后执行步骤4。
查询符合的记录的具体方式为:
计算ManyData中的数据,过滤出满足以下条件的记录:(1)目标是输入的对象类型;(2)该记录的evictUpdateAny=true或该记录的ids中包含输入id(同步骤2)。
步骤4:删除前序步骤(即前序的步骤2和步骤3)收集到的Many记录及其对应的缓存。
步骤5:在SingleData中过滤出被删除数据对象(包括被删除对象的对象类型和id),以及他们对应的缓存,删除过滤出的被删除对象及其对应的缓存。
步骤6:在SingleData中查找依赖了被删除对象的所有记录,删除查找到的这些被依赖的对象及其缓存。
依赖被删除对象的其他对象是基于SingleData中的依赖的数据类型、依赖类型、依赖数据的id集合字段来查询的。
步骤7:步骤6中被依赖的对象删除后,会导致其他依赖到这些数据对象的缓存失效,即间接被依赖也应该失效。此时处理流程同上,遍历以上结果,逐个调用驱逐单数据对象算法的更新模式,即返回到步骤3进行处理。
步骤8:所有受影响缓存均处理完毕,结束算法。
通过步骤2~步骤7完成了单条数据记录和依赖于该数据的其他缓存数据的失效处理。过程中依赖该数据的缓存数据的失效会再次引发相同失效逻辑,即步骤7到步骤3的循环操作。以上,通过将失效模式分为删除模式/更新模式,结合单个(Single)记录/多个(Many)记录中不同缓存类型的特征的差异化管理,最终实现了精确的失效。
数据新增流程如图3所示,数据新增逻辑的目的是处理新增对象时,对缓存管理器装置中的数据和缓存数据进行相应的管理。数据新增逻辑在调用用户的新增方法前被执行,对应的切入点名称(注解)是CDMAdd,其中被新增对象的数据类型addClass是必选项。
以下结合图3对数据新增流程进行详细的描述。
步骤1:根据新增对象的类型,将新增对象类型在ManyData管理中登记的所有缓存置为失效,并在Redis上删除相应缓存。
步骤1中,新增对象后,无法确定之前已查询的该数据类型的Many缓存是否有效,因此所有的ManyData数据均应失效,并在Redis上删除相应缓存。
步骤2:遍历CDMAdd注解中指定的CDMEvict数组,执行驱逐单数据对象算法(更新模式),缓存管理逻辑结束。
步骤2中,管理的是因新增对象而被级联到的其他对象,而这些其他对象并没有被删除,只是缓存需要失效,因此驱逐单数据对象算法采用更新模式。
驱逐单数据对象算法的更新模式见图5,且已经在上述段落中详细描述,在此不再赘述。
数据更新流程如图4所示,数据更新逻辑的目的是处理对象被更新时,对缓存数据和缓存管理数据进行相应的管理。数据更新逻辑在调用用户的更新方法前被执行,对应的切入点名称(注解)是CDMUpdate,其中被更新对象的id是必选项,即所有根据其他条件进行更新的操作,都应先根据条件查询出对应id,再根据id进行更新。
以下结合图4对数据更新流程进行详细的描述。
步骤1:根据condition表达式计算condition的值。
condition表达式即数据更新对象CDMUpdate中的执行条件表达式。
步骤2:当计算出的condition的值为false时,不执行缓存管理逻辑,直接执行用户的更新方法,逻辑结束。
步骤3:当计算出的condition的值为true时,执行缓存管理逻辑。根据updateId表达式,计算被更新对象的id值。
步骤4:执行驱逐单数据对象算法(更新模式),传入被更新对象的id。
在步骤4中,管理的是被更新对象,因此驱逐单数据对象算法采用更新模式。
步骤5:遍历注解中指定的CDMEvict数组,执行驱逐单数据对象算法(更新模式)。
有别于步骤4,步骤5中管理的是因被更新对象而级联到的其他对象,而这些其他对象并没有被更新,只是缓存需要失效,因此驱逐单数据对象算法采用更新模式。
步骤6:缓存管理逻辑执行完毕返回,开始执行用户的更新方法。
图6示出了本发明的基于数据依赖关系和一致性保证的缓存管理器系统的一实施例的原理。请参见图6,本实施例的缓存管理器系统包括:数据查询模块、数据新增模块、数据删除模块、数据更新模块。
数据查询模块配置为执行如图1所示的流程。数据删除模块配置为执行如图2所示的流程。数据新增模块配置为执行如图3所示的流程。数据更新模块配置为执行如图4所示的流程。
这些流程的文字说明已经在前述的方法实施例中详细描述,在此不再赘述。
尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。
本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。
结合本文所公开的实施例描述的各种解说性逻辑板块、模块、和电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或多个微处理器、或任何其他此类配置。
结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。
在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。
提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。
Claims (10)
1.一种基于数据依赖关系和一致性保证的缓存管理方法,其特征在于,方法包括对数据的四种操作类型的处理流程,分别是数据查询流程、数据新增流程、数据删除流程、数据更新流程,其中:
数据查询流程,包括:
步骤11:根据数据对象查询中的执行条件表达式,计算表达式的值,其中执行条件表达式用于检查查询条件是否合法;
步骤12:当计算出的表达式的值表示查询条件不合法时,不执行缓存管理逻辑,直接执行用户的查询方法,缓存管理逻辑结束;
步骤13:当计算出的表达式的值表示查询条件合法时,根据数据对象查询中的参数计算缓存键值;
步骤14:查询计算出的缓存键值是否存在于键值对数据库中,如存在则执行步骤15,如不存在则执行步骤16;
步骤15:从缓存中获取查询条件对应的查询结果并返回,缓存管理逻辑结束;
步骤16:执行用户的查询方法,以获取查询结果;
步骤17:解析查询结果,判断返回的是单个记录还是多个记录,自动识别查询对象类型,计算查询对象标识,所依赖的对象类型、依赖类型、依赖对象标识集合,多个类型,生成对应的单个记录/多个记录,将生成的单个记录/多个记录存入缓存管理数据,建立起缓存键值与其对应结果的对象类型、对象标识之间的关联关系,根据缓存管理数据形成缓存数据的依赖关系网;
步骤18:将查询结果存入键值对数据库中;
步骤19:返回查询结果,缓存管理逻辑结束;
数据删除流程,包括:
步骤21:根据数据对象删除中的执行条件表达式,计算表达式的值;
步骤22:当计算出的表达式的值表示条件不合法时,不执行缓存管理逻辑,直接执行用户的查询方法,缓存管理逻辑结束;
步骤23:当计算出的表达式的值表示条件合法时,执行缓存管理逻辑,根据删除对象标识表达式,计算被删除对象的标识值;
步骤24:执行驱逐单数据对象算法的删除模式,传入被删除对象的标识;
步骤25:遍历数据对象删除中指定的失效对象数组,执行驱逐单数据对象算法的更新模式;
步骤26:执行完毕返回,缓存管理逻辑结束,开始执行用户的删除方法;
数据新增流程,包括:
步骤31:根据新增对象的类型,将新增对象类型在多个记录的集合管理中登记的所有缓存置为失效,并在键值对数据库上删除相应缓存;
步骤32:遍历数据对象新增中指定的失效对象数组,执行驱逐单数据对象算法的更新模式,缓存管理逻辑结束;
数据更新流程,包括:
步骤41:根据数据更新对象中的执行条件表达式计算表达式的值;
步骤42:当计算出的表达式的值表示条件不合法时,不执行缓存管理逻辑,直接执行用户的更新方法,缓存管理逻辑结束;
步骤43:当计算出的表达式的值表示条件合法时,执行缓存管理逻辑,根据更新对象标识表达式,计算被更新对象的标识值;
步骤44:执行驱逐单数据对象算法的更新模式,传入被更新对象的标识;
步骤45:遍历数据对象更新中指定的失效对象数组,执行驱逐单数据对象算法的更新模式;
步骤46:缓存管理逻辑执行完毕返回,开始执行用户的更新方法。
2.根据权利要求1所述的基于数据依赖关系和一致性保证的缓存管理方法,其特征在于,驱逐单数据对象算法,是在处理当对象被删除或更新时,对应该失效的缓存数据和缓存管理数据进行相应的管理;当其他对象的数据依赖被删除对象时,调用该驱逐单数据对象算法进行缓存管理,递归调用后直到所有与被删除对象的数据有直接或间接依赖的所有缓存数据和缓存管理数据都被识别和删除。
3.根据权利要求2所述的基于数据依赖关系和一致性保证的缓存管理方法,其特征在于,驱逐单数据对象算法配置为执行以下的步骤:
步骤101:根据输入判断是更新模式还是删除模式;
步骤102:在删除模式时,在多个记录的集合中找到符合条件的记录,执行步骤104;
步骤103:在更新模式时,在多个记录的集合中找到符合条件的记录,再执行步骤104;
步骤104:删除步骤102和步骤103中收集到的多个记录及其对应的缓存;
步骤105:在单个记录的集合中过滤出被删除数据对象及其对应的缓存,并加以删除;
步骤106:在单个记录的集合中查找依赖了被删除对象的所有记录,删除查找到的这些被依赖的对象及其缓存;
步骤107:步骤106中被依赖的对象删除后,返回到步骤103,逐个调用驱逐单数据对象算法的更新模式进行遍历处理;
步骤108:所有受影响缓存均处理完毕后算法结束。
4.根据权利要求3所述的基于数据依赖关系和一致性保证的缓存管理方法,其特征在于,在步骤102中,查找符合条件的记录进一步配置为:
计算多个类型的集合中的数据,过滤出满足以下条件的记录:(1)目标是输入的对象类型;(2)当类型是合集时,开发人员指定当该对象类型的任意对象被更新,就删除对应的缓存数据;当类型是页时,全部选中;
其中,合集是根据查询条件得到的完整结果,页是根据查询条件得到的部分结果。
5.根据权利要求3所述的基于数据依赖关系和一致性保证的缓存管理方法,其特征在于,在步骤103中,查找符合条件的记录进一步配置为:
计算多个类型的结合中的数据,过滤出满足以下条件的记录:(1)目标是输入的对象类型;(2)当开发人员指定当该对象类型的任意对象被更新,就删除对应的缓存数据。
6.一种基于数据依赖关系和一致性保证的缓存管理系统,其特征在于,系统包括数据查询模块、数据新增模块、数据删除模块、数据更新模块,其中:
数据查询模块配置为执行以下流程:
步骤11:根据数据对象查询中的执行条件表达式,计算表达式的值,其中执行条件表达式用于检查查询条件是否合法;
步骤12:当计算出的表达式的值表示查询条件不合法时,不执行缓存管理逻辑,直接执行用户的查询方法,缓存管理逻辑结束;
步骤13:当计算出的表达式的值表示查询条件合法时,根据数据对象查询中的参数计算缓存键值;
步骤14:查询计算出的缓存键值是否存在于键值对数据库中,如存在则执行步骤15,如不存在则执行步骤16;
步骤15:从缓存中获取查询条件对应的查询结果并返回,缓存管理逻辑结束;
步骤16:执行用户的查询方法,以获取查询结果;
步骤17:解析查询结果,判断返回的是单个记录还是多个记录,自动识别查询对象类型,计算查询对象标识,所依赖的对象类型、依赖类型、依赖对象标识集合,多个类型,生成对应的单个记录/多个记录,将生成的单个记录/多个记录存入缓存管理数据,建立起缓存键值与其对应结果的对象类型、对象标识之间的关联关系,根据缓存管理数据形成缓存数据的依赖关系网;
步骤18:将查询结果存入键值对数据库中;
步骤19:返回查询结果,缓存管理逻辑结束;
数据删除模块配置为执行以下的流程:
步骤21:根据数据对象删除中的执行条件表达式,计算表达式的值;
步骤22:当计算出的表达式的值表示条件不合法时,不执行缓存管理逻辑,直接执行用户的查询方法,缓存管理逻辑结束;
步骤23:当计算出的表达式的值表示条件合法时,执行缓存管理逻辑,根据删除对象标识表达式,计算被删除对象的标识值;
步骤24:执行驱逐单数据对象算法的删除模式,传入被删除对象的标识;
步骤25:遍历数据对象删除中指定的失效对象数组,执行驱逐单数据对象算法的更新模式;
步骤26:执行完毕返回,缓存管理逻辑结束,开始执行用户的删除方法;
数据新增模块配置为执行以下的流程:
步骤31:根据新增对象的类型,将新增对象类型在多个记录的集合管理中登记的所有缓存置为失效,并在键值对数据库上删除相应缓存;
步骤32:遍历数据对象新增中指定的失效对象数组,执行驱逐单数据对象算法的更新模式,缓存管理逻辑结束;
数据更新模块配置为执行以下的流程:
步骤41:根据数据更新对象中的执行条件表达式计算表达式的值;
步骤42:当计算出的表达式的值表示条件不合法时,不执行缓存管理逻辑,直接执行用户的更新方法,缓存管理逻辑结束;
步骤43:当计算出的表达式的值表示条件合法时,执行缓存管理逻辑,根据更新对象标识表达式,计算被更新对象的标识值;
步骤44:执行驱逐单数据对象算法的更新模式,传入被更新对象的标识;
步骤45:遍历数据对象更新中指定的失效对象数组,执行驱逐单数据对象算法的更新模式;
步骤46:缓存管理逻辑执行完毕返回,开始执行用户的更新方法。
7.根据权利要求6所述的基于数据依赖关系和一致性保证的缓存管理系统,其特征在于,驱逐单数据对象算法,是在处理当对象被删除或更新时,对应该失效的缓存数据和缓存管理数据进行相应的管理;当其他对象的数据依赖被删除对象时,调用该驱逐单数据对象算法进行缓存管理,递归调用后直到所有与被删除对象的数据有直接或间接依赖的所有缓存数据和缓存管理数据都被识别和删除。
8.根据权利要求7所述的基于数据依赖关系和一致性保证的缓存管理系统,其特征在于,驱逐单数据对象算法配置为执行以下的步骤:
步骤101:根据输入判断是更新模式还是删除模式;
步骤102:在删除模式时,在多个记录的集合中找到符合条件的记录,执行步骤104;
步骤103:在更新模式时,在多个记录的集合中找到符合条件的记录,再执行步骤104;
步骤104:删除步骤102和步骤103中收集到的多个记录及其对应的缓存;
步骤105:在单个记录的集合中过滤出被删除数据对象及其对应的缓存,并加以删除;
步骤106:在单个记录的集合中查找依赖了被删除对象的所有记录,删除查找到的这些被依赖的对象及其缓存;
步骤107:步骤106中被依赖的对象删除后,返回到步骤103,逐个调用驱逐单数据对象算法的更新模式进行遍历处理;
步骤108:所有受影响缓存均处理完毕后算法结束。
9.根据权利要求8所述的基于数据依赖关系和一致性保证的缓存管理系统,其特征在于,在驱逐单数据对象算法的步骤102中,查找符合条件的记录进一步配置为:
计算多个类型的集合中的数据,过滤出满足以下条件的记录:(1)目标是输入的对象类型;(2)当类型是合集时,开发人员指定当该对象类型的任意对象被更新,就删除对应的缓存数据;当类型是页时,全部选中;
其中,合集是根据查询条件得到的完整结果,页是根据查询条件得到的部分结果。
10.根据权利要求8所述的基于数据依赖关系和一致性保证的缓存管理系统,其特征在于,在驱逐单数据对象算法的步骤103中,查找符合条件的记录进一步配置为:
计算多个类型的结合中的数据,过滤出满足以下条件的记录:(1)目标是输入的对象类型;(2)当开发人员指定当该对象类型的任意对象被更新,就删除对应的缓存数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210066453.9A CN114416798A (zh) | 2022-01-20 | 2022-01-20 | 基于数据依赖关系和一致性保证的缓存管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210066453.9A CN114416798A (zh) | 2022-01-20 | 2022-01-20 | 基于数据依赖关系和一致性保证的缓存管理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114416798A true CN114416798A (zh) | 2022-04-29 |
Family
ID=81275809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210066453.9A Pending CN114416798A (zh) | 2022-01-20 | 2022-01-20 | 基于数据依赖关系和一致性保证的缓存管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114416798A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878666A (zh) * | 2022-10-31 | 2023-03-31 | 四川川大智胜系统集成有限公司 | 一种缓存依赖关系的管理方法、系统、电子设备及介质 |
CN117170889A (zh) * | 2023-11-01 | 2023-12-05 | 沐曦集成电路(上海)有限公司 | 异构非阻塞数据包同步处理系统 |
-
2022
- 2022-01-20 CN CN202210066453.9A patent/CN114416798A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878666A (zh) * | 2022-10-31 | 2023-03-31 | 四川川大智胜系统集成有限公司 | 一种缓存依赖关系的管理方法、系统、电子设备及介质 |
CN115878666B (zh) * | 2022-10-31 | 2023-09-12 | 四川川大智胜系统集成有限公司 | 一种缓存依赖关系的管理方法、系统、电子设备及介质 |
CN117170889A (zh) * | 2023-11-01 | 2023-12-05 | 沐曦集成电路(上海)有限公司 | 异构非阻塞数据包同步处理系统 |
CN117170889B (zh) * | 2023-11-01 | 2024-01-23 | 沐曦集成电路(上海)有限公司 | 异构非阻塞数据包同步处理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8655896B2 (en) | Apparatus and methods for organizing data items having time of life intervals | |
US9904706B2 (en) | Deferring data record changes using query rewriting | |
US7730032B2 (en) | Efficient queriability of version histories in a repository | |
US9256607B2 (en) | Efficient file access in a large repository using a two-level cache | |
US9268804B2 (en) | Managing a multi-version database | |
US9037557B2 (en) | Optimistic, version number based concurrency control for index structures with atomic, non-versioned pointer updates | |
US9632944B2 (en) | Enhanced transactional cache | |
CN114416798A (zh) | 基于数据依赖关系和一致性保证的缓存管理方法及装置 | |
US9477609B2 (en) | Enhanced transactional cache with bulk operation | |
US8666981B2 (en) | Bottom-up optimistic latching method for index trees | |
US9087067B2 (en) | System, method, and computer program product for modeling changes to large scale datasets | |
JP6198845B2 (ja) | アクティブデータベースクエリのメンテナンス | |
CN111090663A (zh) | 事务并发控制方法、装置、终端设备及介质 | |
US20140164412A1 (en) | Apparatus and methods for organizing data items having time of life intervals | |
US9262552B2 (en) | Apparatus and methods for organizing data items by directed graph | |
WO2015168988A1 (zh) | 一种数据索引创建方法、装置及计算机存储介质 | |
CN109871338B (zh) | 一种数据存储方法、装置及计算机设备 | |
CN115729912A (zh) | 数据库访问系统、方法、计算机设备和存储介质 | |
CN111831915A (zh) | 响应数据查询请求的方法、装置、电子设备及存储介质 | |
US20180011897A1 (en) | Data processing method having structure of cache index specified to transaction in mobile environment dbms | |
CN104111962B (zh) | 具有批量操作的增强型事务高速缓存 | |
US20230418803A1 (en) | Techniques for integrating data for multple instances of a data artifact | |
KR20070097660A (ko) | 이동통신 단말기에서 에스큐엘을 이용한 멀티미디어 파일관리 방법 | |
CN113377811A (zh) | 数据库查询的方法及系统 | |
CN117093155A (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 |