[发明专利]分配数据库操作请求的系统在审
申请号: | 201210483344.3 | 申请日: | 2012-11-23 |
公开(公告)号: | CN102982145A | 公开(公告)日: | 2013-03-20 |
发明(设计)人: | 朱超;陈超;桂勇哲;代兵;王超 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F11/20 |
代理公司: | 北京市中伦律师事务所 11410 | 代理人: | 程义贵;张思悦 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分配 数据库 操作 请求 系统 | ||
技术领域
本发明涉及数据库技术,尤其涉及一种分配数据库操作请求的系统。
背景技术
随着计算机网络的快速发展,出现了具有大量用户的网络应用,这些网络应用需要存储大量的用户数据以及相关数据。先前的单台数据存储服务器的数据存储方式已经不能满足当前网络应用的数据存储要求。目前数据库在使用中普遍采用主-从架构(一般来说,主数据库有一个,从数据库有多个),从数据库只承担读操作,所有的写操作都由主数据库来执行。为了保证数据的一致性,从数据库会不断地从主数据库同步最新写入的数据到从数据库上。应用程序员需要根据数据库操作的读写类型,分别将数据库操作语句发往主数据库或从数据库,增加了应用程序员的负担,提高了开发成本。
另外,从主数据库到从数据库的数据同步不是完全实时的,而是存在着一定的延迟时间,这就带来了问题。设想以下情况:应用程序向数据库写一条数据,如上所述,该数据会被写入到主数据库中,然后马上又要读出该数据,读操作由从数据库执行,但此时从数据库尚未来得及把该数据由主数据库同步到本地,读操作的执行结果必然是未找到该数据或是读到了该数据的旧版本,这就造成了错误发生。除此之外,如果某台数据库服务器发生故障,而程序仍然向不可用的机器导入请求,就会发生错误,此时只能通过修改程序来解决,维护成本很高。
发明内容
鉴于上述问题,提出了本发明,以便提供一种克服上述问题或者至少部分地解决上述问题的分配数据库操作请求的系统。
依据本发明的一个方面,提供了一种分配数据库操作请求的系统,包括:分配数据库操作请求的设备;一个或者多个应用程序服务器,适于向该设备发送对于数据库的操作请求;以及主数据库服务器以及一个或者多个从数据库服务器,适于响应于该设备的检查,向该设备返回其状态,并且接收该设备分配的操作请求;其中,所述分配数据库操作请求的设备包括:网络接口,适于接收对于数据库的操作请求;操作请求解析器,适于解析该操作请求,以检测该操作请求中的类型注释,确定与该类型注释相对应的数据库服务器;以及操作请求分配器,适于将该操作请求分配给所确定的数据库服务器。
可选地,在根据本发明的实施例的分配数据库操作请求的设备中,当该操作请求解析器未检测到该操作请求中的类型注释时,解析该操作请求,以判断该操作请求的类型,确定与该操作请求的类型相对应的数据库服务器;并且该操作请求分配器将该操作请求分配给所确定的与该操作请求的类型相对应的数据库服务器。
可选地,在根据本发明的实施例的分配数据库操作请求的设备中,该操作请求的类型包括写操作和读操作。
可选地,在根据本发明的实施例的分配数据库操作请求的设备中,该数据库服务器包括主数据库服务器和从数据库服务器,对应于写操作的数据库服务器是主数据库服务器,对应于读操作的数据库服务器是从数据库服务器。
可选地,所述分配数据库操作请求的设备还包括数据库检查器,适于检查该数据库服务器;并且该操作请求分配器根据检查结果将该操作请求分配给相应的数据库服务器或者返回错误提示。
本发明提供了上述分配数据库操作请求的系统。根据本发明的实施例,可以解析接收到的对于数据库的操作请求,以检测操作请求中的类型注释,并根据类型注释,确定相对应的数据库服务器,并向其分配该操作请求。这样,应用开发人员通过利用例如在诸如SQL语句之类的操作请求中本来没有意义的注释语句,就可以确定要将操作请求分配给具体数据库服务器,从而极大地提高了应用开发的灵活性。对于实时性要求较高的读操作,只需要简单地在操作请求中添加表示主数据库类型的类型注释,就能自动地将该操作请求分配给主数据库服务器,避免发生找不到所请求的数据或者读取到该数据的旧版本的问题。
另外,根据本发明的实施例,在确定了要将操作请求分配到的数据库服务器之后,还可以检查该数据库服务器,并根据检查结果将该操作请求分配给相应的数据库服务器或者返回错误提示。这样,在数据库服务器集群中的某一台或者多台数据库服务器发生故障时,可以自动检测到该故障,不再把操作请求分配给存在故障的数据库服务器。其中,在主数据库服务器出现故障的情况下,写操作无法执行,但读操作不受影响;而在从数据库服务器出现故障的情况下,可以转而将读操作分配给主数据库服务器,从而读写操作均不受影响。这一过程对于应用程序完全透明,应用程序员不在不需要对应用程序作出任何修改,降低了应用程序的维护成本。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210483344.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种楔块式油缸驱动夹持机构
- 下一篇:一种单缸驱动夹持机构