[发明专利]一种映射数组更新方法、装置、电子设备及介质在审
申请号: | 202210786014.5 | 申请日: | 2022-07-04 |
公开(公告)号: | CN115129737A | 公开(公告)日: | 2022-09-30 |
发明(设计)人: | 韩朱忠;丁国浩;王海龙 | 申请(专利权)人: | 上海达梦数据库有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/2458 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 赵翠香 |
地址: | 201203 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 映射 数组 更新 方法 装置 电子设备 介质 | ||
本发明实施例公开了一种映射数组更新方法、装置、电子设备及介质。方法包括:读取当前的收集次数值,映射数组的数组元素个数是设定映射信息数量加1;基于收集次数值和数组元素个数计算第一实际下标;在第一实际下标所对应的数组元素中存储当前所收集的映射信息;在存储完成之后设置收集次数值加1并返回执行读取当前的收集次数值的操作。通过设置数组元素个数为设定映射信息数量加1,又将基于当前的收集次数值和数组元素个数确定的第一实际下标所对应的数组元素作为多出来的用于存储正在收集映射信息的数组元素,能够不影响其他数组元素中的映射信息被查询使用,从而解决在收集映射信息时映射信息更新和查询所带来的并发访问冲突的问题。
技术领域
本发明实施例涉及数据库技术领域,尤其涉及一种映射数组更新方法、装置、电子设备及介质。
背景技术
用户或应用程序可能会对数据库进行不必要的更改,例如错误更新、删除表的内容或删除数据库对象等。这些错误通常称为人为错误,当这些无意或恶意行为被提交导致数据库中的数据在逻辑上损坏或无法使用时,就会发生人为错误中断。其中,闪回查询是一种用于快速恢复由于上述人为错误导致数据损坏的技术,闪回查询可以查询数据的过去状态,并及时恢复数据,而无需恢复备份。
现有闪回查询的方式主要有两种,一种是基于时间戳,即查看用户指定时间戳时的数据状态;一种是基于日志序列号(Log Sequenece Number,LSN),即查看用户指定LSN时的数据状态。通常对于基于时间戳的闪回查询方式,相关系统内部也会转化为基于LSN进行查询,所以需要知道表征LSN和时间的映射关系的映射信息。一般相关系统会定时收集LSN和时间的映射信息,闪回查询则依赖这个映射信息将数据恢复到指定时间或LSN信息,例如,如果用户指定时间,则从这个映射信息中获取对应的LSN信息。
但是,对LSN和时间的映射信息收集和用户查询之间存在并发访问,由于存在并发访问冲突,使得用户会查询访问到无效数据,该无效数据为正在收集的不完整的LSN和时间的映射信息。
故,如何在收集LSN和时间的映射信息时避免并发访问冲突是当前亟待解决的技术问题。
发明内容
本发明实施例提供了一种映射数组更新方法、装置、电子设备及介质,以解决如何在收集LSN和时间的映射信息时避免并发访问冲突的问题。
根据本发明实施例的一方面,提供了一种映射数组更新方法,包括:
读取当前的收集次数值,所述收集次数值用于指示映射信息收集的次数,所述映射数组的数组元素个数是设定映射信息数量加1;
基于所述收集次数值和所述数组元素个数计算第一实际下标;
在所述第一实际下标所对应的数组元素中存储所述当前所收集的映射信息,以更新所述映射数组;
在存储完成之后,设置所述收集次数值加1,并返回执行读取当前的收集次数值的操作,持续收集映射信息以更新所述映射数组;
其中,每次所收集的映射信息不同。
根据本发明实施例的另一方面,提供了一种映射数组更新装置,包括:
读取模块,用于读取当前的收集次数值,所述收集次数值用于指示映射信息收集的次数,所述映射数组的数组元素个数是设定映射信息数量加1;
计算模块,用于基于所述收集次数值和所述数组元素个数计算第一实际下标;
存储模块,用于在所述第一实际下标所对应的数组元素中存储所述当前所收集的映射信息,以更新所述映射数组;
更新模块,用于在存储完成之后,设置所述收集次数值加1,并返回执行读取当前的收集次数值的操作,持续收集映射信息以更新所述映射数组;
其中,每次所收集的映射信息不同。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海达梦数据库有限公司,未经上海达梦数据库有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210786014.5/2.html,转载请声明来源钻瓜专利网。