CN106354828A - 一种分布式数据库数据的分片方法及装置 - Google Patents
一种分布式数据库数据的分片方法及装置 Download PDFInfo
- Publication number
- CN106354828A CN106354828A CN201610777653.XA CN201610777653A CN106354828A CN 106354828 A CN106354828 A CN 106354828A CN 201610777653 A CN201610777653 A CN 201610777653A CN 106354828 A CN106354828 A CN 106354828A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- burst
- data fragmentation
- fragmentation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种分布式数据库数据的分片方法及装置,其中,所述方法包括:确定安全组内节点的数量;确定每个节点中数据分片的数量,其中,每个节点中数据分片的数量不大于所述安全组内节点的数量;根据所述节点和数据分片的数量部署数据分片。通过根据所安全组内节点和数据分片的数量部署数据分片,当安全组内存在机器损坏时,可以由当前安全组内的多台机器来承担损坏机器的访问压力,避免了访问压力由单台机器承担,避免了短板效应的出现,此外还具有较强的容错能力,还可实现负载均衡。
Description
技术领域
本发明属于分布式数据库技术领域,尤其是涉及一种分布式数据库数据的分片方法及装置。
背景技术
在当代社会,数据库已经变得异常重要,在各行各业都会找到利用数据库去存储数据的例子。随着大数据与云计算时代的到来以及人们对于大数据的需求越发迫切,传统的单机数据库系统已经无法满足客户的需求。传统的单机数据库无法完成海量数据的计算与存储,因此,分布式数据库得到了前所未有的发展。而随着分布式存储技术、高速网络传输技术以及并行计算等高新技术的发展与成熟,分布式数据库已经成为了数据库行业的霸主。
分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量。近年来,随着数据量的高速增长,分布式数据库技术也得到了快速的发展,传统的关系型数据库开始从集中式模型向分布式架构发展,基于关系型的分布式数据库在保留了传统数据库的数据模型和基本特征下,从集中式存储走向分布式存储,从集中式计算走向分布式计算。
分布式数据库需要将用户数据根据某种数据分布算法存储数据库的各个工作机器中,许多业界知名的公司都有比较知名的分布式数据库产品,例如Google、Amazon等知名公司的分布式存储系统就是将数据分成许多数据块,将数据块已经数据块的备份块分布到数据库集群中的各个节点去存储与计算。
分布式数据库在部署数据分片或者数据块时,需要考虑很多因素,包括:如何保证负载均衡,如果保证高可用性,如何保证灵活可扩展性,以及在发生机器故障的时候如果保证负载均衡,避免其他机器压力过大造成其他机器在短时间内发生故障。
分布式数据库的数据分片部署方式,业界有很多产品都是采用多备份的方式,但是这些方式无法同时保证灵活可扩展性、高可靠性与负载均衡等关键特性。因此,对于分布式数据库产品来说,如何同时保证这些特性是分片部署领域需要研究的关键点。
发明内容
本发明提供了一种分布式数据库数据的分片方法及装置,以实现数据分片部署具有灵活可扩展性、高可靠性与负载均衡特性的技术目的。
一方面,本发明实施例提供了一种分布式数据库数据的分片方法,包括:
确定安全组内节点的数量;
确定每个节点中数据分片的数量,其中,每个节点中数据分片的数量不大于所述安全组内节点的数量;
根据所述节点和数据分片的数量部署数据分片。
进一步的,所述每个安全组的节点数量与节点中数据分片的数量差值为一。
进一步的,所述根据所述节点和数据分片的数量部署数据分片,包括:
将数据分片和所述数据分片对应的备份分片分布在不同的节点中。
进一步的,所述根据所述节点和数据分片的数量部署数据分片,包括:
同一节点中只包括同一数据分片的一个备份分片。
更进一步的,所述根据所述节点和数据分片的数量部署数据分片,包括:
按照预设的排序算法署数据分片。
另一方面,本发明实施例提供了一种分布式数据库数据的分片装置,包括:
节点确定单元,用于确定安全组内节点的数量;
分片确定单元,用于确定每个节点中数据分片的数量,其中,每个节点中数据分片的数量不大于所述安全组内节点的数量;
部署单元,用于根据所述节点和数据分片的数量部署数据分片。
进一步的,所述每个安全组的节点数量与节点中数据分片的数量差值为一。
进一步的,所述部署单元用于:
将数据分片和所述数据分片对应的备份分片分布在不同的节点中。
进一步的,所述部署单元用于:
同一节点中只包括同一数据分片的一个备份分片。
更进一步的,所述部署单元用于:
按照预设的排序算法部署数据分片。
本发明实施例通过根据所安全组内节点和数据分片的数量部署数据分片,当安全组内存在机器损坏时,可以由当前安全组内的多台机器来承担损坏机器的访问压力,避免了访问压力由单台机器承担,避免了短板效应的出现,此外还具有较强的容错能力,还可实现负载均衡。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的分布式数据库数据的分片方法的流程示意图;
图2是本发明实施例二提供的分布式数据库数据的分片方法的流程示意图;
图3是本发明实施例三提供的分布式数据库数据的分片装置的结构示意图。
具体实施方式
为了更好的理解本发明,下面结合具体实施例和附图对本发明进行进一步的描述。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例一提供的分布式数据库数据的分片方法的流程图,本实施例可适用于在分布式数据库中对数据分片进行布置的情况,该方法可以由分布式数据库数据的分片装置来执行,该装置可由软件/硬件方式实现,并可集成于分布式数据库系统的管理节点中。
参见图1,所述分布式数据库数据的分片方法,包括:
S110,确定安全组内节点的数量。
分布式数据库集群可划分为多个安全组,每个安全组内包含多个节点。在划分时,通过管理节点获取安全组内的节点的数量。
S120,确定每个节点中数据分片的数量,其中,每个节点中数据分片的数量不大于所述安全组内节点的数量。
每个节点可以存储多个数据分片,通过管理节点中的元数据表可获取每个节点存储的数据分片的数量。其中,每个节点所存储的数据分片可以有不超过节点所属安全组内机器数目的备份分片。
S130,据所述节点和数据分片的数量部署数据分片。
每一个数据分片与其备份分片不在一台机器中,同时每一个数据分片的备份分片之间也互相不在一台机器中并且尽可能的分散数据库节点中的数据分片的备份分片到当前安全组内的不同机器中;当安全组内存在机器损坏时,可以由当前安全组内的多台机器来承担损坏机器的访问压力,避免了访问压力由单台机器承担,避免了短板效应的出现。
优选的,在每一个安全组内,每一个数据分片与其备份分片不在一台机器中,同时每一个数据分片的备份分片之间也互相不在一台机器中并且尽可能的分散数据库节点中的数据分片的备份分片到当前安全组内的不同机器中具体为:为了保证出现机器或者数据分片损坏时,损坏的数据分片的备份分片仍然可用,因此数据分片与其备份分片不可放到同一台机器中,同理同一数据分片的多个备份分片也不可放到同一台机器中,以防容错能力减弱。
优选的,当安全组内存在机器损坏时,可以由当前安全组内的多台机器来承担损坏机器的访问压力,避免了访问压力由单台机器承担具体为:若在某个安全组内发生了小于N台机器损坏时,由当前安全组内的多台机器来承担损坏机器的负载,因为损坏机器中的数据分片的备份分片会被发明中的算法分布到安全组内的各个机器中。
当发生了机器损坏时,由安全组内其他机器来共同承担损坏机器的访问负载,防止了出现单台机器负载过大的情况导致的短时间内更多的机器损坏。可以极大限度的保护安全组内的机器,保证发生机器损坏时其他的正常机器不会因为承担过大压力造成短时间内也损坏,避免了短板效应的发生。
本实施例通过根据所安全组内节点和数据分片的数量部署数据分片,当安全组内存在机器损坏时,可以由当前安全组内的多台机器来承担损坏机器的访问压力,避免了访问压力由单台机器承担,避免了短板效应的出现,此外还具有较强的容错能力,还可实现负载均衡。
实施例二
图2是本发明实施例二提供的数据持久化分布的方法的流程示意图,本发明实施例以上述实施例为基础,进一步的,将根据所述节点和数据分片的数量部署数据分片具体优化为:按照预设的排序算法署数据分片。
参见图2,所述分布式数据库数据的分片方法,包括:
S210,确定安全组内节点的数量。
S220,确定每个节点中数据分片的数量,其中,每个节点中数据分片的数量不大于所述安全组内节点的数量。
S230,按照预设的排序算法部署数据分片。
具体的,可采用如下排序算法实现部署数据分片。
设置t,i,j,k的值为1
当t值小于等于bak_num时,执行如下步骤:
当i值小于等于N时,执行如下步骤:
设置pos为0
设置idx为(i+t)对N取余数的值
当j值小于等于N-1时,执行如下步骤:
设置B[j]为idx
设置idx为(idx+1)对N取余数的值
如果idx的值等于i的时候,执行如下步骤:
设置idx为(idx+1)对N取余数的值
设置j为j+1
当k的值小于等于M时,执行如下步骤:
放置A[i][k]到机器A[B[pos]]中
设置pos为(pos+1)对(N-1)取余数的值
设置k为k+1
设置i为i+1
设置t为t+1。
其中,N表示分布式数据库安全组内的机器数目,M表示分布式数据库每一台机器中的最大主分片数,bak_num表示备份分片数,其中1≤bak_num≤N-1。A表示当前安全组,其中A[i]表示当前安全组中的第i台机器,A[i][j]表示第i台机器中的第j个分片。B是一个中间数组,其值存储的是A中的机器下标。
本实施例通过将根据所述节点和数据分片的数量部署数据分片具体优化为:按照预设的排序算法署数据分片。,可以忽略每个安全组的机器数、每台机器中的分片数以及每个分片的备份分片数等信息,即无论每个安全组有多少台机器、每台机器有多少个数据分片以及数据分片有多少个备份分片,都可以将整个安全组内的数据分片的备份分片放置到安全组的机器中,并且保证主分片与备份分片不在同一台机器中以及每个主分片的的多个备份分片互相不在同一台机器中,最大限度的保证了负载均衡与系统的高可靠性。
实施例三
图3是本发明实施例三提供的分布式数据库数据的分片装置的结构示意图,如图3所示,所述装置包括:
节点确定单元310,用于确定安全组内节点的数量;
分片确定单元320,用于确定每个节点中数据分片的数量,其中,每个节点中数据分片的数量不大于所述安全组内节点的数量;
部署单元330,用于根据所述节点和数据分片的数量部署数据分片。
进一步的,所述每个安全组的节点数量与节点中数据分片的数量差值为一。
进一步的,所述部署单元用于:
将数据分片和所述数据分片对应的备份分片分布在不同的节点中。
进一步的,所述部署单元用于:
同一节点中只包括同一数据分片的一个备份分片。
更进一步的,所述部署单元用于:
按照预设的排序算法部署数据分片。
本发明实施例通过根据所安全组内节点和数据分片的数量部署数据分片,当安全组内存在机器损坏时,可以由当前安全组内的多台机器来承担损坏机器的访问压力,避免了访问压力由单台机器承担,避免了短板效应的出现,此外还具有较强的容错能力,还可实现负载均衡。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种分布式数据库数据的分片方法,其特征在于,包括:
确定安全组内节点的数量;
确定每个节点中数据分片的数量,其中,每个节点中数据分片的数量不大于所述安全组内节点的数量;
根据所述节点和数据分片的数量部署数据分片。
2.根据权利要求1所述的方法,其特征在于,所述每个安全组的节点数量与节点中数据分片的数量差值为一。
3.根据权利要求1所述的方法,其特征在于,所述根据所述节点和数据分片的数量部署数据分片,包括:
将数据分片和所述数据分片对应的备份分片分布在不同的节点中。
4.根据权利要求3所述的方法,其特征在于,所述根据所述节点和数据分片的数量部署数据分片,包括:
同一节点中只包括同一数据分片的一个备份分片。
5.根据权利要求1-4任一所述的分片方法,其特征在于,所述根据所述节点和数据分片的数量部署数据分片,包括:
按照预设的排序算法署数据分片。
6.一种分布式数据库数据的分片装置,其特征在于,包括:
节点确定单元,用于确定安全组内节点的数量;
分片确定单元,用于确定每个节点中数据分片的数量,其中,每个节点中数据分片的数量不大于所述安全组内节点的数量;
部署单元,用于根据所述节点和数据分片的数量部署数据分片。
7.根据权利要求6所述的装置,其特征在于,所述每个安全组的节点数量与节点中数据分片的数量差值为一。
8.根据权利要求6所述的装置,其特征在于,所述部署单元用于:
将数据分片和所述数据分片对应的备份分片分布在不同的节点中。
9.根据权利要求8所述的装置,其特征在于,所述部署单元用于:
同一节点中只包括同一数据分片的一个备份分片。
10.根据权利要求6-9任一所述的分片方法,其特征在于,所述部署单元用于:
按照预设的排序算法部署数据分片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610777653.XA CN106354828A (zh) | 2016-08-31 | 2016-08-31 | 一种分布式数据库数据的分片方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610777653.XA CN106354828A (zh) | 2016-08-31 | 2016-08-31 | 一种分布式数据库数据的分片方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106354828A true CN106354828A (zh) | 2017-01-25 |
Family
ID=57856595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610777653.XA Pending CN106354828A (zh) | 2016-08-31 | 2016-08-31 | 一种分布式数据库数据的分片方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106354828A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106951456A (zh) * | 2017-02-24 | 2017-07-14 | 广东广信通信服务有限公司 | 一种内存数据库系统及数据处理系统 |
CN108153849A (zh) * | 2017-12-20 | 2018-06-12 | 杭州登虹科技有限公司 | 一种数据库表切分方法、装置、系统和介质 |
WO2019041701A1 (zh) * | 2017-08-30 | 2019-03-07 | 深圳云天励飞技术有限公司 | 集群扩展方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034739A (zh) * | 2012-12-29 | 2013-04-10 | 天津南大通用数据技术有限公司 | 一种分布式存储系统及其更新和查询方法 |
CN104102475A (zh) * | 2013-04-11 | 2014-10-15 | 腾讯科技(深圳)有限公司 | 分布式并行任务处理的方法、装置及系统 |
CN105573680A (zh) * | 2015-12-25 | 2016-05-11 | 北京奇虎科技有限公司 | 副本数据的存储方法及装置 |
-
2016
- 2016-08-31 CN CN201610777653.XA patent/CN106354828A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034739A (zh) * | 2012-12-29 | 2013-04-10 | 天津南大通用数据技术有限公司 | 一种分布式存储系统及其更新和查询方法 |
CN104102475A (zh) * | 2013-04-11 | 2014-10-15 | 腾讯科技(深圳)有限公司 | 分布式并行任务处理的方法、装置及系统 |
CN105573680A (zh) * | 2015-12-25 | 2016-05-11 | 北京奇虎科技有限公司 | 副本数据的存储方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106951456A (zh) * | 2017-02-24 | 2017-07-14 | 广东广信通信服务有限公司 | 一种内存数据库系统及数据处理系统 |
WO2019041701A1 (zh) * | 2017-08-30 | 2019-03-07 | 深圳云天励飞技术有限公司 | 集群扩展方法、装置、电子设备及存储介质 |
US10896056B2 (en) | 2017-08-30 | 2021-01-19 | Shenzhen Intellifusion Technologies Co., Ltd. | Cluster expansion method and apparatus, electronic device and storage medium |
CN108153849A (zh) * | 2017-12-20 | 2018-06-12 | 杭州登虹科技有限公司 | 一种数据库表切分方法、装置、系统和介质 |
CN108153849B (zh) * | 2017-12-20 | 2020-10-23 | 杭州登虹科技有限公司 | 一种数据库表切分方法、装置、系统和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103312825B (zh) | 一种数据分布存储方法和装置 | |
CN108829350A (zh) | 基于区块链的数据迁移方法和装置 | |
CN104166606B (zh) | 文件备份方法和主存储设备 | |
EP2701062B1 (en) | Virtual machine administration device, virtual machine administration method, and program | |
CN102035865B (zh) | 数据存储及数据寻址方法、系统和设备 | |
CN109144414A (zh) | 区块链数据的多级存储方法和装置 | |
CN106055277A (zh) | 一种去中心化的分布式异构存储系统数据分布方法 | |
CN107844879A (zh) | 订单分配方法和装置 | |
CN108154244A (zh) | 地产电力设备的运维方法、装置和系统 | |
CN102521051B (zh) | 应用于图算法的Map Reduce系统中的任务调度方法、装置和系统 | |
CN106354828A (zh) | 一种分布式数据库数据的分片方法及装置 | |
CN103929454A (zh) | 一种云计算平台中负载均衡存储的方法和系统 | |
CN106407244A (zh) | 基于多数据库的数据查询方法、系统和装置 | |
CN115330275B (zh) | 一种退役电池的梯次利用方法及装置 | |
CN103246484B (zh) | 一种数据存储方法、装置及系统 | |
CN107104820B (zh) | 基于f5服务器节点的动态扩容日常运维方法 | |
CN106021048A (zh) | 一种磁盘组乱序验证的方法及装置 | |
CN109301880A (zh) | 基于机组静态及动态电压支撑效果的直流近区最小开机确定方法、装置及系统 | |
CN106372161A (zh) | 一种分布式数据库数据备份分片部署方法及装置 | |
CN104636218B (zh) | 数据恢复方法及装置 | |
CN104408539A (zh) | 一种配电网资源优化配置综合评价方法及系统 | |
CN108055161A (zh) | 一种组网优化方法及装置 | |
CN114513498B (zh) | 文件传输校验方法、装置、计算机设备和存储介质 | |
CN106227627A (zh) | 一种raid在数据恢复后再插入新磁盘的数据分布方法及系统 | |
CN109032762A (zh) | 虚拟机回溯方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170125 |
|
RJ01 | Rejection of invention patent application after publication |