[发明专利]一种数据库事务处理方法和服务器有效
申请号: | 201310253548.2 | 申请日: | 2013-06-24 |
公开(公告)号: | CN104243438B | 公开(公告)日: | 2017-08-08 |
发明(设计)人: | 楼方鑫 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08;G06F17/30 |
代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 王宝筠 |
地址: | 英属开曼群岛大开曼*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 事务处理 方法 服务器 | ||
技术领域
本申请涉及数据库技术领域,尤其是涉及一种数据库事务处理方法和服务器。
背景技术
数据库事务指的是一系列具有原子性的数据库操作。原子性是指数据库事务所包含的一系列数据库操作作为一个整体被执行,即要么全部执行成功,要么全部回滚到未执行任何操作的初始状态。
在现有技术中,对数据库事务进行处理通常采用如下方式:客户端向服务器依次发送指示服务器实现处理数据库事务的所有指令,每当发送一条指令之后,都等待服务器返回的执行结果,如果返回的执行结果表示服务器执行失败,则客户端停止发送其余的指令,并向服务器发送回滚通知以使得服务器进行数据库回滚;如果返回的执行结果显示服务器执行成功,则继续发送下一条指令。当所有的指令都被成功发送,并且服务器返回的所有执行结果均表示服务器执行成功时,客户端向服务器发送保存通知,以使得服务器保存数据库当前数据。
可见,在现有技术,由客户端执行所有的逻辑判断功能,服务器只负责执行客户端发送的指令并返回执行结果,因此,客户端需要依次向服务器发送指令,并且每发送一条指令之后都需要等待服务器返回的执行结果,根据返回的执行结果才能判断下一步需要发送什么指令。因此,处理数据库事务时会在客户端和服务器之间进行多次网络交互,使得处理数据库事务的时间较长,并且由于在处理数据库事务时,数据库的账户会被锁定,而锁定后的账户不能再被其他的操作处理,因此处理数据库事务的时间较长,也会使得其他操作处于长时间的等待过程,导致整个服务器的数据处理能力较差。
发明内容
本申请解决的技术问题在于提供一种数据库事务处理方法和服务器,以减少客户端和服务器之间的网络交互次数,从而减少处理数据库事务的时间和其他操作的等待时间,提高整个服务器的数据处理能力。
为此,本申请解决技术问题的技术方案是:
本申请提供了一种数据库事务处理方法,所述方法包括:
服务器,接收由客户端发送的一条复合指令,所述复合指令中将指示服务器实现处理数据库事务的所有指令进行连接,所述复合指令中还具有事务执行条件;
所述服务器解析出复合指令中的所述事务执行条件和指示服务器实现处理数据库事务的所有指令;
服务器执行解析出的指令,并且根据执行解析出的指令的执行结果和解析出的所述事务执行条件判断是否成功执行所有指令,如果是,则保存数据库当前数据并向客户端返回事务成功消息,如果否,则进行数据库回滚并向客户端返回事务失败消息。
可选的,所述事务执行条件为数目执行条件;所述复合指令通过条件判断形式将所述所有指令进行连接;
则所述服务器根据执行解析出的指令的执行结果和解析出的事务执行条件判断是否成功执行所有指令包括:
服务器判断执行解析出的所有指令的执行结果为执行失败还是执行成功,若为执行失败,则判定没有成功执行所有指令,若为执行成功,则判断数据库发生改变的记录的条数是否满足数目执行条件,如果满足,则判定成功执行所有指令,如果不满足,则判定没有成功执行所有指令。
可选的,所述数目执行条件为大于等于或者等于所述指示服务器实现处理数据库事务的所有指令的数目之和。
可选的,所述事务执行条件为判断执行条件;所述复合指令通过作为指令之间的连接符的判断执行条件将所述所有指令进行连接;
则所述服务器根据执行解析出的指令的执行结果和解析出的事务执行条件判断是否成功执行所有指令包括:
所述服务器每次执行完解析出的指令,判断本次执行指令的执行结果为执行失败还是执行成功,若为执行失败,则判定没有成功执行所有指令,若为执行成功,则根据判断执行条件的个数判断服务器是否已执行所有指令,若是,则判定成功执行所有指令,若否,则执行解析出的指令中未被执行的指令。
可选的,所述事务执行条件包括数目执行条件和判断执行条件;所述复合指令通过条件判断形式和作为指令之间的连接符的判断执行条件将所述所有指令进行连接;通过条件判断形式连接的指令对应数目执行条件;
则所述服务器根据执行解析出的指令的执行结果和解析出的事务执行条件判断是否成功执行所有指令包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310253548.2/2.html,转载请声明来源钻瓜专利网。