一种基于预写日志机制提高缓存和数据源数据一致性的方法和装置制造方法及图纸

技术编号:37805587 阅读:29 留言:0更新日期:2023-06-09 09:35
本发明专利技术涉及一种基于预写日志机制提高缓存和数据源数据一致性的方法和装置。该方法包括:在执行缓存删除之前,在重做日志文件中保存删除操作记录;在执行缓存删除之后,在重做日志文件中保存删除完成记录;在应用发生崩溃并再次恢复后,执行所述重做日志文件中记录的未完成的有效删除操作,以使缓存和数据源的数据一致。该方法还可以在应用启动时执行重做日志恢复处理。本发明专利技术能够在应用异常崩溃后重新启动时恢复执行重做日志中未完成的有效缓存删除,避免应用异常崩溃可能引发的数据不一致的情况。本发明专利技术不依赖其他系统,实现简单、高效可靠。可靠。可靠。

【技术实现步骤摘要】
一种基于预写日志机制提高缓存和数据源数据一致性的方法和装置


[0001]本专利技术属于信息
,具体涉及一种基于预写日志机制提高缓存和数据源数据一致性的方法和装置。

技术介绍

[0002]缓存技术一般是指用一个更快的存储设备(比如内存)存储应用经常用到但是变化较少的数据,避免应用每次都从慢设备(比如磁盘)去读取这些数据,从而提高访问效率。分布式缓存就是指在分布式环境或系统下,把上述数据存储到离应用近的位置,存储到更快的设备,减少传输延迟、提高访问速度。缓存技术主要用于高并发大量读请求的业务场景。
[0003]常见的缓存使用模式主要有旁路模式、直读模式、直写模式、后台写入模式等等。旁路模式(如图1所示)的实现逻辑由应用完成,比直读/直写模式性能更好,比后台写入模式实现更简单,从而被广泛使用。但是旁路模式要同时维护缓存和数据源,必然存在数据一致性的问题。
[0004]为了解决上述问题,通常需要给缓存中的数据设置过期时间TTL,保证数据的最终一致。当某些原因导致应用删除缓存的操作失败时,缓存数据只能等待TTL超时后才能得到更新,造本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于预写日志机制提高缓存和数据源数据一致性的方法,其特征在于,包括以下步骤:在执行缓存删除之前,在重做日志文件中保存删除操作记录;在执行缓存删除之后,在重做日志文件中保存删除完成记录;在应用发生崩溃并再次恢复后,执行所述重做日志文件中记录的未完成的有效删除操作,以使缓存和数据源的数据一致。2.根据权利要求1所述的方法,其特征在于,所述删除操作记录和所述删除完成记录以追加方式写入到当前的重做日志文件中;所述重做日志文件包括文件头和文件体;所述文件头包含当前文件体的所有日志记录中的最新失效时间;所述文件体包含删除操作记录和删除完成记录。3.根据权利要求2所述的方法,其特征在于,所述文件头包含文件版本、文件头大小、失效时间和记录编号;所述删除操作记录包括记录编号、操作类型、失效时间和缓存主键,其中失效时间是当前时间加上删除操作的有效时间,删除操作的有效时间不超过数据在缓存中的TTL;所述删除完成记录包括记录编号、操作类型。4.根据权利要求1所述的方法,其特征在于,所述重做日志文件的大小存在限制,在写入一条或多条记录后检查重做日志文件的大小是否超过限制,若超过限制则创建新的重做日志文件;新的重做日志文件创建成功后关闭原重做日志文件,关闭原重做日志文件前,将原重做日志文件既有删除操作记录的最新失效时间保存到文件头;后续新的删除操作记录和删除完成记录保存到新的重做日志文件中,原重做日志文件成为历史日志文件;若一个历史日志文件的最新失效时间已经过时,则删除该历史日志文件。5.根据权利要求1所述的方法,其特征在于,在应用启动时先执行重做日志恢复处理,所述重做日志恢复处理包括:根据重做日志文件的头信息,删除最新失效时间已经过时的重做日志文件;重做日志文件未正常关闭的,通过遍历文件体中的记录得到最新失效时间和其他必须信息来更新文件头;创建新的重做日志文件为当前重做日志文件,然后启动单独的日志恢复单元对历史日志文件执行日志恢复工作。6.根据权利要求5所述的方法,其特征在于,所述对历史日志文件执行日志恢复工作,包括:按照历史日志文件的创建顺序对每个历史日志文件的记录进行遍历;对于删除操作记录,如果记录的失效时间未过时则判定为有效删除操作,添加到待执行列表中;对于删除完成记录,从待执行...

【专利技术属性】
技术研发人员:申旭刚杨卫平殷智勇
申请(专利权)人:中国互联网络信息中心
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1