一种版本回滚方法、装置、电子设备及存储介质制造方法及图纸

技术编号:24168573 阅读:23 留言:0更新日期:2020-05-16 02:13
本发明专利技术实施例提供了一种版本回滚方法、装置、电子设备及存储介质。方案如下:接收版本回滚请求,该预设数据库的每一版本是根据对预设数据库中存储的数据进行的每一次数据更新操作确定的,基于接收到的版本回滚请求,根据每一版本对应的反向操作记录,将当前版本回滚至目标版本,每一版本对应的反向操作记录是根据对该版本的上一版本所对应的数据更新操作生成的。通过本发明专利技术实施例提供的技术方案,由于反向操作记录是根据数据更新操作生成的,在进行数据回滚时操作过程相对简单,有效降低了数据回滚的代价,并且反向操作记录的数据量相对较小,对内存的依赖较小,这使得该数据回滚方式可以适用于不同类型的数据库,提高了数据回滚方法的通用性。

A version rollback method, device, electronic device and storage medium

【技术实现步骤摘要】
一种版本回滚方法、装置、电子设备及存储介质
本专利技术涉及数据存储
,特别是涉及一种版本回滚方法、装置、电子设备及存储介质。
技术介绍
在区块链领域对数据进行存储时,不可避免的需要对数据库进行数据回滚,也就是将数据库中当前存储的数据回滚到之前某一时刻存储的数据,从而降低数据异常或数据不可信任等情况对数据库的影响。目前大多数的数据库并不支持数据回滚,例如,常用的远程字典服务(RemoteDictionaryServer,Redis)或Memcached(记忆快取)类型的数据库均不支持数据回滚。在部分支持数据回滚的数据中,所采用的数据回滚方法并不能适用于不同的类型的数据库。部分数据库可以通过硬分叉的方式实现对数据库中存储的数据的回滚,也就是基于区域链当前的主链中的数据,重新计算之后异常区块对应的数据,而不使用异常区块原有的数据,例如,区域链中的比特币(Bitcoin,BTC)。还有就是完全基于内存的数据回滚,如柚子(EOS)区块链所采用的链基(Chainbase)方式就是一种完全基于内存的数据回滚方式。但是,通过硬分叉的数据回滚方法的操作过程较为复杂,并且回滚后的区块链中的部分分叉中的数据可能会丢失,数据回滚的代价较大。而基于内存的数据回滚方法受到内容容量的限制,使得该方法并不能适用于不同类型的数据库,也就是该数据回滚方法的通用性较差。
技术实现思路
本专利技术实施例的目的在于提供一种版本回滚方法、装置、电子设备及存储介质,降低数据回滚的代价,提高数据回滚方法的通用性。具体技术方案如下:本专利技术实施例提供了一种版本回滚方法,所述方法包括:接收针对预设数据库当前版本的版本回滚请求,所述预设数据库的每一版本是根据对所述预设数据库中存储的数据进行的每一次数据更新操作确定的;基于接收到的版本回滚请求,根据每一版本对应的反向操作记录,将所述当前版本回滚至目标版本,每一版本对应的反向操作记录是根据对该版本的上一版本所对应的数据更新操作生成的。可选的,所述版本回滚请求包括目标版本的目标版本号;所述基于接收到的版本回滚请求,根据每一版本对应的反向操作记录,将所述当前版本回滚至目标版本的步骤,包括:基于所述版本回滚请求中包括的目标版本号,确定所述当前版本与所述目标版本之间的多个反向操作记录;按照所述多个反向操作记录,将所述当前版本回滚至所述目标版本。可选的,在基于接收到的版本回滚请求,根据每一版本对应的反向操作记录,将所述当前版本回滚至目标版本之前,还包括:判断所述目标版本的版本号的生成时间是否早于预设版本号的生成时间;所述预设版本号为预先设定的版本回滚的最早版本号;所述基于接收到的版本回滚请求,根据每一版本对应的反向操作记录,将所述当前版本回滚至目标版本的步骤,包括:若不早于所述预设版本号的生成时间,则基于接收到的版本回滚请求,根据每一版本对应的反向操作记录,将所述当前版本回滚至目标版本。可选的,所述方法还包括:接收针对所述预设版本号的调整请求,所述调整请求包括待调整版本号;基于所述调整请求,将所述预设版本号调整为所述待调整版本号。可选的,所述方法还包括:接收针对所述预设数据库中存储的数据的数据更新操作请求;基于所述数据更新操作请求,对所述预设数据库中存储的数据进行更新;生成更新后的预设数据库对应版本的版本号,以及与所述数据更新操作对应的反向操作记录。可选的,所述数据更新操作请求为批量写入操作请求;所述批量写入操作请求包括多个待写入数据;所述生成更新后的预设数据库对应版本的版本号,以及与所述数据更新操作对应的反向操作记录的步骤,包括:生成所述批量写入操作后的预设数据库对应版本的版本号,以及指示批量删除所述多个待写入数据的反向操作记录。可选的,所述基于接收到的版本回滚请求,根据每一版本对应的反向操作记录,将所述当前版本回滚至目标版本的步骤,包括:若所述当前版本是对目标版本进行批量写入操作后得到的版本,则基于接收到的版本回滚请求,根据当前版本对应的反向操作记录,从所述当前版本对应的预设数据库中批量删除写入的多个待写入数据。本专利技术实施例还提供了一种版本回滚装置,所述装置包括:第一接收模块,用于接收针对预设数据库当前版本的版本回滚请求,所述预设数据库的每一版本是根据对所述预设数据库中存储的数据进行的每一次数据更新操作确定的;回滚模块,用于基于接收到的版本回滚请求,根据每一版本对应的反向操作记录,将所述当前版本回滚至目标版本,每一版本对应的反向操作记录是根据对该版本的上一版本所对应的数据更新操作生成的。可选的,所述版本回滚请求包括目标版本的目标版本号;所述回滚模块,具体用于基于所述版本回滚请求中包括的目标版本号,确定所述当前版本与所述目标版本之间的多个反向操作记录;按照所述多个反向操作记录,将所述当前版本回滚至所述目标版本。可选的,所述装置还包括:判断模块,用于判断所述目标版本的版本号的生成时间是否早于预设版本号的生成时间;所述预设版本号为预先设定的版本回滚的最早版本号;所述回滚模块,具体用于在所述判断模块的判断结果为否时,基于接收到的版本回滚请求,根据每一版本对应的反向操作记录,将所述当前版本回滚至目标版本。可选的,所述装置还包括:第二接收模块,用于接收针对所述预设版本号的调整请求,所述调整请求包括待调整版本号;调整模块,用于基于所述调整请求,将所述预设版本号调整为所述待调整版本号。可选的,所述装置还包括:第三接收模块,用于接收针对所述预设数据库中存储的数据的数据更新操作请求;更新模块,用于基于所述数据更新操作请求,对所述预设数据库中存储的数据进行更新;生成模块,用于生成更新后的预设数据库对应版本的版本号,以及与所述数据更新操作对应的反向操作记录。可选的,所述数据更新操作请求为批量写入操作请求;所述批量写入操作请求包括多个待写入数据;所述生成模块,具体用于生成所述批量写入操作后的预设数据库对应版本的版本号,以及指示批量删除所述多个待写入数据的反向操作记录。可选的,所述回滚模块,具体用于若所述当前版本是对目标版本进行批量写入操作后得到的版本,则基于接收到的版本回滚请求,根据当前版本对应的反向操作记录,从所述当前版本对应的预设数据库中批量删除写入的多个待写入数据。本专利技术实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一所述的版本回滚方法步骤。本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的版本回滚方法步骤。本专利技术实施例还提供了一种包含指令的计算机程序产品,当本文档来自技高网...

【技术保护点】
1.一种版本回滚方法,其特征在于,所述方法包括:/n接收针对预设数据库当前版本的版本回滚请求,所述预设数据库的每一版本是根据对所述预设数据库中存储的数据进行的每一次数据更新操作确定的;/n基于接收到的版本回滚请求,根据每一版本对应的反向操作记录,将所述当前版本回滚至目标版本,每一版本对应的反向操作记录是根据对该版本的上一版本所对应的数据更新操作生成的。/n

【技术特征摘要】
1.一种版本回滚方法,其特征在于,所述方法包括:
接收针对预设数据库当前版本的版本回滚请求,所述预设数据库的每一版本是根据对所述预设数据库中存储的数据进行的每一次数据更新操作确定的;
基于接收到的版本回滚请求,根据每一版本对应的反向操作记录,将所述当前版本回滚至目标版本,每一版本对应的反向操作记录是根据对该版本的上一版本所对应的数据更新操作生成的。


2.根据权利要求1所述的方法,其特征在于,所述版本回滚请求包括目标版本的目标版本号;
所述基于接收到的版本回滚请求,根据每一版本对应的反向操作记录,将所述当前版本回滚至目标版本的步骤,包括:
基于所述版本回滚请求中包括的目标版本号,确定所述当前版本与所述目标版本之间的多个反向操作记录;
按照所述多个反向操作记录,将所述当前版本回滚至所述目标版本。


3.根据权利要求1所述的方法,其特征在于,在基于接收到的版本回滚请求,根据每一版本对应的反向操作记录,将所述当前版本回滚至目标版本之前,还包括:
判断所述目标版本的版本号的生成时间是否早于预设版本号的生成时间;所述预设版本号为预先设定的版本回滚的最早版本号;
所述基于接收到的版本回滚请求,根据每一版本对应的反向操作记录,将所述当前版本回滚至目标版本的步骤,包括:
若不早于所述预设版本号的生成时间,则基于接收到的版本回滚请求,根据每一版本对应的反向操作记录,将所述当前版本回滚至目标版本。


4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
接收针对所述预设版本号的调整请求,所述调整请求包括待调整版本号;
基于所述调整请求,将所述预设版本号调整为所述待调整版本号。


5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收针对所述预设数据库中存储的数据的数据更新操作请求;
基于所述数据更新操作请求,对所述预设数据库...

【专利技术属性】
技术研发人员:戴硕
申请(专利权)人:香港乐蜜有限公司
类型:发明
国别省市:中国香港;81

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

1