一种海量数据的分布式存储系统.pdf

上传人:1*** 文档编号:6106445 上传时间:2019-04-12 格式:PDF 页数:6 大小:382.07KB
返回 下载 相关 举报
摘要
申请专利号:

CN201610757512.1

申请日:

2016.08.29

公开号:

CN106339475A

公开日:

2017.01.18

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 17/30申请日:20160829|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

联众智慧科技股份有限公司

发明人:

苗涛

地址:

310000 浙江省杭州市西湖区文三西路118号杭州电子商务大厦11-12层

优先权:

专利代理机构:

浙江杭知桥律师事务所 33256

代理人:

王梨华;陈丽霞

PDF下载: PDF下载
内容摘要

本发明涉及计算机技术领域,公开了一种海量数据的分布式存储系统,包括:数据库主键生成器,用于在应用服务器生成数据库主键;散列引擎,对数据库主键生成器生成的主键进行散列分布,将主键对应的数据平衡分布到后端的业务数据库分区表中;分库分表数据操作引擎,按照业务类型将数据库拆分为多个业务数据库组,每组业务数据库中包含多个实际数据库实例;同时对某个业务数据库实例的具体业务表也使用散列引擎进行拆分,保证单表的记录数不超过百万级;数据平衡器,将已有的历史数据部分迁移到新的业务数据库中。本发明可以尽量减少数据的迁移,使数据平衡器的工作量大大减轻,减少了对业务系统的影响,以保证数据操作引擎的正确访问和数据平衡性。

权利要求书

1.一种海量数据的分布式存储系统,其特征在于:包括:
数据库主键生成器,用于在应用服务器生成数据库主键,数据库主键生成器将一个长
整形long类型的64位数据进行分成系统毫秒数、应用服务器ID和毫秒内序列3个部分;
散列引擎,对数据库主键生成器生成的主键进行散列分布,将主键对应的数据平衡分
布到后端的业务数据库分区表中;
分库分表数据操作引擎,按照业务类型将数据库拆分为多个业务数据库组,每组业务
数据库中包含多个实际数据库实例,保证单库的数据量不超过TB级;同时对某个业务数据
库实例的具体业务表也使用散列引擎进行拆分,保证单表的记录数不超过百万级;
数据平衡器,将已有的历史数据部分迁移到新的业务数据库中。
2.根据权利要求1所述的一种海量数据的分布式存储系统,其特征在于:系统毫秒数为
UNIXTIME的纪元时间到当前时间所经历的毫秒数-系统上线的时间。
3.根据权利要求1所述的一种海量数据的分布式存储系统,其特征在于:应用服务器ID
占用10位,用于标识生成ID的服务器。
4.根据权利要求1所述的一种海量数据的分布式存储系统,其特征在于:毫秒内序列占
用12位,储存1—4096个数字,当1毫秒内需获取的ID大于4096个,多出的部分延迟到下一毫
秒获取。
5.一种如权利要求1所述的分库分表数据操作引擎的操作方法,其特征在于,包括如下
步骤:
(1)首先按照业务类型将数据库使用散列引擎拆分为多组业务数据库,每组业务数据
库中包含多个实际数据库实例,保证单库的数据量不超过TB级;同时对某个实际数据库实
例的具体业务表也使用散列引擎进行拆分,保证单表的记录数不超过百万级;
(2)应用服务器收到客户端请求,若为新增操作则调用主键生成器;若为修改或查询操
作则直接将业务类型,主键传入散列引擎;
(3)散列引擎根据业务类型确定数据所在的数据库实例ID,根据主键确定数据所在的
表ID,并调用分库分表操作引擎;
(4)分库分表操作引擎根据传入的数据库实例ID和表ID,存入数据或者查询出数据,原
路返回给客户端。

说明书

一种海量数据的分布式存储系统

技术领域

本发明涉及计算机技术领域,尤其涉及了一种海量数据的分布式存储系统。

背景技术

随着IT技术及互联网+的发展,当今很多行业的信息化建设越来越完善,并且逐步
将企业内部的信息对外开放,系统的使用者越来越多,访问频次指数级增长,使用者和系统
交互过程中产生的数据越来越多。产生了海量数据的存储及访问这个复杂而艰巨的问题,
它的主要难点有以下几个方面:

一、数据量过大,系统资源要求高。

如果说有单一表的数据量百万级、千万级甚至过亿,我们仍然可以通过增加数据
库服务器软硬件的方式加以解决。但当数据量到达十亿级、百亿甚至千亿级,传统服务器的
性能已经无法满足处理要求,而专有的大型机等服务器价格非常昂贵,企业基本无法承担。
同时,传统的数据库处理软件也无法负载如此大量的数据,必须通过合理的软件架构改造
进行处理。

二、扩展性不强,存在性能瓶颈。

对海量的数据进行处理,传统的硬件和数据库软件存在性能瓶颈,当到达此瓶颈
之后我们可以通过增加处理节点的方式来提高性能,但传统数据库软件对多节点的支持有
限,节点过多会使节点间通讯量大增,从而导致节点数量只能维持在个位数。

三、性价比不高,运行维护较难。

传统的小型机等服务器由于是专有硬件,采购价格非常高;传统数据库软件授权
和维护价格也非常高,导致系统一开始的建设投入很高。初期投入需要考虑系统3-5年的使
用,硬件和软件的配置较高,但初期根本没有那么多的数据和用户,导致前期硬件和软件性
能基本处于浪费状态。专有的硬件和传统数据库软件的维护技术要求较高,维护成本高。

发明内容

本发明针对现有技术中扩展性不强、性价比不高的缺点,提供了一种海量数据的
分布式存储系统。

为了解决上述技术问题,本发明通过下述技术方案得以解决:

一种海量数据的分布式存储系统,包括:

数据库主键生成器,用于在应用服务器生成数据库主键,数据库主键生成器将一
个长整形long类型的64位数据进行分成系统毫秒数、应用服务器ID和毫秒内序列3个部分;

散列引擎,对数据库主键生成器生成的主键进行散列分布,将主键对应的数据平
衡分布到后端的业务数据库分区表中;

分库分表数据操作引擎,按照业务类型将数据库拆分为多个业务数据库组,每组
业务数据库中包含多个实际数据库实例,保证单库的数据量不超过TB级;同时对某个业务
数据库实例的具体业务表也使用散列引擎进行拆分,保证单表的记录数不超过百万级;

数据平衡器,将已有的历史数据部分迁移到新的业务数据库中。

作为优选,系统毫秒数取UNIXTIME的纪元时间到当前时间所经历的毫秒数-系统
上线的时间。

作为优选,应用服务器ID占用10位,用于标识生成ID的服务器。

作为优选,毫秒内序列占用12位,储存1—4096个数字,当1毫秒内需获取的ID大于
4096个,多出的部分延迟到下一毫秒获取。

一种如上所述的分库分表数据操作引擎的操作方法,如下步骤:

(1)首先按照业务类型将数据库使用散列引擎拆分为多组业务数据库,每组业务
数据库中包含多个实际数据库实例,保证单库的数据量不超过TB级;同时对某个实际数据
库实例的具体业务表也使用散列引擎进行拆分,保证单表的记录数不超过百万级;

(2)应用服务器收到客户端请求,若为新增操作则调用主键生成器;若为修改或查
询操作则直接将业务类型,主键传入散列引擎;

(3)散列引擎根据业务类型确定数据所在的数据库实例ID,根据主键确定数据所
在的表ID,并调用分库分表操作引擎;

(4)分库分表操作引擎根据传入的数据库实例ID和表ID,存入数据或者查询出数
据,原路返回给客户端。

本发明由于采用了以上技术方案,具有显著的技术效果:当业务数据库组不能支
撑目前的使用时,需要向业务数据库组中添加新的业务数据库。由于分布式散列引擎可以
尽量减少数据的迁移,使数据平衡器的工作量大大减轻,减少了对业务系统的影响。当有新
的业务数据库加入到业务数据库组中时,数据平衡器负责将已有的历史数据部分迁移到新
的业务数据库中,以保证数据操作引擎的正确访问和数据的平衡性。

附图说明

图1是本发明一种海量数据的分布式存储系统的结构示意图;

图2是本发明一种海量数据的分布式存储系统中的主键的结构示意图。

具体实施方式

下面结合附图与实施例对本发明作进一步详细描述。

如图1至图2所示,一种海量数据的分布式存储系统,包括:

数据库主键生成器,用于在应用服务器生成数据库主键,数据库主键生成器将一
个长整形long类型的64位数据进行分成系统毫秒数、应用服务器ID和毫秒内序列3个部分;
系统毫秒数取UNIXTIME的纪元时间到当前时间所经历的毫秒数—系统上线的时间;数据平
衡器,将已有的历史数据部分迁移到新的业务数据库中;应用服务器ID占用10位,用于标识
生成ID的服务器;毫秒内序列占用12位,储存1—4096个数字,当1毫秒内需获取的ID大于
4096个,多出的部分延迟到下一毫秒获取;

散列引擎,对数据库主键生成器生成的主键进行散列分布,将主键对应的数据平
衡分布到后端的业务数据库分区表中;

分库分表数据操作引擎,按照业务类型将数据库拆分为多个业务数据库组,每组
业务数据库中包含多个实际数据库实例,保证单库的数据量不超过TB级;同时对某个业务
数据库实例的具体业务表也使用散列引擎进行拆分,保证单表的记录数不超过百万级。

一种如上所述的分库分表数据操作引擎的操作方法,如下步骤:

(1)首先按照业务类型将数据库使用散列引擎拆分为多组业务数据库,每组业务
数据库中包含多个实际数据库实例,保证单库的数据量不超过TB级;同时对某个实际数据
库实例的具体业务表也使用散列引擎进行拆分,保证单表的记录数不超过百万级;

(2)应用服务器收到客户端请求,若为新增操作则调用主键生成器;若为修改或查
询操作则直接将业务类型,主键传入散列引擎;

(3)散列引擎根据业务类型确定数据所在的数据库实例ID,根据主键确定数据所
在的表ID,并调用分库分表操作引擎;

(4)分库分表操作引擎根据传入的数据库实例ID和表ID,存入数据或者查询出数
据,原路返回给客户端。

本发明在一个集群中最大可以有1024台应用服务器,每台应用服务器可以在一个
毫秒内生成4096个ID,并保证其不重复使用139年。

此种主键方法的优点如下:

1、通过该ID可以反向计算出ID的生成时间、生成的应用服务器ID;

2、如同序列一样自增,但不依赖具体数据库;

3、减少数据库交互和热点,因为ID在应用服务器生成,性能很高。

在分布式系统中,对数据库服务器的添加删除,或者机器故障后自动脱离集群这
些操作是分布式数据库管理最基本的功能。

如果采用常用的hash(object)%N算法,那么在有机器添加或者删除后,很多原有
的数据就无法找到了,这样严重的违反了散列的单调性原则。本发明设计的散列分布引擎,
该引擎使用了一致性算列算法,满足了单调性和负载均衡的特性以及一般散列算法的分散
性。它对主键生成器生成的主键进行散列分布,将主键对应的数据平衡分布到后端的业务
数据库分区表中。

当业务数据库组不能支撑目前的使用时,需要向业务数据库组中添加新的业务数
据库。由于分布式散列引擎可以尽量减少数据的迁移,所以数据平衡器的工作量大大减轻,
减少了对业务系统的影响。当有新的业务数据库加入到业务数据库组中时,数据平衡器负
责将已有的历史数据部分迁移到新的业务数据库中,以保证数据操作引擎的正确访问和数
据的平衡性。

总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等
变化与修饰,皆应属本发明专利的涵盖范围。

一种海量数据的分布式存储系统.pdf_第1页
第1页 / 共6页
一种海量数据的分布式存储系统.pdf_第2页
第2页 / 共6页
一种海量数据的分布式存储系统.pdf_第3页
第3页 / 共6页
点击查看更多>>
资源描述

《一种海量数据的分布式存储系统.pdf》由会员分享,可在线阅读,更多相关《一种海量数据的分布式存储系统.pdf(6页珍藏版)》请在专利查询网上搜索。

本发明涉及计算机技术领域,公开了一种海量数据的分布式存储系统,包括:数据库主键生成器,用于在应用服务器生成数据库主键;散列引擎,对数据库主键生成器生成的主键进行散列分布,将主键对应的数据平衡分布到后端的业务数据库分区表中;分库分表数据操作引擎,按照业务类型将数据库拆分为多个业务数据库组,每组业务数据库中包含多个实际数据库实例;同时对某个业务数据库实例的具体业务表也使用散列引擎进行拆分,保证单表的记。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1