基于domino数据库的系统进行自动分库的方法技术方案

技术编号:9967600 阅读:188 留言:0更新日期:2014-04-25 08:20
本发明专利技术提供一种基于domino数据库的系统进行自动分库的方法,该方法具体为建立一分库策略配置模块、一动态分库引擎、一索引库以及一调度模块;通过动态分库引擎和分库策略配置模块来负责数据库的动态拆分,通过索引库和调度模块来负责数据库分库后的创建和读取兼容传统方式。本发明专利技术通过数据分散存储和请求的分摊,解决了基于domino数据库的系统性能问题,提高了对数据库的访问速度。

【技术实现步骤摘要】
【专利摘要】本专利技术提供一种,该方法具体为建立一分库策略配置模块、一动态分库引擎、一索引库以及一调度模块;通过动态分库引擎和分库策略配置模块来负责数据库的动态拆分,通过索引库和调度模块来负责数据库分库后的创建和读取兼容传统方式。本专利技术通过数据分散存储和请求的分摊,解决了基于domino数据库的系统性能问题,提高了对数据库的访问速度。【专利说明】
本专利技术涉及一种。
技术介绍
IBM (国际商业机器公司)旗下的办公自动化Lotus软件,Notes数据库文件(文件后缀为:.NSF),该数据库文件包容应用程序的数据,其结构由表单、域、文件夹、视图及其他显示功能部件(诸如导航器和数据库图标)组成。根据官方提供的数据,Notes数据库存在以下的限制:数据库的最大大小:即最大的OS文件大小限制(最大为64GB);文本域的最大大小:15KB; RTF文本域中单个段落的最大大小:64KB; —个层次结构视图中有几级响应:31级;每一级中有几个文档:300,000个文档;一个视图索引最大可为:130MB。Notes数据库连接是线性的。随着数据行变大,Notes数据库响应所花的时间呈指数增加。在Notes数据库中与在关系数据库中连接表的性能差别可能是千倍以上,在使用很大的数据库时尤其如此。根据实际的使用经验,一个Notes数据库在满足系统一般性能和稳定性要求的前提下,数据库的大小限制远达不到官方标准值。一般一个数据库的文档数据达到20W以上时,系统就会变得不稳定或者出现各种故障。数据库视图的展现和搜索响应的时长都会变得太长而不能满足业务的要求。企业级的管理信息化系统,常常面临大数据量的文档,数千万甚至上亿的文档量需要存储和处理。一个可行且成熟的方案就是对数据库进行分库,但是原有的小数据量情况下,每隔两三年对数据库进行一次手动的分库的方式还能解决问题,现有的大量数据增长情况下就不再适用,需要设计自动分库的策略,由定时的任务对数据库进行扫描管理,在需要的时候生成新的数据库替代旧库,并且分库的过程需要保证系统的不间断服务,分库前后对系统无影响。传统的Domino数据库使用方式如图1所示,对于Domino数据库的访问都是直接访问和创建。随着数据的增长,Domino数据库(业务库)的数据量会越来越大,性能会逐渐下降,甚至导致系统崩溃。所以传统的Domino数据库使用方式无法支撑数据增长快的大型信息系统。
技术实现思路
本专利技术要解决的技术问题,在于提供一种,解决了基于domino数据库的系统性能问题,提高了对数据库的访问速度。本专利技术是这样实现的:一种,所述方法具体为:建立一分库策略配置模块,来配置分库策略配置信息和记录分库后的分库信息;建立一动态分库引擎,该动态分库引擎负责对数据库进行监测和数据库的创建,系统通过动态分库引擎根据分库策略配置模块的分库策略配置信息定时地对系统中超限的数据库进行分库处理,并通过分库策略配置模块记录分库后的分库信息;建立一索引库,将分库处理中数据库的数据增、删、改操作实时同步到该索引库中,索引库存放关键字段,整合有所有文档数据,且存储有各个分数据库的索引信息;建立一调度模块,系统在需要创建新数据时,调度模块读取分库后的分库信息,并根据索引库模块对未超限的分数据库进行数据创建;同时,系统需要访问数据时,调度模块通过索引库模块到对应的分数据库中读取所需的数据。本专利技术具有如下优点:本专利技术打破domino原有的模块单数据库或手动分库的模式,采用自动分库的策略,使用系统自身对系统中的domino数据库进行管理;改造系统的业务功能使其能够适应数据分库的情况,自动分库以满足应用系统下大数据量存储与计算的情况;提高了对数据库的访问速度。【专利附图】【附图说明】图1为现有技术的Domino数据库使用方式的示意图。图2为本专利技术实现方法的原理框图。【具体实施方式】请参阅图2所示,本专利技术为一种,所述方法具体为:建立一分库策略配置模块,来配置分库策略配置信息和记录分库后的分库信息;建立一动态分库引擎,该动态分库引擎负责对数据库进行监测和数据库的创建,系统通过动态分库引擎根据分库策略配置模块的分库策略配置信息定时地对系统中超限的数据库进行分库处理,并通过分库策略配置模块记录分库后的分库信息;其中,系统通过动态分库引擎根据分库策略配置模块的分库策略配置信息定时地对系统中超限的数据库进行分库处理,具体为:动态分库引擎读取配置的分库策略配置信息对数据库进行监测,判断数据库中的物理大小或文档数量是否超过阈值;否,则不进行分库处理,是,则对已经达到分库阈值的分数据库标记为历史分库(不再新增数据),同时新增了一个相同设计空的分数据库,并标记为活动分库。建立一索引库,将分库处理中数据库的数据增、删、改操作实时同步到该索引库中,索引库存放关键字段(即主键字段),整合有所有文档数据,且存储有各个分数据库的索引信息;这样数据库中的视图和搜索结果实际访问时根据索引库的索引信息指向的实际数据库和文档进行访问;建立一调度模块,系统在需要创建新数据时,调度模块读取分库后的分库信息,并根据索引库模块对未超限的分数据库进行数据创建;同时,系统需要访问数据时,调度模块通过索引库模块到对应的分数据库中读取所需的数据。在本专利技术中,所述domino数据库是文档型数据库,对于数据库是否过大的评测标准为:数据库的物理大小和数据库的文档数量大小;所述配置分库策略配置信息为配置数据库的物理大小达到第一阈值进行分库或数据库中的文档数量达到第二阈值进行分库;分库的标准(阈值)可以是其中任意一个指标达到阈值,或者任意一个指标达到阈值,或者两个指标都达到阈值。即A、B、A或B、A且B四种。所述分库信息包括:数据库中历史分库的数量、活动分库的数量、各个分库的名称、各个分库对应的路径;所述历史分库为存满的分数据库,活动分库为未存满的分数据库;分库信息由动态分库引擎在分库变更后进行更新维护。所述索引库实现方式为Domino库(少量的字段可以承载更多的文档数)、关系型数据库或者NoSql数据库;所述索引信息包括关键业务字段、分数据库路径、分数据名称和文档id等。所述调度模块在数据库分库后,创建新数据的时候需要选择其中一个数据库进行创建数据;即读取分库策略配置模块中的分库信息,选取其中的活动分库进行创建新文档。如果存在多个活动分库,则不仅需要选择出活跃库,还要使用随机或者轮询方式从各个活跃分库中选择一个以保证数据库数据量的整体平衡。这里需要说明的是:本专利技术通过分库策略配置模块、动态分库引擎、索引库以及调度模块的四个部分相互协作,形成完整的动态分库机制。动态分库引擎的定时触发保证了自动化,索引库和调度模块对外屏蔽了内部的复杂结构,保持了统一的访问入口。分库策略配置模块动态更新分库情况的详细信息,并提供调度模块的查询。总之,本专利技术通过动态分库引擎和分库策略配置模块来负责数据库的动态拆分,通过索引库和调度模块来负责数据库分库后的创建和读取兼容传统方式。打破domino原有的模块单数据库或手动分库的模式,采用自动分库的策略,使用系统自身对系统中的domino数据库进行管理;提高了对数据库的访问速度。以上所述仅为本专利技术的较佳实施例,凡依本专利技术申请专利范围所做的均等变化与修饰,皆应属本专利技术的本文档来自技高网
...

【技术保护点】
一种基于domino数据库的系统进行自动分库的方法,其特征在于:所述方法具体为:建立一分库策略配置模块,来配置分库策略配置信息和记录分库后的分库信息;建立一动态分库引擎,该动态分库引擎负责对数据库进行监测和数据库的创建,系统通过动态分库引擎根据分库策略配置模块的分库策略配置信息定时地对系统中超限的数据库进行分库处理,并通过分库策略配置模块记录分库后的分库信息;建立一索引库,将分库处理中数据库的数据增、删、改操作实时同步到该索引库中,索引库存放关键字段,整合有所有文档数据,且存储有各个分数据库的索引信息;建立一调度模块,系统在需要创建新数据时,调度模块读取分库后的分库信息,并根据索引库模块对未超限的分数据库进行数据创建;同时,系统需要访问数据时,调度模块通过索引库模块到对应的分数据库中读取所需的数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:倪时龙林振天陈又咏谢海强蔡清远
申请(专利权)人:国家电网公司福建亿榕信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1