[发明专利]保证数据库操作原子性的方法及装置在审
申请号: | 201611155864.6 | 申请日: | 2016-12-14 |
公开(公告)号: | CN108228617A | 公开(公告)日: | 2018-06-29 |
发明(设计)人: | 侯欣超 | 申请(专利权)人: | 北京国双科技有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 100086 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库操作 文档 操作记录 原子性 还原 操作成功 操作信息 保证 成功 存储 失败 | ||
本发明公开了一种保证数据库操作原子性的方法及装置,可以存储当前数据库操作的操作信息,生成操作记录,在执行当前数据库操作完毕后,判断当前数据库操作对其所针对的各个文档的操作是否均成功,如果否,则根据操作记录将已成功操作的文档还原为执行当前数据库操作之前的文档。通过本发明的方案,数据库操作在对至少两个文档进行操作时,如对某文档的操作没有成功,则本发明根据操作记录将操作成功的文档进行还原,使得该数据库操作全部“失败”,保证了整个数据库操作的原子性。
技术领域
本发明涉及数据库原子性技术领域,尤其涉及保证数据库操作原子性的方法及装置。
背景技术
随着互联网高速发展,很多公司已经更新使用Mongo数据库。Mongo数据库是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。Mongo数据库最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能。
但是,Mongo数据库没有完整事务支持,操作原子性只到单个文档(document)级别,所以通常操作粒度比较小。当一个数据库操作为对多个文档的操作时,虽然Mongo数据库可以保证对单个文档的操作原子性,但无法保证对多个文档的操作原子性。因此,如何实现Mongo数据库中对多个文档的操作原子性仍旧是一个亟待解决的技术问题。
当然,除Mongo数据库外,Cassandra、Hbase、DynamoDB和Riak等数据库也存在相同问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的保证数据库操作原子性的方法及装置,方案如下:
一种保证数据库操作原子性的方法,包括:
存储当前数据库操作的操作信息,生成操作记录;
在执行所述当前数据库操作完毕后,判断所述当前数据库操作对其所针对的各个文档的操作是否均成功,如果否,则根据所述操作记录将已成功操作的文档还原为执行所述当前数据库操作之前的文档。
可选的,在执行所述当前数据库操作前,所述方法还包括:对所述当前数据库操作针对的每一个文档:生成存储有该文档中的字段值的一个文档记录;在每一文档记录中均添加对应文档的第一状态标识及对应文档的所述操作记录的标识;
在执行所述当前数据库操作完毕后,所述判断所述当前数据库操作对其所针对的各个文档的操作是否均成功之前,所述方法还包括:将操作成功的文档对应的文档记录中的第一状态标识修改为第二状态标识并更新该文档记录中的字段值;
所述判断所述当前数据库操作对其所针对的各个文档的操作是否均成功,包括:
判断所述当前数据库操作针对的各个文档的文档记录中是否均包含第二状态标识,如果不是,则确定所述当前数据库操作对其所针对的各个文档的操作未均成功;
所述根据所述操作记录将已成功操作的文档还原为执行所述当前数据库操作之前的文档,包括:
查找包含第二状态标识的文档记录中的操作记录的标识所匹配的操作记录,并将查找到的所述操作记录对应的文档的字段值还原为执行所述当前数据库操作之前的字段值。
可选的,所述方法还包括:
如果所述当前数据库操作针对的各个文档的文档记录中均包含第二状态标识,则删除所述当前数据库操作针对的各个文档的文档记录并删除所述操作记录。
可选的,在将查找到的所述操作记录对应的文档的字段值还原为执行所述当前数据库操作之前的字段值后,所述方法还包括如下处理中的任何一种:
删除所述当前数据库操作针对的各个文档的文档记录中的状态标识;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京国双科技有限公司,未经北京国双科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611155864.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:日志信息处理方法、系统及装置
- 下一篇:单证数据核对的方法和装置