[发明专利]一种分布式数据库读写中间件在审
| 申请号: | 201810913576.5 | 申请日: | 2018-08-10 |
| 公开(公告)号: | CN109086432A | 公开(公告)日: | 2018-12-25 |
| 发明(设计)人: | 董津;曹兴兵;杨宣志 | 申请(专利权)人: | 纳里健康科技有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 310053 浙江省杭州市滨江区江*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 主数据库 计数表 中间件 读写 矫正 分布式数据库 数据库分配 数据库 数据库操作模块 指令分析模块 一致性修正 编程成本 编程习惯 操作指令 读写操作 目标操作 输出执行 数据一致 算法改进 不一致 读操作 调取 分配 判读 算法 取出 测试 改进 分析 | ||
本发明公开了一种分布式数据库读写中间件,包括用于对输入的SQL指令进行分析的指令分析模块、用于将中间件对目标操作库和主数据库中取出矫正计数表的数据进行比较的一致性判读模块、用于数据库分配的数据库分配模块、用于对分配的数据库进行操作的数据库操作模块、用于调取数据进行比较的矫正计数表和用于对矫正计数表进行操作,添加计数/输出执行结果的一致性修正模块,采用上述技术方案,主要对读写操作的算法进行改进,通过算法改进,判断本次读操作的数据库和主数据库是否数据一致,如果不一致,就自动将操作指令分配到主数据库进行操作,避免因为编程习惯不当造成的读写错误风险,杜绝因为脏读造成的程序bug,降低测试和编程成本。
技术领域
本发明涉及数据处理技术领域,具体指一种分布式数据库读写中间件。
背景技术
目前市面上的高并发分布式数据库中间件广泛采用同步复制,然后由中间件分析SQL语句,根据分析结果,将写指令指定到主数据库进行操作,将读指令指定到从的数据库进行读操作,从而分摊单机负载压力,无需程序员在使用使进行数据库指定。这种中间件虽然无需程序员对操作的数据库进行指定,能够很好的利用主从数据库分担数据库操作压力,但是也存在致命的问题,因为数据库主从库之间的同步是基于日志的秒级同步,所以当程序中进行毫秒级的写操作和马上进行读操作这样的写法将构成致命的脏读情况,在程序读操作时,很可能因为日志复制的延迟,本次读指令无法读取到上次刚刚进行的写操作所修改的数据,而造成数据读取错误。
目前为了避免这样的情况发生,其做法是对程序员进行人为行为规范,不允许进行写操作后立刻的读操作,避免脏读的发生。而人为约定往往并不能杜绝大项目中的编程习惯不当的失误,而这样的失误往往会造成程序的隐含bug,使得程序出现不确定的错误,同时这样的缺陷往往很难被定位和复现,而造成大量的测试开发差错成本。
发明内容
本发明根据现有技术的不足,提出一种分布式数据库读写中间件,通过数据计数比较的方法,实现分布式数据库操作指令的进一步精细化分配,避免出现程序员编程不当造成的脏读情况。
为了解决上述技术问题,本发明的技术方案为:
一种分布式数据库读写中间件,包括用于对输入的SQL指令进行分析的指令分析模块、用于将中间件对目标操作库和主数据库中取出矫正计数表的数据进行比较的一致性判读模块、用于数据库分配的数据库分配模块、用于对分配的数据库进行操作的数据库操作模块、用于调取数据进行比较的矫正计数表和用于对矫正计数表进行操作,添加计数/输出执行结果的一致性修正模块,
其步骤包括:
S1、输入SQL指令;
S2、通过指令分析模块对指令进行分析本次操作是读操作或是写操作,如果判定是写操作,则继续步骤S3,如果判定是读操作,则继续步骤S7;
S3、判定是写操作,由数据库分配模块将其分配到主数据库;
S4、通过一致性修正模块对矫正计数表进行操作
S5、调用数据库操作模块进行操作;
S6、通过一致性修正模块对矫正计数表再次进行操作,添加计数,输出执行结果;
S7、判定是读操作,由一致性判读模块从中间件的目标从数据库和主数据库中取出矫正计数表的数据进行比较,如果数据一致,继续步骤S7,如果数据非一致,继续步骤S9;
S8、数据一致,则通过数据库分配模块将读操作分配到目标从数据库执行指令,并返回执行结果;
S9、数据不一致,则通过数据库分配模块将读操作分配至目标主数据库执行指令,并返回执行结果。
作为优选,所述步骤S4具体对主数据库的矫正计数器进行更新。
作为优选,所述步骤S5具体执行写操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于纳里健康科技有限公司,未经纳里健康科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810913576.5/2.html,转载请声明来源钻瓜专利网。





