[发明专利]一种分布式数据库的缓存处理方法及系统有效
申请号: | 201410293656.7 | 申请日: | 2014-06-26 |
公开(公告)号: | CN104050276B | 公开(公告)日: | 2017-08-01 |
发明(设计)人: | 李静 | 申请(专利权)人: | 北京思特奇信息技术股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京轻创知识产权代理有限公司11212 | 代理人: | 杨立 |
地址: | 100086 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 数据库 缓存 处理 方法 系统 | ||
技术领域
本发明涉及一种分布式数据库的缓存处理方法及系统。
背景技术
现有分布式数据库代理对客户端发送来待处理的每一个sql请求都会发送给mysql服务器处理,并将处理结果返回给客户端。这种方式会导致同一个sql查询语句要多次向mysql服务器请求执行,影响mysql的使用效率。
现有系统处理存在以下缺点:
同样的请求会多次发送给mysql服务器执行,而数据库代理没有数据缓存功能,会导致mysql服务器响应频繁,性能降低。
同样的请求会多次发送给mysql服务器执行,会导致mysql服务器的并发很大,影响性能。
分布式数据库代理缺少数据缓存功能,使得代理会频繁调用mysql服务器执行命令。
在互联网、电信等许多关键领域,随着企业业务的不断发展,企业的I/T环境也在不断进行演变,单个数据库已经很难满足海量数据库存储和高并发数据访问,分布式数据库的出现成为必然,分布式数据库能够有效的解决海量数据存储和并发问题,通过数据的水平切分和数据表的垂直切分,有效的缓解了海量数据存储,通过负载均衡、高可用、轮询等缓解了高并发问题,但是提高数据库的响应速度,减小频繁的数据库请求成为分布式数据库需要面对的问题。因此,在分布式数据库中增加缓存支持是非常重要的。
发明内容
本发明所要解决的技术问题是提供一种能够大大提高分布式数据库的响应速度以及减小mysql服务器的压力的分布式数据库的缓存处理方法。
本发明解决上述技术问题的技术方案如下:一种分布式数据库的缓存处理方法,具体包括以下步骤:
步骤1:接收来自客户端的命令,判断是否是首次接收客户端的命令,如果是,执行步骤3;否则,执行步骤2;
步骤2:判断缓存中是否存在与客户端的命令匹配的缓存数据,如果存在,将匹配的缓存数据返回给客户端,结束;否则执行步骤3;
步骤3:解析mysql关系数据库管理系统数据包中的sql结构化查询语言语句,得到sql语句的类型;
步骤4:判断得到的sql语句的类型是否是查询类型,如果是,执行步骤5;否则,执行步骤8;
步骤5:加载缓存配置文件中的配置参数,并根据配置参数连接缓存,得到缓存中的所有key值;解析sql得到sql里的表名称;
步骤6:判断key值里是否包含sql里的表名称,如果是,根据key值获取对应的缓存结果,执行步骤7;否则,执行步骤9;
步骤7:将缓存结果返回给客户端,结束;
步骤8:对sql做路由得到路由结果,根据路由结果发送执行sql,获得mysql数据库返回的缓存结果,执行步骤7;
步骤9:将sql作为key值,将sql的执行结果集作为缓存结果存入缓存中,执行步骤7。
本发明的有益效果是:本发明支持在不增加硬件投入的条件下,提高系统并发处理能力;充分利用设备闲置时段的计算资源,提高系统资源利用率;利用低端服务器上负载分担数据库的存储空间进行数据处理;提升性能和安全性:可配置方式移动计算、移动数据进行云计算,提供并行计算的性能和效率;保障数据的一致性、完整性、可用性,提高数据的隔离型,为高并发系统奠定基础。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述步骤4与步骤8之间还包括以下步骤:
步骤a:判断sql语句是否是插入、更新或删除类型;如果是,执行步骤b;否则,执行步骤8;
步骤b:解析sql,获得sql中的表名称;
步骤c:根据表名称在缓存中查找包含所述表名称的key值,删除缓存中上述key值对应的数据,执行步骤8。
进一步,当有事务回滚时,清除缓存中的所有数据。
进一步,所述步骤5中加载缓存配置文件中的配置参数,所述配置参数包括ip地址、端口、缓存表等信息。
本发明所要解决的技术问题是提供一种能够大大提高分布式数据库的响应速度以及减小mysql服务器的压力的分布式数据库的缓存处理系统。
本发明解决上述技术问题的技术方案如下:一种分布式数据库的缓存处理系统,包括:接收模块、命令匹配模块、解析模块、判断模块、缓存解析模块、表名称判断模块、路由模块和反馈模块;
所述接收模块接收来自客户端的命令,判断是否是首次接收客户端的命令,如果是,将命令发送到解析模块;否则,将命令发送到命令匹配模块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京思特奇信息技术股份有限公司,未经北京思特奇信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410293656.7/2.html,转载请声明来源钻瓜专利网。