[发明专利]非关系型数据库支持事务的方法及装置有效
申请号: | 201410544896.X | 申请日: | 2014-10-15 |
公开(公告)号: | CN105574026B | 公开(公告)日: | 2019-12-13 |
发明(设计)人: | 裴国东 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F16/21 | 分类号: | G06F16/21 |
代理公司: | 11018 北京德琦知识产权代理有限公司 | 代理人: | 谢安昆;宋志强 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 关系 数据库 支持 事务 方法 装置 | ||
1.一种非关系型数据库支持事务的方法,其特征在于,包括:
获取事务开始请求,所述事务开始请求用于指示数据写入;
将数据写入第一非关系型数据库中,并将与所述数据对应的键值存储到事务实例中,其中,所述第一非关系型数据库在所述事务实例中的状态为备数据库;
在所述数据写入完成后,获取事务结束请求,所述事务结束请求用于指示所述第一非关系型数据库与第二非关系型数据库的数据同步,其中,所述第二非关系型数据库在所述事务实例中的状态为主数据库;
根据所述事务实例中存储的键值,将写入所述第一非关系型数据库中与所述键值对应的数据同步到所述第二非关系型数据库中;
其中,所述备数据库用于写入数据,所述主数据库用于读出数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述事务实例中存储的键值,将写入所述第一非关系型数据库中与所述键值对应的数据同步到所述第二非关系型数据库中之前,还包括:
将所述第一非关系型数据库在所述事务实例中的状态由备数据库修改为主数据库,将所述第二非关系型数据库在所述事务实例中的状态由主数据库修改为备数据库。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若数据写入第一非关系型数据库中出现异常,触发事务回滚操作;
根据所述事务实例中存储的键值,将所述第二非关系型数据库中与所述键值对应的数据同步到所述第一非关系型数据库中。
4.根据权利要求2或3所述的方法,其特征在于,所述将数据写入第一非关系型数据库中之前,还包括:
根据所述事务实例中存储的所述第一非关系型数据库的事务状态,判断当前所述事务状态为没有事务状态;
将所述事务实例中存储的所述第一非关系型数据库的事务状态由所述没有事务状态修改为事务已开始状态。
5.根据权利要求3所述的方法,其特征在于,所述根据所述事务实例中存储的键值,将所述第二非关系型数据库中与所述键值对应的数据同步到所述第一非关系型数据库中之后,还包括:
将所述事务实例中存储的所述第一非关系型数据库的事务状态由所述事务已开始状态修改为没有事务状态。
6.根据权利要求4所述的方法,其特征在于,所述根据所述事务实例中存储的键值,将写入所述第一非关系型数据备库中的数据同步到所述第二非关系型数据主库中之前,还包括:
将所述事务实例中存储的所述第一非关系型数据库的事务状态由所述已开始状态修改为事务同步状态;
所述根据所述事务实例中存储的键值,将写入所述第一非关系型数据备库中的数据同步到所述第二非关系型数据主库中之后,还包括:
将所述事务实例中存储的所述第一非关系型数据库的事务状态由所述事务同步状态修改为没有事务状态。
7.一种非关系型数据库支持事务的装置,其特征在于,包括:
第一获取模块,用于获取事务开始请求,所述事务开始请求用于指示数据写入;
写入模块,用于将数据写入第一非关系型数据库中,并将与所述数据对应的键值存储到事务实例中,其中,所述第一非关系型数据库在所述事务实例中的状态为备数据库;
第二获取模块,用于在所述数据写入完成后,获取事务结束请求,所述事务结束请求用于指示所述第一非关系型数据库与第二非关系型数据库的数据同步,其中,所述第二非关系型数据库在所述事务实例中的状态为主数据库;
第一同步模块,用于根据所述事务实例中存储的键值,将写入所述第一非关系型数据库中与所述键值对应的数据同步到所述第二非关系型数据库中;
其中,所述备数据库用于写入数据,所述主数据库用于读出数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410544896.X/1.html,转载请声明来源钻瓜专利网。