一种分布式内存数据库的数据同步方法及系统技术方案

技术编号:6908934 阅读:202 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种分布式内存数据库的数据同步方法及系统,用以避免分布式内存数据库的数据库代理上的数据冗余,减轻分布式内存数据库的数据库服务器和数据库代理的负担。本发明专利技术提供的一种分布式内存数据库的数据同步方法包括:数据库代理通过应用程序的注册,确定应用程序的名称,并向数据库服务器发送同步请求,以获取该应用程序的数据,其中所述同步请求中包括应用程序的名称;数据库代理获取数据库服务器发送的与应用程序的名称相对应的数据记录。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种分布式内存数据库的数据同步方法及系统
技术介绍
在通信行业中对于数据库的实时性要求比较高,所以产生了内存数据库,而且目前的大多数系统都是多任务多进程的,对数据库的并发访问是频繁发生的,这就要求数据库能够很好的支持并发访问,这样分布式数据库就成为一种必然,而在分布式模式下,内存库数据如何无冗余分布和如何并发同步且不影响实时性的要求就成为关键问题,目前虽有一些成熟的内存数据库,例如自研数据库等,但对这些问题的处理上仍有一定的局限性。对于分布式内存数据库,一般都采用服务器/代理的工作模式,服务器一般分布在主控节点上,而代理分布在外围节点上,服务器上管理数据库的全集,代理上仅分布数据库的子集;整个内存数据库都需要有文件备份,服务器首先从文件加载数据到内存中,代理根据分布原则从服务器上请求自己的数据子集;内存的组织一般为集中的分段组织,各表的记录组织在连续的一块内存中,索引组织在一块连续的内存中;数据库在运行的过程中随着系统的变化需要对表进行操作,变更的内容需要及时同步到各节点上,另外服务器负责将需要存盘的数据写盘。对于代理上数据的分布,有以表为划分原则进行分布处理,也有以单板为划分原则进行的分布处理,还有的是整个数据库的复制,这些方法都有可能使数据的分布存在冗余,即代理上存在不需要的数据,而在冗余数据存在的情况下,也增加了主控节点和外围节点进行数据同步的负担。对于数据的同步,目前大多数内存数据库对实时同步的做法是同步整条记录,但是这样同步存在问题,即时序的问题,不同的代理需要不同的数据对象,而在对多个代理进行数据同步时,有可能出现多个代理需要的不同数据对象相互覆盖的现象,虽然也可以通过并发操作串行化的方法避免覆盖,但是流程控制过于复杂,在具有全局节点、外围节点、 主备等复杂的系统中不能考虑到所有的异常,且多个并发操作的串行化也会使同步的实时性不好。
技术实现思路
本专利技术实施例提供了一种分布式内存数据库的数据同步方法及系统,用以避免分布式内存数据库的数据库代理上的数据冗余,减轻分布式内存数据库的数据库服务器和数据库代理的负担。本专利技术实施例提供的一种分布式内存数据库的数据同步方法包括数据库代理通过应用程序的注册,确定应用程序的名称,并向数据库服务器发送同步请求,以获取该应用程序的数据,其中所述同步请求中包括应用程序的名称;数据库代理获取数据库服务器发送的与应用程序的名称相对应的数据记录。CN 102262674 A说明书2/8页本专利技术实施例提供的一种分布式内存数据库的数据同步方法包括数据库服务器接收数据库代理发送的同步请求,并从中获取应用程序的名称;数据库服务器根据应用程序的名称,查找与应用程序的名称相对应的数据记录, 并将查找到的与应用程序的名称相对应的数据记录发送给所述数据库代理。本专利技术实施例提供的一种分布式内存数据库的数据同步系统包括同步请求单元,用于通过应用程序的注册,确定应用程序的名称,并向数据库服务器发送同步请求,以获取该应用程序的数据,其中所述同步请求中包括应用程序的名称;获取同步数据单元,用于获取数据库服务器发送的与应用程序的名称相对应的数据记录。本专利技术实施例提供的一种分布式内存数据库的数据同步系统包括同步请求接收单元,用于接收数据库代理发送的同步请求,并从中获取应用程序的名称;同步数据发送单元,用于根据应用程序的名称,查找与应用程序的名称相对应的数据记录,并将查找到的与应用程序的名称相对应的数据记录发送给所述数据库代理。本专利技术实施例,数据库代理通过应用程序的注册,确定应用程序的名称,并向数据库服务器发送同步请求,以获取该应用程序的数据,其中所述同步请求中包括应用程序的名称;数据库代理获取数据库服务器发送的与应用程序的名称相对应的数据记录,从而避免了分布式内存数据库的数据库代理上的数据冗余,减轻了分布式内存数据库的数据库服务器和数据库代理的负担。本专利技术实施例,数据库服务器接收数据库代理发送的同步请求,并从中获取应用程序的名称;数据库服务器根据应用程序的名称,查找与应用程序的名称相对应的数据记录,并将查找到的与应用程序的名称相对应的数据记录发送给数据库代理,从而避免了分布式内存数据库的数据库代理上的数据冗余,减轻了分布式内存数据库的数据库服务器和数据库代理的负担。附图说附图说明图1为本专利技术实施例提供的代理侧的一种分布式内存数据库的数据同步方法的流程示意图;图2为本专利技术实施例提供的服务器侧的一种分布式内存数据库的数据同步方法的流程示意图;图3为本专利技术实施例提供的数据分布原则示意图;图4为本专利技术实施例提供的内存组织示意图;图5为本专利技术实施例提供的字段同步格式示意图;图6为本专利技术实施例提供的分布式内存数据库的系统结构示意图;图7为本专利技术实施例提供的一种分布式内存数据库的数据同步系统的结构示意图;图8为本专利技术实施例提供的一种分布式内存数据库的数据同步系统的结构示意图。具体实施例方式本专利技术实施例提供了一种分布式内存数据库的数据同步方法及系统,用以避免分布式内存数据库的数据库代理上的数据冗余,减轻分布式内存数据库的数据库服务器和数据库代理的负担。基于现有技术中存在的问题,本专利技术实施例提供了一种较好的无冗余分布原则和按字段同步的方法,满足了通信行业对内存数据库的要求,可以很好地解决现有技术中存在的问题,本专利技术实施例中的数据库代理(简称代理)和数据库服务器(简称服务器)组成的系统,可以命名为基于SAF规范的分布式内存管理系统,SAF规范是一种提供高可用性服务的规范,该规范提出了一种SAF架构,在该架构下针对每个服务都提出了相应的规范, 本专利技术实施例提供的技术方案是基于SAF规范中的信息模型服务规范提出的。如果数据能够按照应用的要求进行同步,那么每个节点上分布的数据就能够满足应用对数据库的要求,这样减少了数据的同步过程;并且在数据变更后,数据库主控节点知道数据应该同步到哪个外围节点上,这就需要有一个分布原则来确定如何进行数据分布。首先介绍一下本专利技术实施例涉及的一些概念静态数据只有网管通过服务器能够进行增加、删除、修改的数据,应用程序可以进行查询。运行数据只有代理上的应用程序能够增加、删除、修改的数据,网管可以进行查询。静态数据和运行数据,可以保存在xml文件或者数据库中,这两种数据可以不分开存放,只需为字段约定一个属性以表示该字段是静态字段还是动态字段。配置变更对静态数据的一次操作,例如增加记录、删除记录、修改记录。配置变更集一个事务过程中的所有配置变更,这些配置变更要么全部生效,要么全部不生效。运行变更对运行数据的一次操作,例如增加记录、删除记录、修改记录。数据对象(简称对象)现实中一条记录表示一个实体,或是物理实体,或是逻辑实体,不管是物理实体还是逻辑实体都可看作一个对象。类一条记录表示一个对象,描述记录的表称为类。多个对象构成一个表。本专利技术实施例,通过在表中增加应用程序的信息,让数据库服务器知道哪些对象属于哪个应用程序;通过应用程序向数据库代理注册,让代理知道本代理上需要请求哪个应用程序的数据;通过代理向服务器的请求,让服务器知道应用程序的分布情况;服务器从而在代理请求和数据变更的情况下,会智能的将数据对象同步到所属应用程序的代理上;另外,由于数据修改时是按字段本文档来自技高网
...

【技术保护点】
1.一种分布式内存数据库的数据同步方法,其特征在于,该方法包括:数据库代理通过应用程序的注册,确定应用程序的名称,并向数据库服务器发送同步请求,以获取该应用程序的数据,其中所述同步请求中包括应用程序的名称;数据库代理获取数据库服务器发送的与应用程序的名称相对应的数据记录。

【技术特征摘要】
1.一种分布式内存数据库的数据同步方法,其特征在于,该方法包括数据库代理通过应用程序的注册,确定应用程序的名称,并向数据库服务器发送同步请求,以获取该应用程序的数据,其中所述同步请求中包括应用程序的名称; 数据库代理获取数据库服务器发送的与应用程序的名称相对应的数据记录。2.根据权利要求1所述的方法,其特征在于,该方法还包括 数据库代理接收数据库服务器发送的需要变更的数据对象; 数据库代理通过应用进程对所述数据对象进行校验;当校验成功时,数据库代理利用所述数据对象更新本地数据库。3.根据权利要求1所述的方法,其特征在于,该方法还包括数据库代理通过应用进程更新本地数据库,并将变更的字段按照预先与数据库服务器协商确定的格式组包并发送给数据库服务器。4.根据权利要求1、2或3所述的方法,其特征在于,所述数据库代理存储的数据记录, 包括该记录与另一记录的关联关系的字段。5.一种分布式内存数据库的数据同步方法,其特征在于,该方法包括数据库服务器接收数据库代理发送的同步请求,并从中获取应用程序的名称; 数据库服务器根据应用程序的名称,查找与应用程序的名称相对应的数据记录,并将查找到的与应用程序的名称相对应的数据记录发送给所述数据库代理。6.根据权利要求5所述的方法,其特征在于,该方法还包括数据库服务器通过事务过程获取配置变更集,其中包括需要变更的数据对象; 数据库服务器根据数据库代理的注册信息,向数据库代理发送需要变更的的数据对象;数据库服务器根据数据库代理对所述数据对象的校验结果,利用所述数据对象更新本地数据库,或者放弃所述事务过程。7.根据权利要求5所述的方法,其特征在于,该方法还包括数据库服务器接收数据库代理发送的数据包,并按照预先与数据库代理协商确定的格式,解析所述数据包,获取变更的字段,并利用变更的字段更新本地数据库。8.根据权利要求5、6或7所述的方法,其特征在于,所述数据库服务器存储的数据记录,包括该记录与另一记录的关联关系的字段。9.一种分布式内存数...

【专利技术属性】
技术研发人员:林秋利程国向张健
申请(专利权)人:大唐移动通信设备有限公司
类型:发明
国别省市:11

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

1