CN117573372A - 一种基于反馈信号的提升数据入库性能的负载均衡方法 - Google Patents
一种基于反馈信号的提升数据入库性能的负载均衡方法 Download PDFInfo
- Publication number
- CN117573372A CN117573372A CN202410045059.6A CN202410045059A CN117573372A CN 117573372 A CN117573372 A CN 117573372A CN 202410045059 A CN202410045059 A CN 202410045059A CN 117573372 A CN117573372 A CN 117573372A
- Authority
- CN
- China
- Prior art keywords
- node
- weight
- writing
- load balancing
- balancing method
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000005540 biological transmission Effects 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 description 6
- 238000007493 shaping process Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 238000012360 testing method Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于反馈信号的提升数据入库性能的负载均衡方法,该方法包括:S1、确定MPP数据库的连接节点个数;S2、赋予给每个连接节点相同的初始权重;S3、在权重在整体权重中比例随机选择一个节点;S4、判断该节点是否可以连通;S5、判断该节点权重是否大于初始权重;S6、将本批次数据写入,并记录写时间;S7、判断此次写入速度是否大于当前最大写入速度;S8、判断此次写入速度是否小于当前最小写入速度;S9、等待下一批的数据写入,重复S3至S8;该方法用于MPP数据库中,实现写入流量的负载分担,避免单点故障问题。
Description
技术领域
本发明涉及数据传输技术领域,特别是一种基于反馈信号的提升数据入库性能的负载均衡方法。
背景技术
负载均衡技术在计算机网络和分布式应用场景中使用较为普遍,其目的一方面是为了避免单点故障问题,另一方面可以提升整个系统的吞吐量和处理能力。数据库作为企业应用的核心组件,在需要有海量数据进行存储/计算的业务场景下,其写入性能的优劣直接决定了项目的成本和方案的可行性。通常情况下提升数据库写入性能的方法包括:
1、硬件升级方案:单机数据库的写入性能瓶颈往往出现在CPU的处理能力和磁盘的读写IO速度上,通常将数据库所在服务器替换处理能力更强的CPU,或者将HDD机械硬盘替换为SSD固态硬盘都可以带来比较显著的性能提升,但这种方案会导致项目成本成倍增加,且没有解决写入数据的单点故障问题。
其中,HDD:Hard Disk Drive,即普通机械硬盘;主要由盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成,工作时主要依赖盘片的高速旋转和磁头定位来进行数据的读写。
SSD:Solid State Drive,即我们通常所说的固态硬盘。是用固态电子存储芯片阵列制成的硬盘,固态硬盘具有传统机械硬盘不具备的快速读写、质量轻、能耗低以及体积小等特点,但价格昂贵,耐用性相对较差。
2、MPP架构数据库的多节点写入方案:MPP架构数据库的出现解决数据库存储和计算能力水平扩展的问题,同时为了解决一写多读带来的单点问题,大多数的MPP架构数据库都支持多个sharding分片节点的直接写入,虽然可以提升整体写入的性能,但这种方案存在的问题是多节点一对一的写入无法保障在单节点故障的情况下复用其他健康节点的能力。
3、基于轮询的负载均衡方案:这种方案要求写入程序在配置时指定多个数据库sharding分片的地址,然后使用轮询的方案对各个sharding分片进行写入。此方案可以很好的避免单个节点故障的情况下部分数据无法正常写入的问题,但存在的问题是轮询的方案无法保障所有健康节点能够提供同等的写入性能,一台写入性能较慢的sharding分片节点有可能会成为影响整体写入性能的短板,同时无法主动避开失联的节点,引入重试机制也会对影响整体的写入速度。
其中,sharding分片:sharding是一种数据库扩展方案,其理念基于数据库大小以及数据库上每单元时间内的交易数呈线型增长,查询数据库的响应时间(response time)以指数方式增长,因此可以将碎片化的数据分布到大量的廉价服务器上,从而实现处理能力的成倍增长。
发明内容
本发明的目的是为了解决上述问题,设计了一种基于反馈信号的提升数据入库性能的负载均衡方法,该方法用于MPP数据库中,实现写入流量的负载分担,避免单点故障问题,该方法包括:
S1、确定MPP数据库的连接节点个数;
S2、赋予给每个连接节点相同的初始权重;
S3、在权重在整体权重中比例随机选择一个节点;
S4、判断该节点是否可以连通;
S5、判断该节点权重是否大于初始权重;
S6、将本批次数据写入,并记录写时间;
S7、判断此次写入速度是否大于当前最大写入速度;
S8、判断此次写入速度是否小于当前最小写入速度;
S9、等待下一批的数据写入,重复S3至S8。
进一步的,其中S2中,初始权重还包括为最大传输速率值和/或最小传输速率值。
进一步的,S4包括:
S401、判断此节点的权重是否为1;
S402、将此节点权重减1。
进一步的,其中S4中,判断为“是”,进入S5;判断为“否”,进入S401。
进一步的,其中S401中,判断为“是”,返回S2;判断为“否”,进入S402,并返回S2。
进一步的,S5包括:S501、将此节点权重加1;
进一步的,其中S5中,判断为“是”,进入S6;判断为“否”,进入S501,并进入S6。
进一步的,S7包括:S701、将此节点权重加1;
S8包括:S801、将此节点权重减1。
进一步的,其中S7中,判断为“否”,进入S8;判断为“是”,将此节点权重加1。
进一步的,其中S8中,判断为“否”,进入S9;判断为“是”,将此节点权重减1。
利用本发明的技术方案制作的一种基于反馈信号的提升数据入库性能的负载均衡方法,达到的有益效果:
从节省成本的角度出发,旨在使用同等硬件的前提下,针对MPP数据库支持多sharding分片写入的特性,在常规负载均衡方法的基础上,通过引入权重的概念,并将sharding分片节点的健康状态和实时传输性能作为反馈信号,动态调整每个sharding分片的权重大小,自动选择最优的sharding分片进行写入,从而提升整个MPP数据库的写入性能。
此方法继承了负载均衡方法的优点,既实现了写入流量的负载分担,并避免了单点故障问题。同时,相较于基于普通轮询的负载均衡方案,本方法通过前一次写入提供的反馈信号动态调整权重大小,能够及时感知sharding分片状态的变化,并最大化的利用不同sharding分片的写入能力,实现了在有故障节点出现的情况下整体写入性能不会受到较大影响,并能够在故障节点恢复后平稳恢复到之前的写入速度。
相较于采用普通轮询方法的直接写入,采用本方法后由于需要在选择节点时进行权重计算,因此在数据库各个sharding分片节点健康且性能一致的状态,写入性能会稍微有所下降;但在一台或多台sharding分片节点失联或者存在磁盘读写性能不一致的场景中,经测试写入性能至少提升100%,并且可以保证整个系统的写入速度维持在一个较为稳定的水平上,不会因为个别节点的故障出现剧烈的上下波动;而且本方案中并不会直接对一次失联的节点进行权重赋0,而是使用权重递减的方式,避免短暂的网络波动导致某个节点后续无法提供服务。另外,在节点的选择上,使用基于权重大小摇号抽签的方式进行选择,一方面尽可能保证节点选取的公平性,另一方面相比直接选择权重最大值的方式,避免了流量集中到某一台节点上,而且即使故障节点也有一定的机率被抽中,避免了故障节点恢复后无法重新自动提供服务的问题。
附图说明
图1是本发明所述一种基于反馈信号的提升数据入库性能的负载均衡方法的基本原理图;
图2是本发明所述一种基于反馈信号的提升数据入库性能的负载均衡方法的流程图;
图3是本发明所述实验例中的节点权重示意流程图。
具体实施方式
为了更好的理解本发明,下面结合具体实施例和附图对本发明进行进一步的描述。
实施例
如图1-2所示,一种基于反馈信号的提升数据入库性能的负载均衡方法,该方法用于MPP数据库中,实现写入流量的负载分担,避免单点故障问题,该方法包括:
S1、确定MPP数据库的连接节点个数;
S2、赋予给每个连接节点相同的初始权重;
具体的,其中S2中,其中S2中,初始权重还包括为最大传输速率值和/或最小传输速率值。
S3、在权重在整体权重中比例随机选择一个节点;
S4、判断该节点是否可以连通;
具体的,S4包括:
S401、判断此节点的权重是否为1;
S402、将此节点权重减1。
具体的,其中S4中,判断为“是”,进入S5;判断为“否”,进入S401。
具体的,其中S401中,判断为“是”,返回S2;判断为“否”,进入S402,并返回S2。
S5、判断该节点权重是否大于初始权重;
进一步的,S5包括:S501、将此节点权重加1;
进一步的,其中S5中,判断为“是”,进入S6;判断为“否”,进入S501,并进入S6。
S6、将本批次数据写入,并记录写时间;
S7、判断此次写入速度是否大于当前最大写入速度;
进一步的,S7包括:S701、将此节点权重加1;
S8、判断此次写入速度是否小于当前最小写入速度;
具体的,其中S7中,判断为“否”,进入S8;判断为“是”,将此节点权重加1。
进一步的,S8包括:S801、将此节点权重减1。
具体的,其中S8中,判断为“否”,进入S9;判断为“是”,将此节点权重减1。
S9、等待下一批的数据写入,重复S3至S8。
本实施例由于需要在选择节点时进行权重计算,因此在数据库各个sharding分片节点健康且性能一致的状态,写入性能会稍微有所下降;但在一台或多台sharding分片节点失联或者存在磁盘读写性能不一致的场景中,经测试写入性能至少提升100%,并且可以保证整个系统的写入速度维持在一个较为稳定的水平上,不会因为个别节点的故障出现剧烈的上下波动;而且本方案中并不会直接对一次失联的节点进行权重赋0,而是使用权重递减的方式,避免短暂的网络波动导致某个节点后续无法提供服务。另外,在节点的选择上,使用基于权重大小摇号抽签的方式进行选择,一方面尽可能保证节点选取的公平性,另一方面相比直接选择权重最大值的方式,避免了流量集中到某一台节点上,而且即使故障节点也有一定的机率被抽中,避免了故障节点恢复后无法重新自动提供服务的问题。
实验例
本实验例以MPP数据库Clickhouse为例进行,其余MPP数据库与此类似,方法实现部署在单独的写入程序中。
具体的,MPP数据库: Massively Parallel Processing的缩写,MPP架构是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果。采用MPP架构的数据库称为MPP数据库。
请参阅附图3,假设MPP数据库由A/B/C三个初始搭建而成,写入程序负责将数据分批次的进行写入。在写入程序启动时,首先完成核心变量的初始化工作,包括每个节点的初始权重以及最大传输速率、最小传输速率,这些指标可以从系统的配置文件中进行加载。假设三个节点的初始权重均为10,第一批数据进行写入时,每个节点均有1/3的概率被选中,假设抽到了节点A,那么此批次的数据将会写入到节点A中,并记录下本批次数据的传输时间。通过计算得到一个速率值(反馈信号1),并与当前最大、最小传输速率值进行比较,如果大于最大传输速率值,则节点A的权重加1(权重如果已经是初始权重,则不再加1);如果小于最小传输速率值,则节点A的权重减1(如果当前权重已经为1,则不再减1);否则权重不变,等待下一批次的数据到来后根据权重重新选择节点进行写入。
如果在写入过程中,节点B发生故障(反馈信号2),此次写入失败,则将节点B的权重减1(如果当前权重已经为1,则不再减1),重新选择节点,否则将本节点的权重加1(权重如果已经是初始权重,则不再加1)。
如果在写入过程中,故障节点B得到了修复,则因为每次选取写入节点时是按照权重大小等比例抽签的原则进行选取,因此B节点会有一定的机率被选中,然后随着选中次数的增多又恢复到之前的正常水平。
其中,基于权重的节点选择方法:假设节点A当前权重为1,节点B当前权重为5,节点C当前权重为10,则将代表节点A的1个令牌放到抽签池中,就代表节点B的5个令牌放到抽签池中,代表节点C的10个令牌放到抽签中,然后对抽签中的16个令牌进行随机抽取,抽到的即是本次选取出来的节点。
对比实验使用Clickhouse数据库的三个节点进行测试,两组实验使用相同的数据库配置(1个线程,最大批处理条数为80),同样写入10000条数据进行写入,并记录写入时间,分别进行了在正常情况下、一台节点持续故障情况、故障节点在传输过程中恢复情况下的三组测试,如表1所示。
表1使用方法前和使用方法后写入目标数据库的性能差异对比表
从测试结果可以看到,在正常情况下使用本发明方法后的程序在入库时间上和使用方法前相差不多,略微有点慢的原因在于方法多了一步计算可用节点的过程;但在出现单个节点故障的情况下,使用本发明方法的程序在入库性能上有100%的性能提升;在故障节点传输过程中恢复的场景下,使用本方法的程序入库性能也要优于对照组。而且,总体来看,使用本方法的程序在入库性能上表现稳定,受节点故障的影响较小。
上述技术方案仅体现了本发明技术方案的优选技术方案,本技术领域的技术人员对其中某些部分所可能做出的一些变动均体现了本发明的原理,属于本发明的保护范围之内。
Claims (10)
1.一种基于反馈信号的提升数据入库性能的负载均衡方法,其特征在于,该方法用于MPP数据库中,实现写入流量的负载分担,避免单点故障问题,该方法包括:
S1、确定MPP数据库的连接节点个数;
S2、赋予给每个连接节点相同的初始权重;
S3、在权重在整体权重中比例随机选择一个节点;
S4、判断该节点是否可以连通;
S5、判断该节点权重是否大于初始权重;
S6、将本批次数据写入,并记录写时间;
S7、判断此次写入速度是否大于当前最大写入速度;
S8、判断此次写入速度是否小于当前最小写入速度;
S9、等待下一批的数据写入,重复S3至S8。
2.根据权利要求1所述的一种基于反馈信号的提升数据入库性能的负载均衡方法,其特征在于,其中S2中,初始权重还包括为最大传输速率值和/或最小传输速率值。
3.根据权利要求1所述的一种基于反馈信号的提升数据入库性能的负载均衡方法,其特征在于,S4包括:
S401、判断此节点的权重是否为1;
S402、将此节点权重减1。
4.根据权利要求3所述的一种基于反馈信号的提升数据入库性能的负载均衡方法,其特征在于,其中S4中,判断为“是”,进入S5;判断为“否”,进入S401。
5.根据权利要求4所述的一种基于反馈信号的提升数据入库性能的负载均衡方法,其特征在于,其中S401中,判断为“是”,返回S2;判断为“否”,进入S402,并返回S2。
6.根据权利要求1所述的一种基于反馈信号的提升数据入库性能的负载均衡方法,其特征在于,S5包括:S501、将此节点权重加1。
7.根据权利要求6所述的一种基于反馈信号的提升数据入库性能的负载均衡方法,其特征在于,其中S5中,判断为“是”,进入S6;判断为“否”,进入S501,并进入S6。
8.根据权利要求1所述的一种基于反馈信号的提升数据入库性能的负载均衡方法,其特征在于,S7包括:S701、将此节点权重加1;
S8包括:S801、将此节点权重减1。
9.根据权利要求8所述的一种基于反馈信号的提升数据入库性能的负载均衡方法,其特征在于,其中S7中,判断为“否”,进入S8;判断为“是”,将此节点权重加1。
10.根据权利要求9所述的一种基于反馈信号的提升数据入库性能的负载均衡方法,其特征在于,其中S8中,判断为“否”,进入S9;判断为“是”,将此节点权重减1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410045059.6A CN117573372B (zh) | 2024-01-12 | 2024-01-12 | 一种基于反馈信号的提升数据入库性能的负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410045059.6A CN117573372B (zh) | 2024-01-12 | 2024-01-12 | 一种基于反馈信号的提升数据入库性能的负载均衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117573372A true CN117573372A (zh) | 2024-02-20 |
CN117573372B CN117573372B (zh) | 2024-03-15 |
Family
ID=89884753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410045059.6A Active CN117573372B (zh) | 2024-01-12 | 2024-01-12 | 一种基于反馈信号的提升数据入库性能的负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117573372B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060224731A1 (en) * | 2005-03-31 | 2006-10-05 | Hitachi, Ltd. | Method for measuring server performance, system for measuring server performance and computer programs therefor |
CN106790381A (zh) * | 2016-11-21 | 2017-05-31 | 浙江理工大学 | 基于加权最小连接的动态反馈负载均衡方法 |
CN107066575A (zh) * | 2017-04-11 | 2017-08-18 | 广东亿迅科技有限公司 | 用于实现数据库读写负载均衡的方法及其系统 |
CN114520809A (zh) * | 2022-03-04 | 2022-05-20 | 浪潮云信息技术股份公司 | 一种用于后端请求的负载均衡的实现方法及装置 |
-
2024
- 2024-01-12 CN CN202410045059.6A patent/CN117573372B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060224731A1 (en) * | 2005-03-31 | 2006-10-05 | Hitachi, Ltd. | Method for measuring server performance, system for measuring server performance and computer programs therefor |
CN106790381A (zh) * | 2016-11-21 | 2017-05-31 | 浙江理工大学 | 基于加权最小连接的动态反馈负载均衡方法 |
CN107066575A (zh) * | 2017-04-11 | 2017-08-18 | 广东亿迅科技有限公司 | 用于实现数据库读写负载均衡的方法及其系统 |
CN114520809A (zh) * | 2022-03-04 | 2022-05-20 | 浪潮云信息技术股份公司 | 一种用于后端请求的负载均衡的实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117573372B (zh) | 2024-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101907978B (zh) | 基于固态硬盘和磁性硬盘的混合存储系统及存储方法 | |
US8307159B2 (en) | System and method for providing performance-enhanced rebuild of a solid-state drive (SSD) in a solid-state drive hard disk drive (SSD HDD) redundant array of inexpensive disks 1 (RAID 1) pair | |
US5463765A (en) | Disk array system, data writing method thereof, and fault recovering method | |
US6851022B2 (en) | Raid controller and control method thereof | |
US20050193227A1 (en) | Method for deciding server in occurrence of fault | |
US10586608B2 (en) | DRAM refresh method, apparatus, and system | |
CN106066890B (zh) | 一种分布式高性能数据库一体机系统 | |
US20170212697A1 (en) | Sliding-window multi-class striping | |
US11128535B2 (en) | Computer system and data management method | |
US20210216231A1 (en) | Method, electronic device and computer program product for rebuilding disk array | |
CN113535746A (zh) | 一种非关系型数据通过随机序列读写后控制一致性的方法 | |
CN110989924B (zh) | 一种元数据存储性能优化方法及存储服务器 | |
US20240220127A1 (en) | Memory controller for supporting processing-in-memory | |
CN117573372B (zh) | 一种基于反馈信号的提升数据入库性能的负载均衡方法 | |
CN114242132A (zh) | 一种内存刷新计数的方法、装置以及内存控制器 | |
CN112764679A (zh) | 一种动态扩容的方法及终端 | |
CN115757196B (zh) | 内存、访问内存方法及计算设备 | |
CN116700610A (zh) | 数据处理方法、装置及系统 | |
US20230205445A1 (en) | Device and method for data replication in disaggregated distributed storage system | |
CN104182359A (zh) | 一种缓存分配方法及装置 | |
US7313651B2 (en) | Method and related apparatus for data migration of disk array | |
JP2790746B2 (ja) | 半導体記憶装置 | |
US20040107305A1 (en) | Method and apparatus for detecting and preemptively ameliorating potential logic unit thrashing in a storage system having multiple requestors | |
CN112764689A (zh) | 面向机载雷达的数据存储文件管理方法和管理系统 | |
US20190324664A1 (en) | Memory system and operating method of the memory system |
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 |