一种实现分布式存储的内存数据库系统及应用的制作方法

文档序号:6462648阅读:309来源:国知局
专利名称:一种实现分布式存储的内存数据库系统及应用的制作方法
技术领域
本发明涉及计算机通信领域,尤其涉及内存数据库技术领域。
背景技术
现在在通信信息领域,数据库是越来越重要了。但是随着业务量的增加, 数据库的性能无法达到要求正越来越成为一个让人头疼的问题。几种主流数据
库0racle、 DB2、 Sqlserver、 Sybase等,都会碰到性能无法满足要求的问题。 因为他们的数据库访问都只能做到毫秒级。对数据库进行优化对数据库访问数 率的提高的贡献最多只有30%。很多时候,都被迫修改业务流程,减少访问数据 库的次数。
为了提高性能,大家都公认使用内存数据库是一种很好的方式。因为内存数 据库的访问可以提高到微秒级别。 一些公司也都开发出了自己的内存数据库产 品,如Oracle的TimesTen等。但是这些厂家的内存数据库都有如下缺点
由于需要对自身数据库的sql语句原封不动的进行解析,从而造成内存数 据库的性能浪费性;
只支持自身生产的数据库产品,没有通用性。

发明内容
鉴于上述的分析,本发明旨在提供一种实现分布式存储的内存数据库系统 及应用,通过引入接口机,实现了内存数据库的分布式存储。 本发明的目的主要是通过以下技术方案实现的
本发明提供了一种实现分布式存储的 存数据库系统,所述系统包括接口机和多个内存数据库,其中,
所述接口机,用于存储真实数据库中各个数据库表和内存数据库的对应关
系,并且在接收到访问客户端的sql请求后,根据所述sql请求中的数据库表, 将所述sql请求分发到相应的内存数据库中;
所述内存数据库,用于从接口机查询得到自己负责的数据库表的信息,然 后从对应的真实数据库中读入该数据库表中的数据,并且,当接收到所述接口 机分发的sql请求时,所述内存数据库根据所述接口机分发的sql请求执行相应 的查询或非查询操作。
进一步地,所述系统还包括
控制台,用于根据用户的要求对整个内存数据库系统进行配置,并通过和 接口机交互使配置生效。
进一步地,所述内存数据库还包括 定时器,用于设定时间间隔;
同步单元,用过根据定时器设定的时间间隔,定时读出发生改动变化的数 据内容,并将其同步到相应的真实数据库中。
本发明还提供了 一种利用上述内存数据库系统实现数据分布式存储的方 法,所述方法包括
步骤A:内存数据库从接口机查询得到自己负责的数据库表的信息,然后 从对应的真实数据库中读入该数据库表中的数据;
步骤B:当接口机在接收到访问客户端的sql请求后,根据所述sql请求中 的数据库表及所述接口机存储的真实数据库中各个数据库表和内存数据库的对 应关系,将所述sql请求分发到相应的内存数据库中;步骤C:所述内存数据库根据接口机收分发得到的sql请求,对内存数据库 中的数据进行查询或非查询操作。
进一步地,所述步骤C具体包括
所述内存数据根据接口机分发得到的sql请求进行判断
如果是查询操作,则返回查询到的数据集,如果非查询操作,则对数据进
行相应的删除、修改、添加操作,并将将数据进行的删除、修改、添加操作的
具体信息写入文件进行记录。
进一步地,所述方法还包括
根据设定的时间间隔,定时读出经过非查询操作发生变化的数据,并将其 同步到相应的真实数据库中。
进一步地,所述步骤C中,当所述内存数据库收到接口机分发的多个sql 请求时,对所述sql请求依次串行处理。
进一步地,所述sql请求至少包括以下字段
操作类型、数据库表名、操作的具体信息、操作的流水号。
本发明有益效果如下
本发明通过引入接口机,实现了内存数据库的分布式存储,实现起来比较 筒单,并且成本比较低。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明 书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可 通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获
3曰
付》


图1为本发明实施例所述系统的结构示意图; 图2为本发明实施例所述方法的流程示意图3为本发明实施例所述方法中,内存数据库和真实数据库同步过程的流 程示意图。
具体实施例方式
下面结合附图来具体描述本发明的优先实施例,其中,附图构成本申请一
部分,并与本发明的实施例一起用于阐释本发明的原理。
首先结合附图对本发明实施例所述内存数据库系统进行详细说明。
如图1所示,图l为本发明实施例所述内存数据库系统的结构示意图,具
体可以包括接口机、控制台、多个内存数据库,下面对各个部分进行详细阐述。
接口机,主要负责sql消息的分发、存储过程的实现和整个内存数据库系统 的管理;具体的说就是,所述接口机中预先存储有真实数据库的多个数据库表 和内存数据库的对应关系,当所述接口机在接收到访问客户端的sql请求后,根 据该sql请求中的涉及到的数据库表,将该sql请求分发到相应的内存数据库。
内存数据库,多个内存数据库对应多个真实数据库,其主要负责真实数据 库的多张数据库表的访问,即当内存数据库启动的时候,所述内存数据库通过 从接口机存储的真实数据库的多个数据库表和内存数据库的对应关系进行查 询,得到自己负责的数据库表的信息,然后从这些数据库表对应的真实数据库 中读入这些数据库表的数据内容;并且,当所述内存数据库收到接口机分发的 sql请求后,根据该sql请求的信息进行判断如果是查询操作,则返回查询需 要的数据集,如果是非查询操作,则根据sql请求的操作类型对数据作相应的更改,然后将该数据的修改内容以一定格式写入文件。
其中,所述sql消息至少包括如下字段1、操作类型,如添加、删除、 修改、查询、执行存储过程;2、数据库表名;3、操作的具体信息添加、删 除、修改、查询、执行存储过程的时候所需要的信息,如添加的时候,添加的 字段的值,删除的时候删除记录的特征等;4、操作的流水号,即每次操作被赋 予的一个ID。
控制台,用户通过所述控制台对整个内存数据库系统进行配置,并通过和 接口机交互使配置生效;配置内容包括内存数据库的IP、将真实数据库中的哪 些数据库表的信息提取进内存数据库系统进行管理、以及一些其他的相关参数。
下面结合附图对利用本发明实施例所述系统实现数据分布式存储的方法进 4亍详细i兌明。
如图2所示,图2为所述方法的流程示意图,具体可以包括以下步骤 步骤201:接口机收到访问客户端的sql请求;
步骤202:接口机根据及时到的sql请求中涉及到的数据库表分发sql请求 到内存数据库;
步骤203:收到sql请求的内存数据库判断该sql请求是否是查询操作,如 果是查询操作,执行步骤206;如果是非查询操作,执行步骤204;
步骤204:对内存数据库中的数据进行相应的修改、删除、添加等操作,然 后将数据进行的删除、修改、添加操作的具体信息写入预定的文件进行记录, 然后执行步骤205;
步骤205:内存数据库将进行非查询操作的结果发送给接口机;
步骤206:根据sql请求中查询内容在内存数据库中查询相应的数据,并将查询到的结果返回给接口机;
步骤207:接口机将接收到的查询操作的结果或者非查询操作的结果返回给 访问客户端。
本发明实施例所述方法还包括内存数据库定时将发生修改、删除、添加 等非查询操作的数据通过访问真实数据库,同步到真实数据库中,具体如图3 所示,可以包括以下步骤
步骤301:内存数据库根据sql请求的非查询操作,对其中的数据进行了修 改、删除或添加等操作;
步骤302:内存数据库将发生修改、删除或添加等操作的数据写入预定的文 件中;
步骤303:内存数据库定时扫描步骤302中的文件,并读出文件中的内容, 将其中的数据通过访问真实数据库的方式同步到相应的真实数据库中。
综上所述,本发明实施例提供了 一种实现分布式存储的内存数据库系统及 应用,通过引入接口机,实现了内存数据库的分布式存储,实现起来十分简单, 具有以下优点
由于是和真实数据库中的部分数据库表对应,所以在现场施工的时候不用 新增设备,直接在真实数据库的设备上实现就可以了;
由于接口机收到的sql请求已经是由访问客户端将数据的处理逻辑进行了封 装,所以不再需要sql语句的解析过程,这样就不会造成内存数据库的性能浪费 问题;
由于各个单独的内存数据库,对接收到的非查询操作都是串行处理,且每 次操作都只在自己单独负责的数据库表中执行,所以就成功地避免了数据争抢导致死锁、脏读、脏写的发生,内存数据库也不用为自己负责的数据库表建立 锁。
对数据修改的记录通过写文件的方式,这样就可以避免系统异常或者宕机 以后出现内存数据库和真实数据库数据不同步的现象发生。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局 限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易 想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护 范围应该以权利要求书的保护范围为准。
权利要求
1、一种实现分布式存储的内存数据库系统,其特征在于,包括接口机和多个内存数据库,其中,所述接口机,用于存储真实数据库中各个数据库表和内存数据库的对应关系,并且在接收到访问客户端的sql请求后,根据所述sql请求中的数据库表,将所述sql请求分发到相应的内存数据库中;所述内存数据库,用于从接口机查询得到自己负责的数据库表的信息,然后从对应的真实数据库中读入该数据库表中的数据,并且,当接收到所述接口机分发的sql请求时,所述内存数据库根据所述接口机分发的sql请求执行相应的查询或非查询操作。
2、 根据权利要求1所述的系统,其特征在于,所述系统还包括 控制台,用于根据用户的要求对整个内存数据库系统进行配置,并通过和接口机交互使配置生效。
3、 根据权利要求1或2的系统,其特征在于,所述内存数据库还包括 定时器,用于设定时间间隔;同步单元,用过根据定时器设定的时间间隔,定时读出发生改动变化的数 据内容,并将其同步到相应的真实数据库中。
4、 利用权利要求1所述的内存数据库系统实现数据分布式存储的方法,所 述方法包括步骤A:内存数据库从接口机查询得到自己负责的数据库表的信息,然后 从对应的真实数据库中读入该数据库表中的数据;步骤B:当接口机在接收到访问客户端的sql请求后,根据所述sql请求中 的数据库表及所述接口机存储的真实数据库中各个数据库表和内存数据库的对应关系,将所述sql请求分发到相应的内存数据库中;步骤C:所述内存数据库根据接口机收分发得到的sql请求,对内存数据库 中的数据进行查询或非查询操作。
5、 根据权利要求4所述的方法,其特征在于,所述步骤C具体包括 所述内存数据根据接口机分发得到的sql请求进行判断 如果是查询操作,则返回查询到的数据集,如果非查询操作,则对数据进行相应的删除、修改、添加操作,并将将数据进行的删除、修改、添加操作的 具体信息写入文件进行记录。
6、 根据权利要求4或5所述的方法,其特征在于,所述方法还包括 根据设定的时间间隔,定时读出经过非查询操作发生变化的数据,并将其同步到相应的真实凝:据库中。
7、 根据权利要求4或5所述的方法,其特征在于,所述步骤C中,当所述 内存数据库收到接口机分发的多个sql请求时,对所述sql请求依次串行处理。
8、 根据权利要求4或5所述的方法,其特征在于,所述sql请求至少包括 以下字,殳操作类型、数据库表名、操作的具体信息、操作的流水号。
全文摘要
本发明公开了一种实现分布式存储的内存数据库系统及应用,其中,所述系统包括接口机和多个内存数据库,所述接口机用于存储真实数据库中各个数据库表和内存数据库的对应关系,并且在接收到访问客户端的sq1请求后,根据所述sq1请求中的数据库表,将所述sq1请求分发到相应的内存数据库中;所述内存数据库用于从接口机查询得到自己负责的数据库表的信息,然后从对应的真实数据库中读入该数据库表中的数据,并且,当接收到所述接口机分发的sq1请求时,所述内存数据库根据所述接口机分发的sq1请求执行相应的查询或非查询操作。本发明通过引入接口机,实现了内存数据库的分布式存储,实现起来比较简单,并且成本比较低。
文档编号G06F17/30GK101587476SQ20081009763
公开日2009年11月25日 申请日期2008年5月22日 优先权日2008年5月22日
发明者冯宇翔 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1