CN111240577A - 基于mpp数据库的数据多分片存储方法及装置 - Google Patents

基于mpp数据库的数据多分片存储方法及装置 Download PDF

Info

Publication number
CN111240577A
CN111240577A CN201811433554.5A CN201811433554A CN111240577A CN 111240577 A CN111240577 A CN 111240577A CN 201811433554 A CN201811433554 A CN 201811433554A CN 111240577 A CN111240577 A CN 111240577A
Authority
CN
China
Prior art keywords
host
physical configuration
configuration parameter
data
score
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.)
Granted
Application number
CN201811433554.5A
Other languages
English (en)
Other versions
CN111240577B (zh
Inventor
朱祥磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile Group Shandong Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Shandong Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile Group Shandong Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201811433554.5A priority Critical patent/CN111240577B/zh
Publication of CN111240577A publication Critical patent/CN111240577A/zh
Application granted granted Critical
Publication of CN111240577B publication Critical patent/CN111240577B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种基于MPP数据库的数据多分片存储方法及装置,所述方法包括:获取每一主机的每一物理配置参数的量化值;根据每一主机的每一物理配置参数的量化值,分别为每一主机分配不同数量的数据分片和不同大小的数据分片。本发明实施例提供的基于MPP数据库的数据多分片存储方法及装置,根据MPP数据库集群中每一主机的物理配置,自适应地为每一主机分配不同数量的数据分片和不同大小的数据分片,有效地消除了MPP数据库的木桶效应缺陷,提高了MPP数据库的数据存储和数据计算的效率,促使MPP数据库在灵活性和通用性上更进一步。

Description

基于MPP数据库的数据多分片存储方法及装置
技术领域
本发明实施例涉及数据库技术领域,尤其涉及一种基于MPP数据库的数据多分片存储方法及装置。
背景技术
多分片技术解决了大规模并行处理(Massively Parallel Processing,MPP)数据库集群的单机故障时,集群性能下降过于严重的问题,即大家熟知的木桶效应或者短板效应问题。
现有技术中,主流的MPP数据库包括Vertica、Greenplum、GBase等,其中GBase和Greenplum都已经实现多分片机制,两款产品多分片机制类似,都是将一台主机上的数据根据哈希hash分布算法切分成均匀的N份,每一份为一个数据分片,简称分片或segment,实现方法略有区别。GBase实现方式是单台主机上只安装一个节点数据库,在节点数据库中将数据切分成均匀N个segment;而Greenplum是在单台主机上安装多个节点数据库,然后将数据均匀切分成多份,存储在每个节点数据库中。无论是GBase还是Greenplum,现有单分片或者多分片机制都要求各节点分片数据分布均匀。
从MPP数据库原理看,现有技术中的数据对分片存储技术,最佳应用场景是各分片数据均匀分布,这样SQL任务并行执行,数据库性能最佳。因此,在规划硬件资源时,往往建议提供配置一致或者配置比较接近的主机,一方面可以达到资源利用最大化,另一方面MPP数据库集群性能也能达到最高水平。
但是,近年来,x86服务器硬件水平飞速发展,基本2-3年主机配置就能提升30%-50%不等。随着业务不断发展,特别是4G网络不断发展,流量数据爆发式增长,原本规划3年的MPP数据库系统,系统上线1年多,主机资源已经比较吃紧,特别是磁盘空间已经无法满足业务要求,系统扩容迫在眉睫。扩容新采购的主机配置比原有MPP数据库主机要高很多,但是现有技术中的MPP数据库的特点是,数据均匀分布,SQL并行执行,最终的结果是,虽然新购置的主机配置高,存储空间大,但是受限于MPP数据库现有机制,多余的资源无法利用,这也是MPP数据库众所周知的短板效应,扩容时,老主机变成系统短板。即使进行了扩容,系统整体的数据存储和计算效率并没有显著地提高。
发明内容
本发明实施例的目的是提供一种克服上述问题或者至少部分地解决上述问题的基于MPP数据库的数据多分片存储方法及装置。
为了解决上述技术问题,一方面,本发明实施例提供一种基于MPP数据库的数据多分片存储方法,包括:
获取每一主机的每一物理配置参数的量化值;
根据每一主机的每一物理配置参数的量化值,分别为每一主机分配不同数量的数据分片和不同大小的数据分片。
另一方面,本发明实施例提供一种基于MPP数据库的数据多分片存储装置,包括:
获取模块,用于获取每一主机的每一物理配置参数的量化值;
分配模块,用于根据每一主机的每一物理配置参数的量化值,分别为每一主机分配不同数量的数据分片和不同大小的数据分片。
再一方面,本发明实施例提供一种电子设备,包括:
存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述的方法。
又一方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时,实现上述的方法。
本发明实施例提供的基于MPP数据库的数据多分片存储方法及装置,根据MPP数据库集群中每一主机的物理配置,自适应地为每一主机分配不同数量的数据分片和不同大小的数据分片,可以利用不同配置的主机构建MPP数据库集群,有效地消除了MPP数据库的木桶效应缺陷,提高了MPP数据库的数据存储和数据计算的效率,确保资源利用和集群性能最大化,促使MPP数据库在灵活性和通用性上更进一步。
附图说明
图1为本发明实施例提供的基于MPP数据库的数据多分片存储方法示意图;
图2为本发明实施例提供的基于MPP数据库的数据多分片存储装置示意图;
图3为本发明实施例提供的基于MPP数据库的数据多分片存储机制示意图;
图4为本发明实施例提供的SQL任务执行示意图;
图5为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的基于MPP数据库的数据多分片存储方法示意图,如图1所示,本发明实施例提供一种基于MPP数据库的数据多分片存储方法,其执行主体为基于MPP数据库的数据多分片存储装置,以下简称存储装置,该方法包括:
步骤S101、获取每一主机的每一物理配置参数的量化值;
步骤S102、根据每一主机的每一物理配置参数的量化值,分别为每一主机分配不同数量的数据分片和不同大小的数据分片。
具体来说,本发明实施例以运营商实际场景需求为出发点,对现有多分片机制进行改进,增加了数据分片个数自适应功能和数据分片大小自适应功能,即,MPP数据库集群内部的各主机中分布的数据分片个数和数据分片大小都可以根据主机的物理配置来自动配置。
在新建MPP数据库系统时,不再硬性地要求主机物理配置一致或者接近,可以是不同批次、不同厂家、不同配置的主机混合使用,配置越高的主机分配的数据总量越多,分配的数据分片的个数也越多,配置越低的主机分配的数据总量越少,分配的数据分片的个数也越少。
MPP数据库扩容时,新扩容主机配置比原有主机高,则新扩容主机分配的数据总量越多,分配的数据分片的个数也越多。
首先,获取MPP数据库集群内部的每一主机的每一物理配置参数的量化值。物理配置参数的量化值用来衡量主机的配置高低,主机的物理配置参数至少包括CPU核数(CPUCores)、磁盘大小(Disk Size)和内存大小(Memory Size)中的任一种,也可以包括CPU类型或者磁盘转速。
然后,根据每一主机的每一物理配置参数的量化值,分别为每一主机分配不同数量的数据分片和不同大小的数据分片。配置越高的主机分配的数据总量越多,分配的数据分片的个数也越多,配置越低的主机分配的数据总量越少,分配的数据分片的个数也越少。
本发明实施例提供的基于MPP数据库的数据多分片存储方法,根据MPP数据库集群中每一主机的物理配置,自适应地为每一主机分配不同数量的数据分片和不同大小的数据分片,可以利用不同配置的主机构建MPP数据库集群,有效地消除了MPP数据库的木桶效应缺陷,提高了MPP数据库的数据存储和数据计算的效率,确保资源利用和集群性能最大化,促使MPP数据库在灵活性和通用性上更进一步。
在上述实施例的基础上,进一步地,所述根据每一主机的每一物理配置参数的量化值,分别为每一主机分配不同数量的数据分片和不同大小的数据分片,具体包括:
根据每一主机的每一物理配置参数的量化值,获取每一物理配置参数的最小量化值;
分别根据每一物理配置参数的最小量化值,计算每一主机的每一物理配置参数的相对评分;
分别根据每一主机的每一物理配置参数的相对评分,获取每一主机的综合评分;
分别将每一主机的综合评分,输入至预设算法模型,输出分配给每一主机的数据分片的数量和大小。
具体来说,获取MPP数据库集群内部的每一主机的每一物理配置参数的量化值之后,根据每一主机的每一物理配置参数的量化值,分别为每一主机分配不同数量的数据分片和不同大小的数据分片。配置越高的主机分配的数据总量越多,分配的数据分片的个数也越多,配置越低的主机分配的数据总量越少,分配的数据分片的个数也越少。
数据分配的具体步骤如下:
1、根据每一主机的每一物理配置参数的量化值,获取每一物理配置参数的最小量化值。即,针对一种物理配置参数,遍历每一主机的该物理配置参数的量化值,找出最小的一个。
2、分别根据每一物理配置参数的最小量化值,计算每一主机的每一物理配置参数的相对评分。
3、分别根据每一主机的每一物理配置参数的相对评分,获取每一主机的综合评分。
4、分别将每一主机的综合评分,输入至预设算法模型,输出分配给每一主机的数据分片的数量和大小。
本发明实施例提供的基于MPP数据库的数据多分片存储方法,根据MPP数据库集群中每一主机的物理配置,自适应地为每一主机分配不同数量的数据分片和不同大小的数据分片,可以利用不同配置的主机构建MPP数据库集群,有效地消除了MPP数据库的木桶效应缺陷,提高了MPP数据库的数据存储和数据计算的效率,确保资源利用和集群性能最大化,促使MPP数据库在灵活性和通用性上更进一步。
在以上各实施例的基础上,进一步地,所述根据每一物理配置参数的最小量化值,计算每一主机的每一物理配置参数的相对评分的计算公式如下:
Sij=Aij/Pj_min*100
其中,Sij为第i个主机的第j个物理配置参数的相对评分,Aij为第i个主机的第j个物理配置参数的量化值,Pj_min为第j个物理配置参数的最小量化值。
具体来说,获取每一物理配置参数的最小量化值之后,根据每一物理配置参数的最小量化值,计算每一主机的每一物理配置参数的相对评分的计算公式如下:
Sij=Aij/Pj_min*100
其中,Sij为第i个主机的第j个物理配置参数的相对评分,Aij为第i个主机的第j个物理配置参数的量化值,Pj_min为第j个物理配置参数的最小量化值。
本发明实施例提供的基于MPP数据库的数据多分片存储方法,根据MPP数据库集群中每一主机的物理配置,自适应地为每一主机分配不同数量的数据分片和不同大小的数据分片,可以利用不同配置的主机构建MPP数据库集群,有效地消除了MPP数据库的木桶效应缺陷,提高了MPP数据库的数据存储和数据计算的效率,确保资源利用和集群性能最大化,促使MPP数据库在灵活性和通用性上更进一步。
在以上各实施例的基础上,进一步地,所述分别根据每一主机的每一物理配置参数的相对评分,获取每一主机的综合评分的计算公式如下:
Si=min{Si1,Si2,…,Sij}
其中,Si为第i个主机的综合评分,Si1为第i个主机的第1个物理配置参数的相对评分,Si2为第i个主机的第2个物理配置参数的相对评分,Sij为第i个主机的第j个物理配置参数的相对评分。
具体来说,计算出每一主机的每一物理配置参数的相对评分之后,根据每一主机的每一物理配置参数的相对评分,获取每一主机的综合评分的计算公式如下:
Si=min{Si1,Si2,…,Sij}
其中,Si为第i个主机的综合评分,Si1为第i个主机的第1个物理配置参数的相对评分,Si2为第i个主机的第2个物理配置参数的相对评分,Sij为第i个主机的第j个物理配置参数的相对评分。
本发明实施例提供的基于MPP数据库的数据多分片存储方法,根据MPP数据库集群中每一主机的物理配置,自适应地为每一主机分配不同数量的数据分片和不同大小的数据分片,可以利用不同配置的主机构建MPP数据库集群,有效地消除了MPP数据库的木桶效应缺陷,提高了MPP数据库的数据存储和数据计算的效率,确保资源利用和集群性能最大化,促使MPP数据库在灵活性和通用性上更进一步。
在以上各实施例的基础上,进一步地,所述预设算法模型如下:
Figure BDA0001883224480000061
Ni=Si*N/K*Mi
其中,Mi为分配给第i个主机的数据分片的数量,Si为第i个主机的综合评分,K为预设常数,
Figure BDA0001883224480000062
表示向下取整,Ni为分配给第i个主机的数据分片的大小,N为预设常数。
具体来说,计算分配给每一主机的数据分片的数量和大小时使用的预设算法模型如下:
Figure BDA0001883224480000071
Ni=Si*N/K*Mi
其中,Mi为分配给第i个主机的数据分片的数量,Si为第i个主机的综合评分,K为预设常数,
Figure BDA0001883224480000072
表示向下取整,Ni为分配给第i个主机的数据分片的大小,N为预设常数。
计算时,以配置最低的主机为基准节点,配置最低的主机设置2个数据分片,经过试验,常数K的值设置为50。
数据分配时,采用hash算法自动分配,设置65536个键值,将所有数据切分为65536份,N为分配给配置最低的主机的数据分片的大小。
本发明实施例提供的基于MPP数据库的数据多分片存储方法,根据MPP数据库集群中每一主机的物理配置,自适应地为每一主机分配不同数量的数据分片和不同大小的数据分片,可以利用不同配置的主机构建MPP数据库集群,有效地消除了MPP数据库的木桶效应缺陷,提高了MPP数据库的数据存储和数据计算的效率,确保资源利用和集群性能最大化,促使MPP数据库在灵活性和通用性上更进一步。
图2为本发明实施例提供的基于MPP数据库的数据多分片存储装置示意图,如图2所示,本发明实施例提供一种基于MPP数据库的数据多分片存储装置,用于执行上述任一实施例中所述的方法,具体包括获取模块201和分配模块202,其中:获取模块201用于获取每一主机的每一物理配置参数的量化值;分配模块202用于根据每一主机的每一物理配置参数的量化值,分别为每一主机分配不同数量的数据分片和不同大小的数据分片。
具体来说,本发明实施例以运营商实际场景需求为出发点,对现有多分片机制进行改进,增加了数据分片个数自适应功能和数据分片大小自适应功能,即,MPP数据库集群内部的各主机中分布的数据分片个数和数据分片大小都可以根据主机的物理配置来自动配置。
在新建MPP数据库系统时,不再硬性地要求主机物理配置一致或者接近,可以是不同批次、不同厂家、不同配置的主机混合使用,配置越高的主机分配的数据总量越多,分配的数据分片的个数也越多,配置越低的主机分配的数据总量越少,分配的数据分片的个数也越少。
MPP数据库扩容时,新扩容主机配置比原有主机高,则新扩容主机分配的数据总量越多,分配的数据分片的个数也越多。
首先,通过获取模块201获取MPP数据库集群内部的每一主机的每一物理配置参数的量化值。物理配置参数的量化值用来衡量主机的配置高低,主机的物理配置参数至少包括CPU核数(CPU Cores)、磁盘大小(Disk Size)和内存大小(Memory Size)中的任一种,也可以包括CPU类型或者磁盘转速。
然后,通过分配模块202根据每一主机的每一物理配置参数的量化值,分别为每一主机分配不同数量的数据分片和不同大小的数据分片。配置越高的主机分配的数据总量越多,分配的数据分片的个数也越多,配置越低的主机分配的数据总量越少,分配的数据分片的个数也越少。
本发明实施例提供的基于MPP数据库的数据多分片存储装置,根据MPP数据库集群中每一主机的物理配置,自适应地为每一主机分配不同数量的数据分片和不同大小的数据分片,可以利用不同配置的主机构建MPP数据库集群,有效地消除了MPP数据库的木桶效应缺陷,提高了MPP数据库的数据存储和数据计算的效率,确保资源利用和集群性能最大化,促使MPP数据库在灵活性和通用性上更进一步。
下面通过一个具体例子进行说明:
图3为本发明实施例提供的基于MPP数据库的数据多分片存储机制示意图,如图3所示,MPP数据库集群N个主机节点中,节点(Node)2分片大小比其他节点分片稍大,Node3分片个数比其他主机多。改进后的多分片机制是,选取配置稍低的主机作为基准,配置2个数据分片,将所有主机cpu、磁盘等资源(物理配置)量化,与基准比较得到一个x因子,其他主机资源量化后,与基准主机比较,根据比较结果得到每个主机分片个数和分片大小。
主备分片分配规则说明:
每个节点1个主分片时,将第n个主机节点的备份分片存放到第n+1个主机节点上。
每个节点2个主分片时,将第n个主机节点主分片1的备份分片放到第n+1个主机节点上,主分片2的备份分片放到下第n+2个主机节点上。
分片更多时以此类推,若某个节点上已有备份分片个数等于主分片个数,则n再加1。
注:集群最后一个主机节点的下一个主机节点是第一个主机节点,形成一个环形结构,为保证主备分片不在同一台主机上,建议节点主分片个数多的优先分配。
1、多分片技术下数据分布机制
采用多分片技术后,数据分布算法不变,依然使用hash分布算法,但是数据分布配置表需要增加物理节点与逻辑分片对应关系信息;单分片机制中,物理节点与逻辑分片是一对一关系,数据结构中,nodeid泛指物理节点和逻辑分片。因此,多分片机制下,数据分布配置表结构调整如下:
struct segment_hashmap(
nodeid int,#物理节点编号
segmentid int,#逻辑分片编号
hashkey int#hash键值,字段值经过crc32计算并取余后结果
);
集群数据分布hash算法,设置65536个键值,将所有数据切分为65536份,通过segments_hashmap建立hashkey与逻辑分片、物理分片的对应关系,创建表时指定分布键,如userid,数据入库时根据字段值计算出hashkey:crc32(userid)%65536,最后根据segment_hashmap将数据分布到对应的segment中。
2、分片个数、分片大小自适应机制
定义结构体node_resource,用于存放单台主机资源信息:
struct node_resource(
nodeid int,#物理节点编号
cpu_cores int,#cpu核数,physicals*cpu cores
cpu_model int,#cpu model,如E5-4607
disk_size int,#磁盘空间大小
disk_speed int#磁盘转速
memory_size int#内存大小
)
定义结构体node_resource_score,用于存放单台主机配置评分:
struct node_resoure_score(
nodeid int,#物理节点编号
cpu_score int,#cpu核数,physicals*cpu cores
disk_score int,#磁盘空间大小
disk_score int#磁盘转速
memory_score int#内存大小
);
定义结构体node_score,用于存放单台主机综合评分:
struct node_score(
nodeid int,#物理节点编号
score int,#综合评分,是min(cpu,disk,memory)
);
定义一维数组node_resources[n],数据类型是结构体node_resource,该数组用于存放所有主机资源信息,包含cpu、disk、memory等。
定义一维数组node_resource_scores[n],数据类型是结构体node_resource_score,该数组用于存放所有主机评分信息。
定义一维数组node_scores[n],数据类型是结构体node_score,该数组用于存放所有主机最终评分信息
改进后的多分片机制通过init_segments()函数来初始化每个节点分片个数和分片大小,该函数逻辑如下:
[1]获取各主机物理配置信息,初始化node_resources[n]数组
[2]遍历node_resources[n]数组,获取最小的cpu_cores,disk_size,memory_size,分别存入变量min_cpu_cores,min_disk_size,min_memory_size
[3]遍历node_resources[n],各资源配置/min_资源配置*100,然后取整存入node_resource_scores[n]
[4]遍历node_resource_scores[n],将min(cpu_score,disk_score,memory_score)存入node_scores[n]
[5]将65536个hash键值根据node_scores[n]各主机综合评分,按比例分配并记录到segment_hashmap中,其中只有nodeid和hashkey对应关系,segmentid为空
[6]设置segmentid,遍历node_scores[n],按如下方法设置分片个数和分片大小:
1、m=node_scores[x]/100/0.5,如果m<=2,则该节点分片个数为2,然后设置nodeid=n的segment_hashmap,更新segmentid
2、m=node_scores[x]/100/0.5,如果m>2,则该节点分片个数为m,然后设置nodeid=n的segment_hashmap,更新segmentid
注:为保证多分片机制,要求最低配置主机设置2个分片。
3、改进后多分片机制在集群初始安装中的应用
例如,主机配置如下:
主机 Cpu cores Disk Size Memory Size
Node1 16 11T 128G
Node2 20 16T 256G
Node3 24 24T 512G
init_segments()函数初始化:
[1]node_resources[3]=[16,20,128][20,16,256][24,24,512]
[2]min_cpu=16,min_disk=11,min_meory=128
[3]node_resource_scores[3]=[100,100,100][125,145,200][150,218,200]
[4]node_scores[3]=[100][125][150]
[5]65536个键值按照1:1.25:1.5比例分配node1,node2,node3,存储在segment_hashmap
[6]设置segmentid,根据自适应算法设置分片个数和大小
Node1:基准节点,设置2个分片
Node2:
Figure BDA0001883224480000111
设置2个分片,分片大小是node1的1.25倍
Node3:
Figure BDA0001883224480000112
设置3个分片,分片大小与node1相同
4、改进后的多分片机制,各节点状态正常时,SQL任务执行流程如下:
步骤1:用户通过标准接口发起SQL任务到集群
步骤2:管理节点2接收到SQL后,进行语法、语义解析,生成分布式执行计划;然后调用GetValidSements()函数,获取当前可用分片,各节点都正常的情况下,GetValidSements将所有主分片所在nodeid记录在b[7]中,结果如下:
Node1 Node2 Node3 Node4 Node1 Node2 Node3 Node4 Node3
然后管理节点将分布式执行计划下发到对应的nodeid;
步骤3:主机节点接收到管理节点下发的分布式SQL,然后执行
步骤4:主机节点将本节点计算结果发送给管理节点
步骤5:管理节点收集各节点数据,汇总后,发送给用户。
5、改进后的多分片机制,各节点状态正常时,SQL任务执行流程如下:
步骤1:用户通过标准接口发起SQL任务到集群
步骤2:管理节点2接收到SQL后,进行语法、语义解析,生成分布式执行计划;然后调用GetValidSements()函数,获取当前可用分片。图4为本发明实施例提供的SQL任务执行示意图,如图4所示,各节点都正常的情况下,GetValidSements将所有主分片所在nodeid记录在b[7]中,注意因为Node2宕机,n2和n6可用分片转移到Node1和Node3,结果如下:
Node1 Node1 Node3 Node4 Node1 Node3 Node3 Node4 Node3
然后管理节点将分布式执行计划下发到对应的nodeid;
步骤3:主机节点接收到管理节点下发的分布式SQL,然后执行;
步骤4:主机节点将本节点计算结果发送给管理节点
步骤5:管理节点收集各节点数据,汇总后,发送给用户。
改进后的多分片机制依然可以有效降低MPP数据库木桶效应,叠加分片个数和大小自适应性,有效打破了各个节点数据均匀分布的限制,促使MPP数据库在灵活性和通用性上更进一步。
图5为本发明实施例提供的电子设备的结构示意图,如图5所示,所述设备包括:处理器501、存储器502和总线503;
其中,处理器501和存储器502通过所述总线503完成相互间的通信;
处理器501用于调用存储器502中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:
获取每一主机的每一物理配置参数的量化值;
根据每一主机的每一物理配置参数的量化值,分别为每一主机分配不同数量的数据分片和不同大小的数据分片。
本发明实施例提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:
获取每一主机的每一物理配置参数的量化值;
根据每一主机的每一物理配置参数的量化值,分别为每一主机分配不同数量的数据分片和不同大小的数据分片。
本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:
获取每一主机的每一物理配置参数的量化值;
根据每一主机的每一物理配置参数的量化值,分别为每一主机分配不同数量的数据分片和不同大小的数据分片。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置及设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于MPP数据库的数据多分片存储方法,其特征在于,包括:
获取每一主机的每一物理配置参数的量化值;
根据每一主机的每一物理配置参数的量化值,分别为每一主机分配不同数量的数据分片和不同大小的数据分片。
2.根据权利要求1所述的方法,其特征在于,所述根据每一主机的每一物理配置参数的量化值,分别为每一主机分配不同数量的数据分片和不同大小的数据分片,具体包括:
根据每一主机的每一物理配置参数的量化值,获取每一物理配置参数的最小量化值;
分别根据每一物理配置参数的最小量化值,计算每一主机的每一物理配置参数的相对评分;
分别根据每一主机的每一物理配置参数的相对评分,获取每一主机的综合评分;
分别将每一主机的综合评分,输入至预设算法模型,输出分配给每一主机的数据分片的数量和大小。
3.根据权利要求2所述的方法,其特征在于,所述根据每一物理配置参数的最小量化值,计算每一主机的每一物理配置参数的相对评分的计算公式如下:
Sij=Aij/Pj_min*100
其中,Sij为第i个主机的第j个物理配置参数的相对评分,Aij为第i个主机的第j个物理配置参数的量化值,Pj_min为第j个物理配置参数的最小量化值。
4.根据权利要求3所述的方法,其特征在于,所述分别根据每一主机的每一物理配置参数的相对评分,获取每一主机的综合评分的计算公式如下:
Si=min{Si1,Si2,…,Sij}
其中,Si为第i个主机的综合评分,Si1为第i个主机的第1个物理配置参数的相对评分,Si2为第i个主机的第2个物理配置参数的相对评分,Sij为第i个主机的第j个物理配置参数的相对评分。
5.根据权利要求4所述的方法,其特征在于,所述预设算法模型如下:
Figure FDA0001883224470000021
Ni=Si*N/K*Mi
其中,Mi为分配给第i个主机的数据分片的数量,Si为第i个主机的综合评分,K为预设常数,
Figure FDA0001883224470000022
表示向下取整,Ni为分配给第i个主机的数据分片的大小,N为预设常数。
6.一种基于MPP数据库的数据多分片存储装置,其特征在于,包括:
获取模块,用于获取每一主机的每一物理配置参数的量化值;
分配模块,用于根据每一主机的每一物理配置参数的量化值,分别为每一主机分配不同数量的数据分片和不同大小的数据分片。
7.根据权利要求6所述的装置,其特征在于,所述根据每一主机的每一物理配置参数的量化值,分别为每一主机分配不同数量的数据分片和不同大小的数据分片,具体包括:
根据每一主机的每一物理配置参数的量化值,获取每一物理配置参数的最小量化值;
分别根据每一物理配置参数的最小量化值,计算每一主机的每一物理配置参数的相对评分;
分别根据每一主机的每一物理配置参数的相对评分,获取每一主机的综合评分;
分别将每一主机的综合评分,输入至预设算法模型,输出分配给每一主机的数据分片的数量和大小。
8.根据权利要求7所述的方法,其特征在于,所述根据每一物理配置参数的最小量化值,计算每一主机的每一物理配置参数的相对评分的计算公式如下:
Sij=Aij/Pj_min*100
其中,Sij为第i个主机的第j个物理配置参数的相对评分,Aij为第i个主机的第j个物理配置参数的量化值,Pj_min为第j个物理配置参数的最小量化值。
9.一种电子设备,其特征在于,包括:
存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至5任一所述的方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序被处理器执行时,实现如权利要求1至5任一所述的方法。
CN201811433554.5A 2018-11-28 2018-11-28 基于mpp数据库的数据多分片存储方法及装置 Active CN111240577B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811433554.5A CN111240577B (zh) 2018-11-28 2018-11-28 基于mpp数据库的数据多分片存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811433554.5A CN111240577B (zh) 2018-11-28 2018-11-28 基于mpp数据库的数据多分片存储方法及装置

Publications (2)

Publication Number Publication Date
CN111240577A true CN111240577A (zh) 2020-06-05
CN111240577B CN111240577B (zh) 2023-08-15

Family

ID=70863635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811433554.5A Active CN111240577B (zh) 2018-11-28 2018-11-28 基于mpp数据库的数据多分片存储方法及装置

Country Status (1)

Country Link
CN (1) CN111240577B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023029846A1 (zh) * 2021-09-06 2023-03-09 北京字跳网络技术有限公司 多媒体资源上传方法、装置、电子设备以及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106412125A (zh) * 2016-12-01 2017-02-15 广州高能计算机科技有限公司 一种基于负载平衡的并序化云监控系统及构建方法
CN106776001A (zh) * 2016-11-14 2017-05-31 天津南大通用数据技术股份有限公司 一种分布式数据库集群数据的分布方法及装置
CN107566531A (zh) * 2017-10-17 2018-01-09 厦门市美亚柏科信息股份有限公司 一种支持均衡资源的Elasticsearch集群扩展方法
WO2018014566A1 (zh) * 2016-07-22 2018-01-25 平安科技(深圳)有限公司 一种负载均衡的方法、装置、计算机可读存储介质及系统
CN108897858A (zh) * 2018-06-29 2018-11-27 北京奇虎科技有限公司 分布式集群索引分片的评估方法及装置、电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018014566A1 (zh) * 2016-07-22 2018-01-25 平安科技(深圳)有限公司 一种负载均衡的方法、装置、计算机可读存储介质及系统
CN106776001A (zh) * 2016-11-14 2017-05-31 天津南大通用数据技术股份有限公司 一种分布式数据库集群数据的分布方法及装置
CN106412125A (zh) * 2016-12-01 2017-02-15 广州高能计算机科技有限公司 一种基于负载平衡的并序化云监控系统及构建方法
CN107566531A (zh) * 2017-10-17 2018-01-09 厦门市美亚柏科信息股份有限公司 一种支持均衡资源的Elasticsearch集群扩展方法
CN108897858A (zh) * 2018-06-29 2018-11-27 北京奇虎科技有限公司 分布式集群索引分片的评估方法及装置、电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023029846A1 (zh) * 2021-09-06 2023-03-09 北京字跳网络技术有限公司 多媒体资源上传方法、装置、电子设备以及可读存储介质

Also Published As

Publication number Publication date
CN111240577B (zh) 2023-08-15

Similar Documents

Publication Publication Date Title
CN107943421B (zh) 一种基于分布式存储系统的分区划分方法及装置
US10209908B2 (en) Optimization of in-memory data grid placement
WO2018149221A1 (zh) 一种设备管理方法及网管系统
CN108009261B (zh) 一种数据同步方法、装置及电子设备
CN110147407B (zh) 一种数据处理方法、装置及数据库管理服务器
CN112703774B (zh) 管理电信网络中的处理资源的方法和电信网络及存储介质
EP4002115A1 (en) Resource allocation method and resource offloading method
CN105045871A (zh) 数据聚合查询方法及装置
CN107070645B (zh) 比较数据表的数据的方法和系统
CN112817728A (zh) 任务调度方法、网络设备和存储介质
AU2016299084A1 (en) Method and device for leveling load of distributed database
CN110750335A (zh) 资源创建方法、装置和服务器
CN106407395A (zh) 数据查询的处理方法及装置
CN110807035A (zh) 流水号生成方法、装置、设备及存储介质
CN113377866A (zh) 一种虚拟化数据库代理服务的负载均衡方法及装置
CN111949736A (zh) 一种数据库负载均衡方法、装置、电子设备和存储介质
CN111240577A (zh) 基于mpp数据库的数据多分片存储方法及装置
CN105373451B (zh) 一种虚拟机放置的方法及装置
CN116954863A (zh) 数据库调度方法、装置、设备及存储介质
CN110798492B (zh) 数据存储方法及装置、数据处理系统
CN109992196B (zh) 索引数据的存储方法及装置、存储系统
CN112395282A (zh) 一种图重构方法及装置
CN116303343A (zh) 数据分片方法、装置、电子设备及存储介质
CN113867736A (zh) 部署方案生成方法及装置
CN107479977B (zh) 一种确定设备性能的方法和设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant