[发明专利]一种分布式内存数据库访问系统及方法有效
申请号: | 201410601440.2 | 申请日: | 2014-10-30 |
公开(公告)号: | CN104333512B | 公开(公告)日: | 2017-07-28 |
发明(设计)人: | 王金山 | 申请(专利权)人: | 北京思特奇信息技术股份有限公司 |
主分类号: | H04L12/741 | 分类号: | H04L12/741;H04L29/08;G06F17/30 |
代理公司: | 北京轻创知识产权代理有限公司11212 | 代理人: | 杨立 |
地址: | 100086 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 内存 数据库 访问 系统 方法 | ||
技术领域
本发明涉及数据库技术领域,尤其涉及一种分布式内存数据库访问系统及方法。
背景技术
传统的分布式数据库系统,一般采用代理服务器的方式,客户端发送SQL请求给代理服务器,代理服务器对SQL语句进行解析,然后根据路由规则,将SQL请求分发到相关的若干个数据库节点上执行;代理服务器汇总各个节点的处理结果,再转发给客户端,从而实现对分布式数据库的增删改查等操作。
对于内存数据库来讲,对内存数据的操作是非常快的,如果通过代理服务器来访问内存数据库,由于涉及多次网络通信,消耗的时间要远比直接访问内存大得多,这样将无法充分发挥出内存数据库的速度优势。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种分布式内存数据库访问系统。客户端的SQL操作能够不通过代理服务器,直接根据路由规则访问各个内存数据库节点,减少网络通信的消耗;同时客户端又不需要维护复杂的路由规则。
本发明解决上述技术问题的技术方案如下:一种分布式内存数据库访问系统,包括内存数据库节点集群、客户端和代理服务器;
所述内存数据库节点集群,其用于在每个内存数据库节点上存放所有内存数据库节点的节点信息和路由规则;
所述客户端,其用于向代理服务器发送节点信息下载请求,接收代理服务器反馈的节点信息并保存,还用于根据节点信息登录任一内存数据库节点获取路由规则,以及对待执行的SQL语句进行解析,根据解析结果及路由规则确定所述SQL语句的执行节点,将SQL语句直接在执行节点上执行;
所述代理服务器,其用于监听是否有客户端的节点信息下载请求,当监听到节点信息下载请求时,其登录任一内存数据库节点获取节点信息发送给客户端。
本发明的有益效果是:本发明将节点信息及路由规则统一保存在各内存数据库节点中,客户端不需要维护这些信息,避免由于数据不一致造成路由错误;同时,客户端不用通过统一的代理服务器来执行SQL操作,直接在相应的节点上进行SQL操作,可以有效降低网络通信的时间消耗,极大的提高了访问效率;另外,即使代理服务器在生产过程中发生异常,客户端也不会受到影响。本发明可有效保障数据一致性,降低网络通信的时间消耗;降低对代理服务器的依赖性。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述客户端包括客户端程序模块和客户端接口模块,所述客户端程序模块通过调用客户端接口模块实现客户端功能;所述客户端接口模块包括节点信息下载单元、节点路由加载单元、路由解析单元、SQL解析单元、执行单元和结果合并单元;
所述节点信息下载单元,其用于根据客户端程序模块的调用生成节点信息下载请求并发送给代理服务器,还用于接收代理服务器反馈的节点信息并保存;
所述节点路由加载单元,其用于根据节点信息登录任一内存数据库节点获取路由规则并发送给路由解析单元;
所述路由解析单元,其用于对接收的路由规则进行解析,获取路由信息,将路由信息发送给执行单元;
所述SQL解析单元,其用于对待执行的语句进行解析,将SQL解析结果发送给执行单元;
所述执行单元,其用于根据接收的路由信息及SQL解析结果确认所述SQL语句的执行节点,将该SQL操作在该执行节点上执行;
所述结果合并单元,其用于接收反馈的执行结果并进行整合合并。
进一步,所述代理服务器包括消息监听模块和节点信息获取模块;
所述消息监听模块,其用于实时监听是否有客户端发送的节点信息下载请求,当收到节点信息下载请求时调用节点信息获取模块;
所述节点信息获取模块,其用于根据消息监听模块的调用,登录任一内存数据库节点获取节点信息,并发送给客户端。
进一步,所述客户端还用于在连接代理服务器失败时,判断本地是否存在已存储的历史节点信息文件,如果存在获取节点信息,否则结束本次流程。
采用上述进一步技术方案的有益效果:客户端在首次连接代理服务器时,已经将节点信息保存在本地文件中了,即便之后代理服务器发生异常,客户端再次启动时也不会受到任何影响,仍然可以通过之前保存的本地文件,获取节点信息和路由规则。
进一步,每个内存数据库节点以系统表的方式存放所有内存数据库节点的节点信息和路由规则。
进一步,所述客户端接收到代理服务器反馈的节点信息的同时断开与代理服务器的连接。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京思特奇信息技术股份有限公司,未经北京思特奇信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410601440.2/2.html,转载请声明来源钻瓜专利网。