著录项信息
专利名称 | 基于WEB应用的数据库系统及其数据管理方法 |
申请号 | CN200810241848.8 | 申请日期 | 2008-12-23 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2009-07-29 | 公开/公告号 | CN101493826 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 中兴通讯股份有限公司 | 申请人地址 | 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中兴通讯股份有限公司 | 当前权利人 | 中兴通讯股份有限公司 |
发明人 | 汪峰来;余涛;王瑞平 |
代理机构 | 深圳鼎合诚知识产权代理有限公司 | 代理人 | 任葵 |
摘要
一种基于WEB应用的数据库系统,包括以磁盘方式读写的数据库服务器和分布式内存数据库服务器,分布式内存数据库服务器通过数据同步模块与数据库服务器中被读取的数据进行数据同步;分布式内存数据库服务器还包括:内存数据库Manager服务器和一个以上的内存数据库Agent服务器;内存数据库Manager服务器完成内存资源的统一调度,实现数据库服务器和分布式内存数据库之间数据的同步,并提供数据访问接口给所述WEB应用服务器;所述内存数据库Agent服务器存放具体数据。本发明采用分布式内存数据库,共享服务器内存资源,实现了内存数据库的负载均衡,提高了数据响应的及时性和应用程序的可扩展性。
1.一种基于WEB应用的数据库系统,通过WEB应用服务器(102)的控制支持WWW用户终端(101)对所述数据库系统的访问;其特征在于,
包括以磁盘方式读写的数据库服务器(103)和分布式内存数据库服务器(11),所述分布式内存数据库服务器(11)通过其自身的数据同步模块与所述数据库服务器(103)中被读取的数据进行数据同步;
所述分布式内存数据库服务器(11)进一步包括:内存数据库Manager服务器(104)和一个或者一个以上的内存数据库Agent服务器(105);所述内存数据库Manager服务器(104)完成内存资源的统一调度,实现所述数据库服务器(103)和分布式内存数据库(11)之间数据的同步,并提供数据访问接口给所述WEB应用服务器(102);所述内存数据库Agent服务器(105)分布式存放具体数据。
2.根据权利要求1所述的基于WEB应用的数据库系统,其特征在于,所述分布式内存数据库服务器(11)在结构上进一步包括相互协调工作的如下模块:
心跳模块,用于所述内存数据库Manager服务器(104)与所述内存数据库Agent服务器(105)之间的链路检查,并向所述内存数据库Agent服务器(105)定时上报状态信息;
调度模块,用于所述内存数据库Manager服务器(104)对所述内存数据库Agent服务器(105)的资源根据所述心跳模块上报的状态信息进行统一调度;
数据同步模块,用于监测数据的使用情况,配置同步到所述内存数据库Agent服务器(105)中的数据;
数据访问模块,用于所述内存数据库Manager服务器(104)为所述WEB应用服务器(102)访问数据提供接口。
3.根据权利要求2所述的基于WEB应用的数据库系统,其特征在于,所述分布式内存数据库服务器(11)通过对用户请求调用的数据库表进行同步,支持查询所需要的具体数据。
4.根据权利要求2所述的基于WEB应用的数据库系统,其特征在于,所述数据同步模块对使用频繁、数据处理复杂的数据进行同步,对使用频率小、没有复杂数据处理要求的数据根据需要进行有选择的同步。
5.根据权利要求2所述的基于WEB应用的数据库系统,其特征在于,所述数据同步模块为数据库表设置相应的标志位,记录所述数据库表的使用频率或者上次使用距现在的时长,并根据所述标志位删除使用频率低、上次使用距现在已超过时长限制的数据库表。
6.根据权利要求2所述的基于WEB应用的数据库系统,其特征在于,所述数据同步模块定时检查所述内存数据库Agent服务器(105)中的数据库表是否与数据库服务器(103)的对应数据库表一致,不一致则更新所述内存数据库Agent服务器(105)。
7.根据权利要求6所述的基于WEB应用的数据库系统,其特征在于,所述分布式内存数据库(11)提供数据更新接口,当所述数据库服务器(103)中的数据库表发生变化时,调用所述数据更新接口修改所述内存数据库Agent服务器(105)的对应数据库表。
8.一种基于WEB应用的数据库系统的数据管理方法,通过WEB应用服务器(102)的控制支持WWW用户终端(101)对所述数据库系统的访问;其特征在于,
所述WEB应用服务器(102)把接收到用户请求的数据库服务器(103)中的数据同步到分布式内存数据库服务器(11)中;
所述分布式内存数据库服务器(11)中的内存数据库Manager服务器(104)统一调度内存资源,把同步的具体数据分布式存放在一个或者一个以上的内存数据库Agent服务器(105)中,并提供数据访问接口给所述WEB应用服务器(102),以服务后续用户的数据请求。
9.根据权利要求8所述的基于WEB应用的数据库系统的数据管理方法,其特征在于:
所述内存数据库Manager服务器(104)定时检查与所述内存数据库Agent服务器(105)之间的链路;
所述内存数据库Manager服务器(104)对所述内存数据库Agent服务器(105)的资源根据相互之间的链路状态信息进行统一调度。
10.根据权利要求9所述的基于WEB应用的数据库系统的数据管理方法,其特征在于:
所述内存数据库Manager服务器(104)对所述内存数据库Agent服务器(105)的资源的统一调度是,所述分布式内存数据库服务器(11)的数据在后台多个服务器节点上分布式存储,所述内存数据库Manager服务器(104)实时监控各节点运行状况,在某一服务器节点出现故障时,将数据自动调度转移到其它数据库节点上。
基于WEB应用的数据库系统及其数据管理方法\n[0001] 技术领域 本发明涉及一种基于WEB应用的数据库系统及其数据管理方法,尤其涉及分布式内存数据库系统及其运行方法在WEB应用程序中的应用。\n[0002] 背景技术 WEB应用程序为用户提供信息和服务,是整个网络的主体,其数据响应的及时性和可扩展性是影响性能的关键指标。所谓及时性是指WEB服务器端响应客户端的速度;所谓可扩展性是指随着并发用户的增多,WEB应用程序保持其性能不降低的能力。\n[0003] 在数据库系统中,磁盘的I/O速度是限制系统处理速度的关键,随着并发用户的增多,WEB服务器访问数据库服务器的次数增加,存取的数据量也会增加,当并发用户超过一定数量,WEB服务器就会发生不能和数据库连接的现象。\n[0004] 分布式内存数据库技术结合分布式技术和内存数据库技术的优点,使得用户能够透明的使用局域网上的内存资源。由于该资源的存取速度要远远超过普通数据库软件的磁盘操作速度,因此,不但能够共享局域网的内存资源,还可以实现高效的数据存储管理。\n[0005] 传统的WEB应用通过与数据库的直接数据交互,每一次访问都对应着磁盘I/O操作,当并发用户量增大时必将出现系统处理的瓶颈。内存数据库操作的是服务器的内存,该资源存取的速度要远远超过普通数据库的磁盘操作速度。分布式内存数据库可以允许不同主机上的多个用户同时访问这个缓存系统,不仅解决了共享内存只能是单机的弊端,同时也降低了数据库检索的压力。\n[0006] 发明内容 本发明的目的在于公开一种基于WEB应用的分布式内存数据库系统及其运行方法,以解决现有B/S(Browser/Server,浏览器/服务器)架构中并发访问数据库次数多、数据量大,造成WEB应用响应不及时、WEB应用性能降低、系统容量瓶颈的问题。\n[0007] 本发明公开了一种基于WEB应用的数据库系统,通过WEB应用服务器(102)的控制支持WWW用户终端(101)对所述数据库系统的访问;\n[0008] 包括以磁盘方式读写的数据库服务器(103)和分布式内存数据库服务器(11),所述分布式内存数据库服务器(11)通过其自身的数据同步模块与所述数据库服务器(103)中被读取的数据进行数据同步;\n[0009] 所述分布式内存数据库服务器(11)进一步包括:内存数据库Manager服务器(104)和一个或者一个以上的内存数据库Agent服务器(105);所述内存数据库Manager服务器(104)完成内存资源的统一调度,实现所述数据库服务器(103)和分布式内存数据库(11)之间数据的同步,并提供数据访问接口给所述WEB应用服务器(102);所述内存数据库Agent服务器(105)存放具体数据。\n[0010] 本发明公开的基于WEB应用的数据库系统,还包括如下从属技术特征:\n[0011] 所述分布式内存数据库服务器(11)在结构上进一步包括相互协调工作的如下模块:\n[0012] 心跳模块,用于所述内存数据库Manager服务器(104)与所述内存数据库Agent服务器(105)之间的链路检查,并向所述内存数据库Agent服务器(105)定时上报状态信息;\n[0013] 调度模块,用于所述内存数据库Manager服务器(104)对所述内存数据库Agent服务器(105)的资源根据所述心跳模块上报的状态信息进行统一调度;\n[0014] 数据同步模块,用于监测数据的使用情况,配置同步到所述内存数据库Agent服务器(105)中的数据;\n[0015] 数据访问模块,用于所述内存数据库Manager服务器(104)为所述WEB应用服务器(102)访问数据提供接口。\n[0016] 所述分布式内存数据库服务器(11)通过对用户请求调用的数据库表进行同步,支持查询所需要的具体数据。\n[0017] 所述数据同步模块对使用频繁、数据处理复杂的数据进行同步,对使用频率小、没有复杂数据处理要求的数据根据需要进行有选择的同步。\n[0018] 所述数据同步模块为数据库表设置相应的标志位,记录所述数据库表的使用频率或者上次使用距现在的时长,并根据所述标志位删除使用频率低、上次使用距现在已超过时长限制的数据库表。\n[0019] 所述数据同步模块定时检查所述内存数据库Agent服务器(105)中的数据库表是否与数据库服务器(103)的对应数据库表一致,不一致则更新所述内存数据库Agent服务器(105)。\n[0020] 所述分布式内存数据库(11)提供数据更新接口,当所述数据库服务器(103)中的数据库表发生变化时,调用所述数据更新接口修改所述内存数据库Agent服务器(105)的对应数据库表。\n[0021] 本发明还公开了一种基于WEB应用的数据库系统的数据管理方法,通过WEB应用服务器(102)的控制支持WWW用户终端(101)对所述数据库系统的访问;\n[0022] 所述WEB应用服务器(102)把接收到用户请求的数据库服务器(103)中的数据同步到分布式内存数据库服务器(11)中;\n[0023] 所述分布式内存数据库服务器(11)中的内存数据库Manager服务器(104)统一调度内存资源,把同步的具体数据存放在一个或者一个以上的内存数据库Agent服务器(105)中,并提供数据访问接口给所述WEB应用服务器(102),以服务后续用户的数据请求。\n[0024] 本发明公开的基于WEB应用的数据库系统的数据管理方法,还包括如下从属技术特征:\n[0025] 所述内存数据库Manager服务器(104)定时检查与所述内存数据库Agent服务器(105)之间的链路;\n[0026] 所述内存数据库Manager服务器(104)对所述内存数据库Agent服务器(105)的资源根据相互之间的链路状态信息进行统一调度。\n[0027] 所述内存数据库Manager服务器(104)对所述内存数据库Agent服务器(105)的资源的统一调度是,所述分布式内存数据库服务器(11)的数据在后台多个服务器节点上分布式存储,所述内存数据库Manager服务器(104)实时监控各节点运行状况,在某一服务器节点出现故障时,将数据自动调度转移到其它数据库节点上。\n[0028] 本发明公开的基于WEB应用的分布式内存数据库系统及其运行方法,采用内存数据库提高数据响应的及时性和WEB应用程序的可扩展性,减少WEB应用服务器和数据库服务器直接交互的通讯量,降低了磁盘I/O读写次数。由于采用了分布式内存数据库,可以共享服务器的内存资源,由于通过内存数据库Manager服务器对内存数据库Agent服务器的统一调度,实现了内存数据库的负载均衡。\n附图说明\n[0029] 图1是本发明的一种WEB应用系统的结构示意图。\n[0030] 图2是本发明的一种分布式内存数据库的结构示意图。\n[0031] 图3是本发明的一种基于WEB应用的分布式内存数据库运行方法流程图。\n[0032] 图4是本发明的一种更新内存数据库的数据的流程图。\n[0033] 具体实施方式 下面结合附图和具体实施方式对本发明做进一步详细说明。\n[0034] 本发明针对WEB应用中在并发用户数量较大情况下存在的诸多问题,提供了一种基于WEB应用的分布式内存数据库的实现方法及系统,提高了数据读取速度,同时分布式的结构为系统提供了较强的可扩展性。\n[0035] 请参阅图1所示为WEB应用系统的结构示意图。\n[0036] WEB应用系统100采用浏览器/服务器(B/S)架构,WWW用户终端101通过相应的接入设备连接到Internet。在服务器端,包括WEB应用服务器102、数据库服务器103、内存数据库Manager服务器104、内存数据库Agent服务器105。WEB应用服务器102基于WEB、WAP等技术为用户终端提供媒体导航、信息查询等功能。WWW用户终端101一般通过WEB、WAP等浏览器访问WEB应用系统的导航网页,寻找感兴趣的内容,体验WEB应用系统提供的业务及实现对WEB应用系统数据库服务器的数据的增加、删除或者更新。\n[0037] 当WWW用户终端101登陆WEB应用服务器102,发起操作请求时,WEB应用服务器\n102接收到该请求需根据该请求实时对数据库服务器103中的数据进行读取。\n[0038] 图1中的内存数据库Manager服务器104和内存数据库Agent服务器105的组合就是分布式内存数据库服务器11,其中内存数据库Manager服务器104完成内存资源的统一调度,并为WEB应用服务器102提供数据访问接口,内存数据库Agent服务器105可以配置多个,用于存放具体数据。在这里使用分布式内存数据库的目的是为了提高访问的速度,对于变更的数据分布式内存数据库服务器只负责同步,而由WEB应用服务器102直接更新数据库服务器103中的数据。\n[0039] 分布式内存数据库服务器11对WEB应用服务器102从数据库服务器103中读取的数据进行数据同步。即,将用户请求调用的数据库表同步在分布式内存数据库Agent服务器105中,并在其中查询所需要的具体数据。\n[0040] 分布式内存数据库服务器11结构示意图如图2所示,包括:数据同步模块111、心跳模块112、调度模块113以及数据访问模块114。\n[0041] 数据同步模块111,用于比较所述数据库服务器103与所述分布式内存数据库中数据的差异,将需要增加、修改及删除的数据进行同步;心跳模块112,用于在分布式内存数据库服务器11中的所述内存数据库Manager服务器与所述内存数据库Agent服务器之间进行心跳验证,检查两者之间的链路状态,获取所述内存数据库Agent服务器的资源信息;数据访问模块114,用于所述分布式内存数据库服务器11为所述WEB应用服务器102访问数据提供接口。分布式内存数据库服务器11的数据同步模块111设置数据配置策略、数据删除策略、数据更新策略,分布式内存数据库服务器11根据上述规则执行对各内存数据库的增加、删除和更新。\n[0042] 其中,数据配置策略用于增加数据库表至分布式内存数据库中,数据配置策略可以根据WEB应用系统的需要进行动态调整,将WEB应用系统中经常用到,用户发起的请求中频繁调用的数据库表通过对数据库服务器103的一次I/O操作,读取至分布式内存服务器\n11中。当后续用户发起对所述数据库表的调用请求时,直接从分布式内存服务器11中读取,而无需重复进行数据库服务器103的I/O操作。\n[0043] 分布式内存数据库启动后,数据同步模块111将根据数据配置策略将读取需要的数据库表数据,通过调度模块113写入内存数据库Agent服务器105中。\n[0044] 数据删除策略采用的是最近最少使用(Least Recently Used,LRU)原则,也就是说,该数据删除策略对应设置有一使用频率的底限或者是上次使用距现在的时长限制。数据同步模块监测数据使用频率,对于使用频率低、上次使用距现在已超过时长限制的数据库表,将进行删除处理。如果用户此时访问这部分数据,将直接从数据库服务器中读取。\n[0045] 数据更新策略用于保持内存数据库与数据库服务器数据的同步。其包括有主动同步与被动同步两种方式。主动同步方式是指分布式内存数据库服务器11的数据同步模块\n111启动定时更新服务程序,定时扫描内存数据库Agent服务器中的数据库表是否与数据库服务器103的对应数据库表一致。对于数据库服务器103中发生变化的数据库数据,将数据库服务器103的数据更新至内存数据库Agent服务器105中。被动同步是分布式内存数据库提供数据更新接口,当数据库服务器中的数据库表发生变化时,调用这个数据更新接口,将更新的结果反馈到内存数据库Agent服务器105中。\n[0046] 如图3所示是本发明基于WEB应用的分布式内存数据库运行方法流程图。图中:\n[0047] 步骤301,WEB应用服务器实时更新数据库服务器中的数据,完成数据库服务器数据的增加、删除、修改;\n[0048] 步骤302,内存数据库Manager启动链路心跳检查,获取内存数据库Agent服务器的链路状态及资源信息;\n[0049] 步骤303,数据同步模块111提供了需要同步到内存数据库的数据,内存数据库Manager服务器执行内存资源统一调度,根据心跳模块112的结果将上述数据分配给内存数据库Agent服务器;\n[0050] 对于新增的数据,内存数据库Manager服务器为其分配内存资源,同时保存该数据与内存数据库Agent服务器的对应关系;对于更新的数据,根据上述对应关系查找到该数据记录,将该数据进行更新;对于删除的数据,根据上述对应关系查找该数据记录,将该数据进行删除,同时删除该对应关系。\n[0051] 步骤304,内存数据库Agent服务器提供数据同步接口,内存数据库Manager服务器根据统一调度的结果调用上述同步接口,将数据库服务器中的数据同步到内存数据库Agent服务器中;\n[0052] 步骤305,数据访问模块114根据不同的索引提供数据访问接口;\n[0053] 用户终端对于数据的需求是多种多样的,可能是包括各种索引的排序、统计等。数据访问模块114根据各个索引封装访问内存数据库服务器中的数据,使得用户可以根据需求查询数据,并将符合条件的数据返回给用户终端。\n[0054] 步骤306,WWW用户终端利用所述数据访问接口,向内存数据库Manager服务器发起数据查询请求,内存数据库Manager服务器根据内存数据库Agent服务器与数据库表的对应关系,获取相应数据,返回给用户终端。\n[0055] 如图4所示是本发明更新内存数据库的数据的流程图,在图3所示的步骤304与步骤305之间还可以包括:\n[0056] 步骤3041,根据数据更新策略、数据删除策略以及数据配置策略判断当前所需进行的操作,如果是更新,执行步骤3042,如果是删除,执行步骤3043,如果是增加,执行步骤\n3044;\n[0057] 步骤3042,对于需要更新的数据,查找内存数据库Agent服务器与数据库表的对应关系,获取相应数据进行更新;\n[0058] 步骤3043,对于需要删除的数据,利用内存数据库Agent服务器与数据库表的对应关系,获取相应数据进行删除,同时删除该对应关系;\n[0059] 步骤3044,对于需要增加的数据,根据调度结果,查找可用的内存资源,增加数据到内存数据库Agent服务器中,并保存保存该数据与内存数据库Agent服务器的对应关系。\n[0060] 与传统的WEB应用服务器直接访问数据库服务器相比,分布式内存数据库技术具有以下优点:\n[0061] 1、实现了内存数据库在后台多个服务器节点上分布式存储,分布式内存数据库系统实时监控各节点运行状况,某一服务器节点出现故障时,系统实现自动调度处理,将数据转移到其它数据库节点上,增强了系统的稳定性;\n[0062] 2、减少WEB应用服务器与数据库服务器直接交互的通讯量,降低磁盘I/O读写次数,提高了系统的处理效率。\n[0063] 可见,本发明采用以空间换取时间的方式,提高数据响应的及时性和WEB应用程序的可扩展性。\n[0064] 当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。\n[0065] 本发明提供了一种基于WEB应用的分布式内存数据库运行方法,用于包括WEB应用服务器以及数据库服务器的WEB应用系统,包括:\n[0066] 步骤一,设置一到多个内存数据库Agent服务器;\n[0067] 步骤二,设置内存数据库Manager服务器,对所述内存数据库Agent服务器进行统一调度;\n[0068] 步骤三,所述内存数据库Manager服务器根据数据同步策略将所述数据库服务器中的数据同步到所述内存数据库Agent服务器中;\n[0069] 步骤四,所述内存数据库Manager服务器提供数据访问接口。\n[0070] 所述步骤一进一步包括:所述内存数据库Agent服务器与所述内存数据库Manager服务器保持心跳消息,定时向所述内存数据库Manager服务器上报内存资源、CPU占用率等系统资源信息。\n[0071] 所述步骤二进一步包括:所述内存数据库Manager服务器管理所述内存数据库Agent服务器的系统资源信息,根据这些资源信息对所述内存数据库Agent服务器进行统一调度。\n[0072] 所述步骤三进一步包括:所述内存数据库Manager服务器根据手动或者定时的方式,扫描所述内存数据库Agent服务器是否与所述数据库服务器对应的数据保持一致,将所述数据库服务器中发生变化的数据更新至所述内存数据库Agent服务器中。\n[0073] 所述步骤四进一步包括:所述内存数据库Manager服务器提供数据访问接口,当WEB应用服务器请求访问数据时,所述内存数据库Manager服务器从所述内存数据库Agent服务器读取数据,返回给所述WEB应用服务器。\n[0074] 所述步骤三与步骤四之间还包括:所述内存数据库Manager服务器记录各个内存数据库Agent服务器的状态、数据存放地址等信息,当所述WEB应用服务器请求数据时,根据这些信息获取相应的数据返回给所述WEB应用服务器。\n[0075] 本发明还公开了一种基于WEB应用的分布式内存数据库系统,用于包括WEB应用服务器以及数据库服务器的WEB应用系统,包括:\n[0076] 心跳模块,用于所述内存数据库Manager服务器与所述内存数据库Agent服务器之间的链路检查。\n[0077] 调度模块,用于所述内存数据库Manager服务器对所述内存数据库Agent服务器的资源进行统一调度。\n[0078] 数据同步模块,用于监测数据库数据的使用情况,将所述数据库服务器中的数据同步到所述内存数据库Agent服务器中。\n[0079] 数据访问模块,用于所述内存数据库Manager服务器为所述WEB应用服务器访问数据提供接口。\n[0080] 所述心跳模块中内存数据库Agent服务器定时上报状态信息。\n[0081] 所述调度模块设置可供调度的内存数据库Agent服务器,根据所述心跳模块上报的状态信息对所述内存数据库Agent服务器资源进行统一调度。\n[0082] 所述数据同步模块设置同步策略,根据需要将所述数据库服务器中的数据同步到所述内存数据库Agent服务器中。同步策略是指对使用频繁、数据处理复杂的数据进行同步,对那些使用频率小、没有复杂数据处理要求的数据库数据根据需要进行有选择的同步,以限制同步数据的数据量,防止占用过多资源。
法律信息
- 2018-02-09
未缴年费专利权终止
IPC(主分类): G06F 17/30
专利号: ZL 200810241848.8
申请日: 2008.12.23
授权公告日: 2012.12.19
- 2012-12-19
- 2009-09-23
- 2009-07-29
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-07-04
|
2005-12-30
| | |
2
| |
2004-11-03
|
2003-11-06
| | |
3
| |
2008-04-02
|
2006-09-28
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |