【技术实现步骤摘要】
一种分布式数据库事务原子性实现方法及装置
[0001]本申请实施例涉及计算机
,尤其涉及一种分布式数据库事务原子性实现方法及装置。
技术介绍
[0002]NoSQL(Not Only SQL)数据库是对不同于传统的关系数据库的数据库管理系统的统称,NoSQL数据库不通过SQL来操作数据,而是通过Get/Set/Delete等少数特定的接口来操作数据。对于分布式NoSQL数据库,数据被分散存储在不同的物理节点中,一个数据库事务往往需要操作不同的物理节点。如果没有原子性保证,那么一个数据库事务的多个操作全部执行完毕后,可能出现针对某个物理节点的操作成功而针对另一个物理节点的操作失败的情况,从而导致业务逻辑的完整性被破坏。
[0003]传统的分布式事务实现方法一般通过集中式事务管理器和锁机制来实现。事务的所有操作均发送给事务管理器,由事务管理器来执行,同时,通过对资源的排它性锁来避免其它事务对某个事务所操作的资源的使用。
[0004]因为所有的事务操作都必须通过集中式事务管理器,在锁机制的排他性影响下,增加了其它想要操作共同资源的事务的等待时间,导致系统的整体吞吐量较低。
技术实现思路
[0005]本申请实施例提供一种分布式数据库事务原子性实现方法及装置,以减少事务的等待时间,提高系统的整体吞吐量。
[0006]在第一方面,本申请实施例提供了一种分布式数据库事务原子性实现方法,包括:
[0007]响应于写操作指令创建事务对象,并确定所述事务对象的事务标识;
[0 ...
【技术保护点】
【技术特征摘要】
1.一种分布式数据库事务原子性实现方法,其特征在于,包括:响应于写操作指令创建事务对象,并确定所述事务对象的事务标识;确定所述事务对象指向的数据对象的数据版本号和数据值;基于比较交换操作,通过所述事务标识将所述事务对象与每个所述数据对象进行关联,并依据写操作指令对关联的所述数据对象执行相应的数据操作,以将执行数据操作后的数据值赋值给所述数据对象的期望值,并确定更新后的数据版本号;基于所述事务对象的事务状态以及所述数据版本号的同步状态,根据所述数据对象的期望值对数据值进行修改,并更新所述数据版本号。2.根据权利要求1所述的分布式数据库事务原子性实现方法,其特征在于,所述通过所述事务标识将所述事务对象与每个所述数据对象进行关联,包括:利用所述事务对象的事务标识赋值给每个所述数据对象的关联事务标识,以将所述事务对象与所述数据对象进行关联。3.根据权利要求1所述的分布式数据库事务原子性实现方法,其特征在于,所述依据写操作指令对关联的所述数据对象执行相应的数据操作,以将执行数据操作后的数据值赋值给所述数据对象的期望值,并确定更新后的数据版本号,包括:依据写操作指令对每个关联的所述数据对象的数据值进行相应的数据操作,并将执行数据操作后的数据值赋值给对应的所述数据对象的期望值;对每个所述数据对象的数据版本号进行版本号升级处理。4.根据权利要求1所述的分布式数据库事务原子性实现方法,其特征在于,所述确定更新后的数据版本号之后,还包括:基于所述比较交换操作返回的操作结果指示判断比较交换操作是否操作成功;若比较交换操作失败,则删除所述事务对象。5.根据权利要求1所述的分布式数据库事务原子性实现方法,其特征在于,所述确定所述事务对象的事务标识,包括:确定所述事务对象的事务标识和事务版本号;所述根据所述数据对象的期望值对数据值进行修改之前,还包括:判断所述事务版本号与所述事务对象的当前事务版本号是否一致;若一致,则将所述事务对象的事务状态设置为事务完成状态,并更新所述事务版本号。6.根据权利要求1所述的分布式数据库事务原子性实现方法,其特征在于,所述基于所述事务对象的事务状态以及所述数据版本号的同步状态,根据所述数据对象的期望值对数据值进行修改,并更新所述数据版本号,包括:判断所述事务对象的事务状态是否为事务完成状态;若是,则基于所述数据版本号的同步状态,根据所述数据对象的期望值对数据值进行修改,并更新所述数据版本号;否则,根据所述数据版本号的同步状态,对所述数据对象进行回滚操作,并更新所述数据版本号。7.根据权利要求6所述的分布式数据库事务原子性实现方法,其特征在于,所述基于所述数据版本号的同步状态,根据所述数据对象的期望值对数据值进行修改,并更新所述数据版本号,包括:
判断所述数据版本号与所述数据对象的当前数据版本号是否一致;若是,则将所述数据对象的数据值设置为期望值,并将所述数据对象的期望值以及关联事务标识设置为空值,同时对所述数据对象的数据版本号进行版本号升级处理。8.根据权利要求6所述的分布式数据库事...
【专利技术属性】
技术研发人员:吴祖洋,简怀兵,
申请(专利权)人:百果园技术新加坡有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。