一种分布式数据库及其访问方法技术

技术编号:16128927 阅读:29 留言:0更新日期:2017-09-01 20:54
本发明专利技术公开了一种分布式数据库及其访问方法,数据库包括数据存储节点模块、数据存储节点访问模块和数据切分规则管理模块;数据切分规则管理模块用于管理当前使用的数据节点切分规则;记录规则的变更历史;监控数据存储节点模块,在数据节点切分规则发生变化的时候通知数据存储节点访问模块;当数据存储节点访问模块接收到新的数据时,数据存储节点访问模块对数据根据数据产生的时间字段来查找变更时间小于该时间的最新数据节点切分规则,使用最新规则对数据进行哈希计算,获取该数据需要存储的数据存储节点并发送。在增加数据节点或回复失效节点的时候,能够避免大量的数据迁移占据分布式数据库服务带宽,提高分布式数据库并发服务能力和可靠性。

Distributed database and access method thereof

The invention discloses a distributed database and database access methods, including the data storage node module, data access module and data storage node splitting rule management module; data segmentation rule management module for data management node segmentation rules currently in use; change history rules; monitoring data storage node module, notification data storage node access module when changes in the data nodes segmentation rules; when the data storage node receives new data access module, data storage module node access to the new data node segmentation rules data according to the data from the time field to find the change of time is less than the time, using the latest rules for data acquisition data storage hash calculation. The nodes need to store and transmit data. When adding data nodes or recovering failure nodes, it can avoid a large number of data migration, occupy the service bandwidth of the distributed database, and improve the concurrent service ability and reliability of the distributed database.

【技术实现步骤摘要】
一种分布式数据库及其访问方法
本专利技术涉及计算机网络数据库
,尤其涉及一种分布式数据库数据切分方式及其访问方法。
技术介绍
传统的应用程序一般都是集中式的数据库架构,连接单一的数据库进行数据的存储。随着网络以及信息技术,特别是物联网的飞速发展,数据量越来越大,单一主机的数据库分布式数据库容量受到限制,数据的并发访问能力大幅下降,无法满足应用的发展,成为整个分布式数据库的瓶颈。无法适应对海量数据计算的需求。分布式的数据分布式数据库的出现解决了海量数据的存储问题,让存储大量数据并进行分析成为可能。现有的分布式数据库需要在增加节点时候对数据进行迁移,根据切分规则重新平衡,即从旧的节点移动数据到新的节点,同时也需要在现有节点之间迁移数据。该操作占用大量的带宽,也需要较长的时间才能完成,影响了整个分布式数据库的效率另外,现有的分布式分布式数据库在其中一个节点临时失效的时候需要其它的节点代替这个节点提供服务,同时在节点恢复的时候,需要从代替的节点迁移故障发生时候到数据回被代替的节点。因此,本领域的技术人员致力于开发一种分布式数据库及其访问方法,在增加数据节点或回复失效节点的时候,能够避免大量的数据迁移,占据分布式数据库服务带宽,提高分布式数据库并发服务能力和可靠性。
技术实现思路
有鉴于现有技术的上述缺陷,本专利技术所要解决的技术问题是分布式数据库在扩展节点和恢复失效节点时需要迁移大量数据的问题。为实现上述目的,本专利技术提供了一种分布式数据库,包括数据存储节点模块、数据存储节点访问模块和数据切分规则管理模块;所述数据切分规则管理模块用于:管理分布式数据库中当前使用的数据节点切分规则;记录数据节点切分规则的变更历史;监控数据存储节点模块,在数据存储节点或其备份节点临时失效的情况下,生成新的除去失效节点的数据节点切分规则,并在该失效数据存储节点恢复的时候重新生成新的包含该数据节点的数据节点切分规则;在数据节点切分规则发生变化的时候通知数据存储节点访问模块;所述数据存储节点模块用于存储分配到该节点上的数据,并对在该节点存储的数据进行查找;所述数据存储节点访问模块用于和数据切分规则管理模块保持同步。进一步地,所述数据节点切分规则包括数据节点切分哈希算法和数据存储节点的ID、地址、切分规则生效的开始时间和结束时间、连接建立的方式以及所需要的凭据。进一步地,所述数据切分哈希算法为一致性哈希算法。本专利技术还提供了一种分布式数据库访问方法,包括以下步骤:提供一种分布式数据库,包括数据存储节点模块、数据存储节点访问模块和数据切分规则管理模块;位于数据访问的客户端,在其启动的时候连接到数据切分规则管理模块,获取分布式数据库中正在使用的数据节点切分规则和已经存在历史的数据节点切分规则;当数据存储节点访问模块接收到新的数据时,数据存储节点访问模块对数据根据数据产生的时间字段来查找变更时间小于该时间的最新数据节点切分规则,使用最新数据节点切分规则对数据进行哈希计算,获取该数据需要存储的数据存储节点,并发送该数据到相应的数据存储节点。进一步地,当数据存储节点访问模块接收到数据查询请求时,数据存储节点访问模块根据请求的时间范围找到包含在这个时间范围内的所有的数据节点切分规则;当查询条件不包含数据时间范围的起始值时,视为数据时间范围起始值为零;当查询条件不包含数据时间范围结束值时,视为数据时间范围结束值为无穷大。进一步地,所述数据存储节点访问模块根据获取所有的数据节点切分规则后,对于每一个条数据节点切分规则,对查询条件中的过滤主体键值进行哈希计算,获取对应的数据存储节点模块,;将查询条件以及缩小的数据过滤时间范围发送到计算出的数据存储节点模块;数据存储节点模块根据查询的过滤主体键值和过滤时间段返回满足条件的数据;数据存储节点访问模块在接收到各个数据存储节点模块的返回数据之后,逐一返回给客户端。进一步地,所述数据切分规则管理模块维护所有的数据节点切分规则,通过给定时间区间的开始和结束时间,数据切分规则管理模块搜索所有的数据节点切分规则,如果数据节点切分规则满足如下条件之一,则认为该数据节点切分规则和查询时间段相关:数据节点切分规则开始或者结束时间大于过滤时间区间的开始时间;数据节点切分规则开始时间小于过滤规则时间区间的结束时间。进一步地,当增加数据存储节点时,在数据切分规则管理模块中加入新的节点信息,数据切分规则管理模块将当前的数据节点切分规则写入历史记录中,同时设定这个规则的结束时间为当前时间,并生成包含新的节点的数据节点切分规则,并将变更的所有规则推送到保持持久连接的数据存储访问模块。进一步地,当一个或者多个数据存储节点或其备份节点临时失效时,数据切分规则管理模块生成新的去除失效节点的数据节点切分规则,记录数据节点切分规则的变更时间,并在该节点恢复的时候重新生成新的包含有恢复节点的数据节点切分规则。进一步地,数据存储节点访问模块处理的查询包含要筛选的哈希键值;同一条数据能够按照不同的哈希键值来计算存储节点,将同一数据存到哈希算法计算出的多个相同或者不同的节点上;数据存储节点访问模块处理的查询条件是仅仅指定的起始时间或者结束时间,或者同时指定两种,或者不指定任何其一。本专利技术所述的分布式数据库及其访问方法具有如下有益技术效果:1)在由于数据规模增大等原因添加数据存储节点时不需要根据最新的数据切分规则重新计算数据的存储节点并移动数据,避免数据迁移,同时也能够根据查询的时间区间高效定位数据所在节点。2)由于添加数据存储节点的便利性,可以方便快速的添加一个或者多个数据节点。由于数据的增加,整个分布式数据库中所有数据存储节点数据量最终趋于平衡。3)当某个数据存储节点及其所有的备份节点实效的情况下,分布式数据库仍然可以接收根据原有切分规则需要写入到该节点的数据,并且在节点恢复之后不需要从其它节点迁移数据回该节点以下将结合附图对本专利技术的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本专利技术的目的、特征和效果。附图说明图1是本专利技术的一个较佳实施例的分布式数据库结构示意图。具体实施方式本专利技术所述的分布式数据库包括数据切分规则管理模块,数据存储节点模块,数据存储节点访问模块。数据切分规则管理模块用于管理分布式数据库中当前使用的数据节点定位算法和规则,以及数据节点定位算法和规则的历史记录以及改该规则变更发生的时间点。数据切分规则管理模块要负责提供分布式数据库中存在的所有数据切分规则给数据存储节点访问模块。同时在数据切分规则发生变化的时候通知数据存储节点访问模块。数据切分规则管理模块监控所有数据存储节点模块,在数据存储节点及其备份节点临时失效的情况下,数据切分规则管理模块生成新的除去失效节点数据切分规则,并在该失效数据存储节点恢复的时候重新生成新的包含该节点的数据切分规则。数据切分规则包含数据切分哈希算法以及分布式数据库中数据节点的数目,每个节点的地址,连接建立的方式以及需要的凭据。数据切分哈希算法可以是一致性哈希算法,也可以是其它可以确保数据均衡分布的哈希算法。数据切分规则的作用是给定一条数据,根据该数据定义的哈希键值,对其执行根据节点数目配置的哈希算法,得到对应的数据节点。数据节点存储模块负责存储分配到该节点的数据,并对在该节点存储的数据进行查找。数本文档来自技高网...
一种分布式数据库及其访问方法

【技术保护点】
一种分布式数据库,其特征在于,包括数据存储节点模块、数据存储节点访问模块和数据切分规则管理模块;所述数据切分规则管理模块用于:管理分布式数据库中当前使用的数据节点切分规则;记录数据节点切分规则的变更历史;监控数据存储节点模块,在数据存储节点或其备份节点临时失效的情况下,生成新的除去失效节点的数据节点切分规则,并在该失效数据存储节点恢复的时候重新生成新的包含该数据节点的数据节点切分规则;在数据节点切分规则发生变化的时候通知数据存储节点访问模块;所述数据存储节点模块用于存储分配到该节点上的数据,并对在该节点存储的数据进行查找;所述数据存储节点访问模块用于和数据切分规则管理模块保持同步。

【技术特征摘要】
1.一种分布式数据库,其特征在于,包括数据存储节点模块、数据存储节点访问模块和数据切分规则管理模块;所述数据切分规则管理模块用于:管理分布式数据库中当前使用的数据节点切分规则;记录数据节点切分规则的变更历史;监控数据存储节点模块,在数据存储节点或其备份节点临时失效的情况下,生成新的除去失效节点的数据节点切分规则,并在该失效数据存储节点恢复的时候重新生成新的包含该数据节点的数据节点切分规则;在数据节点切分规则发生变化的时候通知数据存储节点访问模块;所述数据存储节点模块用于存储分配到该节点上的数据,并对在该节点存储的数据进行查找;所述数据存储节点访问模块用于和数据切分规则管理模块保持同步。2.如权利要求1所述的分布式数据库,其特征在于,所述数据节点切分规则包括数据节点切分哈希算法和数据存储节点的ID、地址、切分规则生效的开始时间和结束时间、连接建立的方式以及所需要的凭据。3.如权利要求2所述的分布式数据库,其特征在于,所述数据切分哈希算法为一致性哈希算法。4.一种分布式数据库访问方法,其特征在于,包括以下步骤:提供一种分布式数据库,包括数据存储节点模块、数据存储节点访问模块和数据切分规则管理模块;位于数据访问的客户端,在其启动的时候连接到数据切分规则管理模块,获取分布式数据库中正在使用的数据节点切分规则和已经存在历史的数据节点切分规则;当数据存储节点访问模块接收到新的数据时,数据存储节点访问模块对数据根据数据产生的时间字段来查找变更时间小于该时间的最新数据节点切分规则,使用最新数据节点切分规则对数据进行哈希计算,获取该数据需要存储的数据存储节点,并发送该数据到相应的数据存储节点。5.如权利要求4所述的分布式数据库访问方法,其特征在于,当数据存储节点访问模块接收到数据查询请求时,数据存储节点访问模块根据请求的时间范围找到包含在这个时间范围内的所有的数据节点切分规则;当查询条件不包含数据时间范围的起始值时,视为数据时间范围起始值为零;当查询条件不包含数据时间范围结束值时,视为数据时间范围结束值为无...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:上海兴容通信技术有限公司
类型:发明
国别省市:上海,31

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

1