一种分布式内存数据库数据系统及其共享方法

文档序号:6466091阅读:204来源:国知局
专利名称:一种分布式内存数据库数据系统及其共享方法
技术领域
本发明涉及一种数据库的数据系统及其共享方法,尤其涉及一种分布 式数据系统及其共享方法。
背景4支术
在现有技术中,大容量电信设备通常釆用嵌入式多机系统,其中,在 多个处理机上使用内存数据库,提供数据管理和服务,其内存数据库的效 率要求极高,绝大多数数据只能在本处理机上实现访问,而不能使用普通
分布式数据库的网络访问机制,例如远程过程调用(RPC)。
内存数据库中保存着一类被称之为"资源"的数据,应用进程在实现
电信业务时需向数据库申请资源,获得资源后才可以提供电信服务,服务 结束后再向数据库归还资源。每个处理机管理一部分资源,互不重叠,资 源本身也存在"不可用"、"可用"、"使用中"三种状态,只有"可用的" 资源才可以被应用进程申请,当本地的可用资源全部被申请完后,处理机 将无法直接提供电信业务,通常应用进程需要将服务重新定向到存有资源 的其他处理机上。该过程不仅导致效率的下降,也增加了处理应用进程的 复杂度。
因此,现有技术有待于改进与发展。

发明内容
本发明的目的在于提供一种分布式内存数据库数据系统共享方法,通 过采用中心处理机管理所有分布在边缘处理机上的数据的索引,中心处理 机根据边缘处理机模块向其申请的数据信息请求分配部分数据的方法,保 证应用进程访问边缘处理机上数据库时,可以快速查找、获取、修改数据, 可以有效防止访问冲突,实现高效的数据共享。
本发明的技术方案如下
一种分布式内存数据库数据系统,其特征在于,该系统包括至少一 边缘处理机模块; 一中心处理机模块;所述至少一边缘处理机模块分别与 所述中心处理才;i^莫块相连接;
所述中心处理枳^莫块包括 一可用数据池子模块、 一数据接收子模块、 一数据请求处理子模块;
所述可用数据池子才莫块分别与数据接收子模块、数据请求处理子模块 相连接,用于存储所述边缘处理机模块上的数据的索引和数据所归属的边 缘处理机地址数据;
所述数据接收子模块,用于接收边缘处理机模块发送的所述边缘处理 机模块上的数据,并将该数据索引和数据所归属的边缘处理机地址数据加 入并保存到所述可用数据池子模块;
所述请求处理子模块,用于接收各个边缘处理机模块的数据申请信息,
并反馈请求信息。
所述的系统,其中,所述边缘处理机模块包括内存数据库子模块、 应用进程子模块。
所述的系统,其中,所述内存数据库子模块包括 一本地数据管理子 模块; 一可服务数据管理子模块;所述本地数据管理子模块、所述可服务 数据管理子模块分别与中心处理机模块相通信连接;
所述本地数据管理子冲莫块,用于将边缘处理机模块上的数据发送于中 心处理机模块;
所述可服务数据管理子模块,用于向中心处理机模块发出数据请求信 息,并接收所述中心处理模块分配的数据。
所述的系统,其中,所述中心处理机才莫块还包括数据回收管理子模块, 所述数据回收管理子才莫块,用于回收处理可力良务数据信息。
所述的系统,其中,所述内存数据库子模块还包括:应用进程数据处理 子模块、数据源数据队列、可服务数据队列、服务中数据队列。 一种分布式内存数据库数据共享方法,其包括如下步骤
A、 所述数据接收子模块,接收所述边缘处理机模块发送的其边缘处理 机模块上的数据,并将该数据索引和数据所归属的边缘处理机地址数据加 入,并保存到所述可用数据池子模块;
B、 所述可服务数据管理子模块,向所述数据请求处理子模块发出数据 请求信息,并等待信息反馈;
C、 所述数据请求处理子模块,根据所述请求信息从所述可用数据池子 模块分配部分数据,并将该数据以及该数据索引,发送给所述可用服务数 据管理子模块。
D、 所述可服务it据管理子模块,将所述分配的数据加入可服务数据, 当应用进程子模块访问边缘处理机上数据库时,进行数据共享处理。
所述的方法,其中,所述步骤A之前还包括
AOl、所述本地lt据管理子模块,将所述边缘处理机:模块上的数据发送 给所述数据接收子模块。
所述的方法,其中,所述步骤D还包括以下步骤
Dl 、所述应用进程子模块向所述应用进程数据管理子模块申请数据, 所述内存数据库从可服务数据队列获取数据提供给所述应用进程,并将该 数据从可服务数据队列转移到服务中数据队列;
D2、所述应用进程子模块完成用于进程服务后,向所述应用进程数据 管理子模块释放数据,所述内存数据库将所述数据从服务中数据队列转移 到可服务数据队列中,供后续的应用进程申请。
所述的方法,其中,所述步骤D2之后还包括以下步骤
D3、所述数据回收管理子模块向所述可服务数据管理子模块查询可服 务数据队列和服务中数据队列中数据量,并根据预定策略决定向所述可服 务数据管理子模块发出回收数据命令;
D4、所述可服务数据管理子模块收到回收数据命令后,从可服务数据 队列获取数据索引发送到所述中心处理机,并将该数据从本地的可服务数 据队列删除。
所述的方法,其中,所述步骤D4之后,还包括以下步骤 D5、所述应用进程数据管理子模块提供数据申请后,检查服务中数据 队列中剩余数据量;当数据即将用尽时,触发所述可服务数据管理子模块, 再次发起数据请求。
本发明所提供的 一种分布式内存数据库的数据系统及其共享方法,由 于采用了中心处理机管理所有边缘处理机数据索引,中心处理机根据边缘 处理机模块向其申请的数据信息请求,分配部分数据的方法,保证了所有 应用进程在本地快速查找、获取、修改数据,而不用从网络上获取数据, 避免了附加网络的开销,同时有效地防止了访问冲突的发生,并能实现高 效的数据共享,且筒化了软件模块的逻辑拓朴结构与分布式数据库的管理。


图1为本发明的数据系统结构示意图; 图2为本发明的中心处理枳一莫块内部功能结构示意图; 图3为本发明的边缘处理积4莫块内部功能结构示意图; 图4为本发明的数据系统共享方法流程图。
具体实施例方式
以下结合附图,对本发明各较佳实施例进行更为详细的描述。
本发明的分布式内存数据库的数据系统包括 一 台中心处理机和多台
边缘处理机,所述多台边缘处理机分别与所述中心处理机相连接,如图1
所示,多台边缘处理机分别用Bl、 B2…Bn表示,其中边缘处理机B1和中 心处理机在同一个物理处理机上,其内部逻辑结构与边缘处理机B2…Bn 一致,边缘处理才几B1在中心处理机上提供边缘处理机功能。该数据系统可 以包含或不包括边缘处理才几Bl,当所述数据系统不包括该边缘处理机时, 中心处理机则不管理该边缘处理机资源数据,即不管理本地资源数据,同 时不向应用进程月l务子模块提供申请数据服务。
本发明的中心处理机A包括有可用数据池子模块A101;数据接收子 模块A1;数据请求处理子模块A2;数据回收管理子模块A3,如图2所示。 所述可用数据池子模块A101,其并不保存完整的可用数据,只保存可 用数据索引和数据所归属的边缘处理机ID地址数据;
所述数据接收子模块Al ,用于接收边缘处理机上报的就绪数据信息, 并将各边缘处理机上报的就绪数据索引及归属边缘处理机的ID地址数据加 入所述可用数据池子模块A101,并将这些数据置为"可用";
所述数据请求处理子才莫块A2,用来"^妄收各个边缘处理机的数据申请, 并根据一定策略乂人所述可用数据池子模块A101中获取一批可用数据索引, 作为应答反馈给所请求的边缘处理机,且将所述可用数据池子模块A101中 该部分数据置为"使用中",则该数据只能被所申请的边缘处理机使用,而 不能再分配给其他边缘处理机;
所述数据回收管理子;f莫块A3,用于定时查询各个边缘处理机上"可服 务"数据队列中数据比例,当可服务数据比例较大时,则边缘处理机对该 可服务数据发起回收命令操作,将多余数据回收,并将其在可用数据池子 模块A101中"使用中"状态转变为"可用"状态。
本发明的边缘处理机Bl又包括有应用进程子模块b4、内存数据库 模块MOO,其中,所述内存数据库模块bl00又包括本地数据管理子模块 bl、可服务数据管理子模块b2、应用进程数据处理子模块b3、数据源队列 b101、"可服务"数据队列bl02、"服务中"数据队列bl03,如图3所示。
所述本地数据管理子模块bl,负责管理归属于本边缘处理机的数据源 队列b101,所述数据源队列M01中的本地数据就绪后,所述本地数据管理 子模块bl负责向所述数据接收子模块Al发送数据就绪信息;
所述可服务数据管理子模块b2,负责向所述数据请求处理子模块A2 请求向应用进程提供服务的数据,所述数据请求处理子模块A2返回的数据 可能是所述本地数据管理子模块bl中的就绪数据索引也可能是其他边缘处 理机上的可用数据索引,如果是前者,则所述可服务数据管理子模块b2, 将该部分数据加入数"可月良务"数据队列bl02中,如果是后者所述可服务 数据管理子模块b2,需要向数据归属的边缘处理机的可服务数据管理子模 块b2,获取完整的数据,并将该数据加入数据源队列b101中,然后再加入 "可服务"数据队列b102中;
所述可服务数据管理子模块b2,还负责接收所述数据回收管理子模块 A3的查询请求,返回本边缘处理机中所述"可服务"数据队列b102以及 所述"服务中"数据队列b103中的数据数量;
所述可服务数据管理子模块b2,还负责接收所述数据回收管理子模块 A3的数据回收请求,并将一定数量的数据从"可服务"数据队列b102中 取出返回给所述数据回收管理子模块A3,处理过程中优先将非本处理机的 数据释放给所述数据回收管理子模块A3;
所述应用进程数据处理子模块b3,负责接收应用进程数据服务申请, 所述应用进程数据处理子模块b3,首先从所述"可服务"数据队列b102中 获取可用数据,获取时优先选取归属于本处理机的数据,获取成功后将数 据从所述"可服务"数据队列bl02中删除,加入所述"服务中"数据队列 M03,并在"服务中"数据队列b103中记录已经提供给应用进程子模块b4 的数据;
所述应用进程数据处理子模块b3,还负责接收应用进程的数据归还,
将归还的数据从所述"服务中"数据队列bl03中删除,加入到所述"可服 务"数据队列b102中;
所述应用进程数据处理子模块b3,还负责检查所述"可服务,,数据队 列bl02中剩余数据量,根据一定策略在剩余数据量不足时,通知所述可服 务数据管理子模块b2,由所述可服务数据管理子模块b2,再次发起向所述 数据请求处理子模块A2申请追加数据的操作;
所述应用进程子模块b4,用于向所述应用进程凄t据处理子模块b3申请 服务数据,完成应用进程服务。
本发明的多个处理机分布式内存数据库间无沖突数据系统共享方法, 如图4所示,其数据系统包括有中心处理机模块、多个边缘处理机模块, 所述多个边缘处理机模块分别与所述中心处理机模块相连接。所述中心处 理机模块又包括可用数据池子模块、数据接收子模块、数据请求处理子 模块;所述可用数据池子模块、所述数据接收子模块、所述数据请求处理 子模块,又分别与边缘处理机相连接。边缘处理机模块包括内存数据库 子模块、应用进程子模块,所述内存数据库子模块又包括本地数据管理 子模块、可服务数据管理子模块、应用进程数据处理子模块、"数据源"数 据队列、"可服务"数据队列、."服务中"数据队列。所述本地数据管理子 模块、所述可服务数据管理子模块分别与中心处理机子模块相通信连接。 所述内存数据库子模块又包括有其方法步骤如下
A、 本地数据管理子模块bl在数据源队列b101中检查本地数据是否就 绪,如果就绪将该数据发送到数据接收子模块Al,所述数据接收子模块 Al将该数据索引及处理机ID地址加入到可用数据池AIOI
B、 可服务数据管理子模块b2,向数据请求处理子模块A2发出请求数 据信息,所述数据请求处理子模块A2收到该请求信息后,#4居一定策略, 从所述可用数据池AIOI中,获取一部分数据索引,发送到边缘处理机,并 在所述可用数据池AIOI中将该部分数据索引标识为"使用中",避免重复分配。
C、 所述可服务数据管理子模块b2,收到所述数据请求处理子模块A2 返回的可用数据后,如果是本地的,则直接将其加入"可服务"数据队列 b102,否则根据所述数据请求处理子模块A2发来的可用数据的归属边缘处 理机地址及数据索引,向该部分数据所归属的边缘处理机发送借用数据请 求,该归属边缘处理机收到后,则将完整的数据发送给请求方。请求方将 数据加入数据源队列MOl,并将其加入所述"可服务"数据队列bl02。
D、 应用进程子模块b4,向应用进程数据处理子模块b3发出数据申请, 所述应用进程数据处理子模块b3向从本地"可服务"数据队列b102中获 取数据,提供给所述应用进程子模块b4,并将该数据从所述"可服务"数 据队列bl02中,转移到"服务中"数据队列bl03中。
E、 所述应用进程子模块b4完成应用进程^^务后,向本地所述内存数 据库中所述应用进程数据处理子模块b3释放数据,所述内存数据库将该数 据从所述"服务中"ft据队列b103移动到所述"可服务"数据队列M02 中,供后续应用进程服务申请。
F、 数据回收管理子模块A3定时所述可服务数据管理子模块b2查询"可 服务"数据队列bl02和"服务中"数据队列M03中的数据数量,并根据 一定策略决定向所述可^^务数据管理子模块b2,发出回收数据命令。
G、 所述可服务数据管理子模块b2,收到回收数据命令后,按照一定 策略从所述"可服务"数据队列b102中,获取数据索引发送到中心处理机, 并将该数据从本地所述"可服务"数据队列M02中删除,如果该数据不是 本地数据,而是其它处理机上借来的数据,则将其从所述数据源队列b101 删除。
H、 所述应用进程数据处理子模块b3,提供数据申请后,检查"服务 中"数据队列bl03剩余数据量,当数据即将用尽时,触发所述可服务数据 管理子模块b2,通过步骤B向中心处理机再次发起数据请求。
本发明所提供的 一种分布式内存数据库的数据系统及其共享方法,由 于采用了中心处理机管理所有边缘处理机数据索引,中心处理机根据边缘 处理机模块向其申请的数据信息请求,分配部分数据的方法,保证了所有 应用进程在本地快速查找、获取、修改不一定归属于本处理机的数据,不 用从网络上获取数据,避免了附加网络的开销。同时有效地防止了访问冲 突的发生,即保证同一数据不会被多个处理机访问,并能实现高效的数据 共享,且简化了软件模块的逻辑拓朴结构与分布式数据库的管理。
应当理解的是,上述具体实施例的描述较为详细,不能因此而理解为 对本发明专利保护范围的限制,本发明专利保护范围应以所附权利要求为 准。
权利要求
1、一种分布式内存数据库数据系统,其特征在于,该系统包括至少一边缘处理机模块;一中心处理机模块;所述至少一边缘处理机模块分别与所述中心处理机模块相连接;所述中心处理机模块包括一可用数据池子模块、一数据接收子模块、一数据请求处理子模块;所述可用数据池子模块分别与数据接收子模块、数据请求处理子模块相连接,用于存储所述边缘处理机模块上的数据的索引和数据所归属的边缘处理机地址数据;所述数据接收子模块,用于接收边缘处理机模块发送的所述边缘处理机模块上的数据,并将该数据索引和数据所归属的边缘处理机地址数据加入并保存到所述可用数据池子模块;所述请求处理子模块,用于接收各个边缘处理机模块的数据申请信息,并反馈请求信息。
2、 根据权利要求1所述的系统,其特征在于,所述边缘处理机模块包 括内存数据库子模块、应用进程子模块。
3、 根据权利要求2所述的系统,其特征在于,所述内存数据库子模块 包括 一本地数据管理子模块; 一可服务数据管理子模块;所述本地数据 管理子模块、所述可服务数据管理子模块分别与中心处理机模块相通信连 接;所述本地数据管理子模块,用于将边缘处理机模块上的数据发送于中 心处理机模块;所述可服务数据管理子模块,用于向中心处理机模块发出数据请求信 息,并接收所述中心处理模块分配的数据。
4、 根据权利要求1所述的系统,其特征在于,所述中心处理机模块还 包括数据回收管理子模块,所述数据回收管理子模块,用于回收处理可服 务数据信息。
5、 根据权利要求2所述的系统,其特征在于,所述内存数据库子模块 还包括:应用进程数据处理子模块、数据源数据队列、可服务数据队列、服 务中数据队列。
6、 一种应用于权利^"求1至5中任一权利要求所述数据系统的数据共 享方法,其特征在于,其包括如下步骤A、 所述数据接收子模块,接收所述边缘处理机模块发送的其边缘处理 机模块上的数据,并将该数据索引和数据所归属的边缘处理机地址数据加 入,并保存到所述可用数据池子模块;B、 所述可服务数据管理子模块,向所述数据请求处理子模块发出数据 请求信息,并等待信息反馈;C、 所述数据请求处理子模块,根据所述请求信息从所述可用数据池子 模块分配部分数据,并将该数据以及该数据索引,发送给所述可用服务数 据管理子模块。D、 所述可服务数据管理子模块,将所述分配的数据加入可服务数据, 当应用进程子模块访问边缘处理机上数据库时,进行数据共享处理。
7、 根据权利要求6所述的方法,其特征在于,所述步骤A之前还包括 AOl、所述本地数据管理子模块,将所述边缘处理机模块上的数据发送给所述数据接收子一莫块。
8、 根据权利要求6所述的方法,其特征在于,所述步骤D还包括以下 步骤Dl 、所述应用进程子模块向所述应用进程数据管理子模块申请数据, 所述内存数据库从可服务数据队列获取数据提供给所述应用进程,并将该数据从可服务数据队列转移到服务中数据队列;D2、所述应用进程子模块完成用于进程服务后,向所述应用进程数据 管理子模块释放数据,所述内存数据库将所述数据从服务中数据队列转移 到可服务数据队列中,供后续的应用进程申请。
9、 根据权利要求8所述的方法,其特征在于,所述步骤D2之后还包 括以下步骤D3、所述数据回收管理子模块向所述可服务数据管理子模块查询可服 务数据队列和服务中数据队列中数据量,并根据预定策略决定向所述可服 务数据管理子模块发出回收数据命令;D4、所述可服务数据管理子模块收到回收数据命令后,从可服务数据 队列获取数据索引发送到所述中心处理机,并将该数据从本地的可服务数 据队列删除。
10、 根据权利要求9所述的方法,其特征在于,所述步骤D4之后,还 包括以下步骤D5、所述应用进程数据管理子模块提供数据申请后,检查服务中数据 队列中剩余数据量;当数据即将用尽时,触发所述可服务数据管理子模块, 再次发起数据请求。
全文摘要
本发明公开了一种分布式内存数据库数据系统及其共享方法,步骤如下数据接收子模块,接收边缘处理机发送的数据,将其索引和所归属边缘处理机地址数据加入,保存到可用数据池子模块;可服务数据管理子模块,向数据请求处理子模块发出请求;数据请求处理子模块,根据请求从可用数据池子模块分配数据,将该数据及其索引,发送给可用服务数据管理子模块,将其加入可服务数据,当应用进程访问数据库时,进行数据共享。本发明的共享方法,由于采用中心处理机管理所有边缘处理机数据索引,以及向边缘处理机分配数据方法,保证了应用进程快速查找、获取、修改数据,不用从网络上获取数据,避免了附加网络开销,有效防止了访问冲突,实现了高效数据共享。
文档编号G06F17/30GK101354720SQ20081014185
公开日2009年1月28日 申请日期2008年9月4日 优先权日2008年9月4日
发明者毅 丁, 俊 王, 越 袁 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1