[发明专利]分布式数据库系统的事务处理方法及装置有效
申请号: | 201410654868.3 | 申请日: | 2014-11-17 |
公开(公告)号: | CN105608086B | 公开(公告)日: | 2021-07-27 |
发明(设计)人: | 代利坚;贾新华;左庄太;白涛;陈河堆;邹海丽;陈小强;彭继平;刘文涛;邓琼;陈建锋 | 申请(专利权)人: | 中兴通讯股份有限公司;中信银行股份有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/24 |
代理公司: | 深圳鼎合诚知识产权代理有限公司 44281 | 代理人: | 薛祥辉 |
地址: | 518057 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 数据库 系统 事务处理 方法 装置 | ||
1.一种分布式数据库系统的事务处理方法,其特征在于,包括:
全局事务处理中心服务器接收用户提交的事务结构化查询语言SQL语句,并根据所述SQL语句生成SQL语法树;
所述全局事务处理中心服务器遍历所述SQL语法树,根据分布式数据库系统的分布情况,生成能够在所述分布式数据库系统各个数据库节点执行的SQL执行树;
所述全局事务处理中心服务器申请与所述SQL执行树对应的全局事务标识GTID,并遍历所述SQL执行树,将所述SQL执行树的执行节点上的SQL语句下发到相应的数据库节点上执行,其中,所述GTID携带在所述SQL语句中;
所述全局事务处理中心服务器接收执行结果,根据所述执行结果遍历所述SQL执行树,在确定SQL执行树上的SQL语句都执行成功且完毕后,将所述执行结果返回给用户,并释放所述GTID;
在各个数据库节点执行所述SQL语句时,在所述数据库节点存储的SQL语句的操作数据的隐含列中存储相应的GTID,并将SQL语句的操作数据的前后值写入到各个数据库节点的数据库日志;
所述方法进一步包括分布式回滚操作:所述全局事务处理中心服务器在部分数据库节点提交的执行结果为执行SQL语句成功,部分数据库节点提交的执行结果为执行SQL语句失败的情况下,获取执行SQL语句成功的数据库节点的数据库日志,通过所述GTID从所述数据库日志中获取已执行成功的SQL语句以及操作数据的前后值,根据已执行成功的SQL语句以及操作数据的前后值构造反向SQL语句,对已执行成功的SQL语句进行回滚操作,将已执行成功的SQL语句回滚到与执行失败的SQL语句一致的状态。
2.如权利要求1所述的方法,其特征在于,全局事务处理中心服务器接收用户提交的事务结构化查询语言SQL语句,并根据所述SQL语句生成SQL语法树具体包括:
所述全局事务处理中心服务器接收用户提交的事务SQL语句;
所述全局事务处理中心服务器根据SQL语法规则、以及面向分布式的应用规则制定SQL语法分析器,通过所述SQL语法分析器分析所述事务SQL语句,生成SQL语法树,并根据所述SQL语法树重构所需要的SQL语句,其中,所述SQL语法树包括SQL语句节点和SQL语句操作节点,如果两个SQL语句节点之间是主从关系,则通过SQL语句操作节点对两个SQL语句节点进行连接。
3.如权利要求1所述的方法,其特征在于,所述全局事务处理中心服务器遍历所述SQL语法树,根据分布式数据库系统的分布情况,生成能够在所述分布式数据库系统各个数据库节点执行的SQL执行树具体包括:
所述全局事务处理中心服务器从根节点深度遍历所述SQL语法树,在遍历到叶子节点后,开始进行归并操作,将能放在一个SQL语句中下发到数据库节点执行的父子关系的节点和兄弟关系的节点合并成一个执行节点,在当前节点无法合并时,将当前节点分布下发到SQL执行树的执行节点上,最后进行汇总操作,生成能够在所述分布式数据库系统各个数据库节点执行的SQL执行树。
4.如权利要求1所述的方法,其特征在于,
在生成能够在所述分布式数据库系统各个数据库节点执行的SQL执行树时,所述方法进一步包括:
在所述SQL执行树上的SQL语句所涉及到的数据均分布在同一数据库节点时,将该SQL语句标识为直接下发到对应数据库节点执行;在所述SQL执行树上的SQL语句涉及到的数据分布在不同数据库节点时,将该SQL语句标识为需要进行汇总操作,并将所述SQL语句分解成的子SQL语句标识为直接下发到相应数据库节点执行;
将所述SQL执行树上的SQL语句下发到相应的数据库节点上执行具体包括:
在SQL语句标识为直接下发的对应数据库节点执行时,所述全局事务处理中心服务器直接将该SQL语句下发到相应数据库节点执行;
在SQL语句分解成的子SQL语句标识为直接下发到相应数据库节点执行,该SQL语句标识为需要进行汇总操作时,所述全局事务处理中心服务器将该SQL语句的子SQL语句下发到各数据库节点执行后,接收各数据库节点反馈的执行结果并对所述执行结果进行数据汇总操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司;中信银行股份有限公司,未经中兴通讯股份有限公司;中信银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410654868.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种信息推荐方法及装置
- 下一篇:网页页面布局的调整方法及装置