CN107480254B - 适用于分布式内存数据库的在线负载均衡方法 - Google Patents

适用于分布式内存数据库的在线负载均衡方法 Download PDF

Info

Publication number
CN107480254B
CN107480254B CN201710693248.4A CN201710693248A CN107480254B CN 107480254 B CN107480254 B CN 107480254B CN 201710693248 A CN201710693248 A CN 201710693248A CN 107480254 B CN107480254 B CN 107480254B
Authority
CN
China
Prior art keywords
data
server
load balancing
load
online
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.)
Active
Application number
CN201710693248.4A
Other languages
English (en)
Other versions
CN107480254A (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.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
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 Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201710693248.4A priority Critical patent/CN107480254B/zh
Publication of CN107480254A publication Critical patent/CN107480254A/zh
Application granted granted Critical
Publication of CN107480254B publication Critical patent/CN107480254B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种适用于分布式内存数据库的在线负载均衡方法,该方法先使用基于数据备份位置的贪心算法对当前数据库计算一个新的划分,以使新划分下每台服务器接受的请求均匀分布,然后通过在线数据迁移将新的数据划分应用在数据库中;在负载均衡过程中,控制端对执行用户请求的服务器进行在线配置。与现有技术相比,本发明能够更快的完成负载均衡,同时对事务请求的执行的影响非常小。

Description

适用于分布式内存数据库的在线负载均衡方法
技术领域
本发明涉及一种分布式系统中的负载均衡方法,具体地,涉及一种适用于分布式内存数据库的在线负载均衡方法。
背景技术
在分布式数据库中,在线负载均衡是一种非常重要的技术。针对不同用户的事务请求分布来为数据库寻找一个最优的配置可以达到数据库事务处理的负载均衡。通常需要在线的负载均衡方法,因为负载均衡有时需要在高峰流量时发生;在线即不影响当前的事务执行。随着大数据时代的到来,分布式数据库变得越来越广泛,而这些数据库通常都会提供负载均衡的功能。
在线负载均衡可以使用在线配置来完成,在线配置分为两个步骤,计算新的数据规划以及通过数据迁移来在数据库中应用新的数据规划。数据规划将特定的数据库数据指定给相应的服务器去处理;负载不均衡发生时,通常是由于过多热门的数据被划分到少部分服务器中,导致这些服务器过载而其他服务器空闲。为了解决这个问题,新的数据规划首先会将一部分热门数据指定到空闲服务器中,再通过数据迁移将这些数据实际的搬移到服务器上,从而达到更好的负载均衡。
目前,新的数据规划通过一种贪心的算法来计算,算法会根据当前服务器的负载将热门数据搬移到最空闲的服务器中,直到负载变得均衡。这种方法可以很快的计算出较优的数据规划,然而却会产生很多的数据移动。通常移动的数据越多,则需要花费更长时间来进行数据迁移,而数据迁移会对事务执行的性能带来影响。在线数据迁移的方法有pre-copy和post-copy两种:pre-copy首先将数据从源服务器拷贝到目标服务器中,当数据拷贝完成时将用户的请求转移到目标服务器中执行。和Pre-copy相反,Post-copy首先将事务的数据请求在目标服务器中执行,当事务缺少需要的数据时按需从源服务器中读取数据。这两种数据迁移方法仍会对事务处理的性能带来非常大的影响。在Pre-copy的方法中,由于事务会修改被迁移的数据,被修改的数据需要被重新传输,造成更多的数据传输;同时,正在执行的事务需要记录执行时修改的数据,这也会造成性能影响。在Post-copy中,当事务请求缺少所需要的数据时,直到数据被读取回来事务才能继续执行,因此事务的执行会被中断,这对一些复杂的事务,例如需要访问许多数据的事务来说影响更大。
因此,如何高效的完成在线配置仍然是一个非常重要的问题。
发明内容
本发明的目的是为了克服上述现有技术存在的缺陷而提供一种适用于分布式内存数据库的在线负载均衡方法。
根据本发明的一个方面,提供一种适用于分布式内存数据库的在线负载均衡方法,其特征在于,该方法先使用基于数据备份位置的贪心算法对当前数据库计算一个新的划分,以使新划分下每台服务器接受的请求均匀分布,然后通过在线数据迁移将新的数据划分应用在数据库中;在负载均衡过程中,控制端对执行用户请求的服务器进行在线配置,其特征在于,所述在线配置包括以下步骤:
步骤一,当负载不均衡被系统检测出时,控制端查询当前数据的负载均衡情况,即数据在一段时间内被访问的次数;
步骤二,根据数据的负载均衡情况,控制端遍历热门数据并将其分配到负载比较低的具有热门数据备份的服务器中,如果新的分配能够达到负载均衡,则执行步骤四;
步骤三,当负载仍然不均衡时,控制端再次遍历热门数据并将其分配到负载比较低的服务器中;
步骤四,控制端通知知所有服务器,将事务请求执行时的日志发送到数据的目标服务器中,目标服务器将日志更新到相关数据中;
步骤五,控制端通知目标服务器从数据的原服务器中以及其备份服务其中进行数据读取,并存储在本地内存中;
步骤六,当所有数据读取完成后,控制端收集被迁移数据的相关事务日志信息;
步骤七,控制端通知知服务器停止在被迁移数据原服务器访问数据,而请求将在目标服务器中执行,并将步骤六收集的日志信息发送给目标服务器;
步骤八,目标服务器等本地的相关日志都处理完成,允许事务请求访问被迁移数据。
优选地,所述步骤一通过每台服务器中数据总访问数之间的差别来判断负载是否均衡,数据被事务修改,读取或者插入时则认为被访问。
优选地,所述步骤二的热门数据是指访问数排名前K的数据,K由用户指定,K为自然数。
优选地,所述步骤四相关数据指的是需要迁移到本地的数据。
优选地,所述步骤五中如果目标服务器拥有被迁移数据的一个备份,则不进行读取。
优选地,所述步骤六的相关事务日志信息是指哪些日志包含了被迁移数据的修改。
优选地,所述控制端采用监视器、规划器以及协调器,而服务器主要包括事务处理模块、数据存储模块以及日志处理模块,监视器负责监视和存储系统中数据的访问情况,并且定期地查询所有服务器来更新数据的访问情况;当数据被事务修改,读取或者插入时则认为被数据访问,监视器通过计算数据被访问的数量来判断哪些数据被访问比较多以及每台服务器的负载情况;当监视器发现系统负载不均衡,即某些服务器的数据访问比其他服务器高很多时,监视器通知规划器来根据数据访问量来生成的新的数据规划;规划器利用监视器提供的数据访问量信息来计算新的数据规划,当新的数据规划计算完成后,规划器使用协调器来将新的规划应用到整个系统中。
与现有技术相比,本发明具有如下的有益效果:
一,与不考虑现有数据备份的数据规划计算方法相比,生成的新的规划所需要移动的数据少很多,极大的减少数据迁移的时间;
二,与pre-copy方法相比,在数据迁移的过程中,不需要记录事务所修改的数据的集合,同时不需要多轮数据传输,这样对事务的性能影响更低,同时传输的数据更少也更快;
三,和Post-copy方法相比较,事务在执行的时候可以并发的访问被迁移的数据,极大的减少了数据迁移对性能的影响。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明适用于分布式数据库事务处理的在线负载均衡方法的流程图。
图2为数据库的结构示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
本发明适用于分布式内存数据库的在线负载均衡方法,其特征在于,该方法先使用基于数据备份位置的贪心算法对当前数据库计算一个新的划分,以使新划分下每台服务器接受的请求均匀分布,然后通过在线数据迁移将新的数据划分应用在数据库中;在负载均衡过程中,控制端对执行用户请求的服务器进行在线配置,该方法包括以下步骤:
步骤一,当负载不均衡被系统检测出时,控制端查询当前数据的负载均衡情况,即数据在一段时间内被访问的次数;
步骤二,根据数据的负载均衡情况,控制端遍历热门数据并将其分配到负载比较低的具有热门数据备份的服务器中,如果新的分配能够达到负载均衡,则执行步骤四;
步骤三,当负载仍然不均衡时,控制端再次遍历热门数据并将其分配到负载比较低的服务器中;
步骤四,控制端通知知所有服务器,将事务请求执行时的日志发送到数据的目标服务器中,目标服务器将日志更新到相关数据中;
步骤五,控制端通知目标服务器从数据的原服务器中以及其备份服务其中进行数据读取,并存储在本地内存中;
步骤六,当所有数据读取完成后,控制端收集被迁移数据的相关事务日志信息;
步骤七,控制端通知知服务器停止在被迁移数据原服务器访问数据,而请求将在目标服务器中执行,并将步骤六收集的日志信息发送给目标服务器;
步骤八,目标服务器等本地的相关日志都处理完成,允许事务请求访问被迁移数据。
所述步骤一通过每台服务器中数据总访问数之间的差别来判断负载是否均衡,数据被事务修改,读取或者插入时则认为被访问,这样可以有效判断系统当前哪些数据是热门数据以及哪些数据是冷门数据,为生成新的规划提供支持。
所述步骤二的热门数据是指访问数排名前K的数据,K由用户指定,K为自然数。来权衡需要搬移的数据量大小以及新的新的规划对系统的影响。
所述步骤四相关数据指的是需要迁移到本地的数据,防止数据出错。
所述步骤五中如果目标服务器拥有被迁移数据的一个备份,则不进行读取,以减少物理搬移数据的数量。
所述步骤六的相关事务日志信息是指哪些日志包含了被迁移数据的修改,以确保存储在目标机器中的数据时最新的。
如图1所示为本发明的在线负载均衡方法的具体流程,通过在线配置来调整分布式数据库划分。下面以图2的数据库为例,结合图1对以下的在线配置进行详细描述:
在步骤四十一中,控制端检测出系统当前存在负载不均衡的情况,控制端收集当前数据库数据的访问情况,得到每个数据的访问量以及每台服务器的总访问量,随后执行步骤四十二;
在步骤四十二中,控制端首先对数据的根据其访问量进行排序,随后根据数据访问量的高低从高到低遍历K个数据,如果遍历中的数据所在的服务器过载,则将这个数据分配给有这个数据备份的访问量最低的服务其中,重新计算每台服务气的访问量;当遍历完成后,如果重新分配后的负载仍然不均衡,则再次根据数据访问量的高低遍历K个数据,如果有数据所在的服务器过载,则将其迁移给当前访问量最低的服务器;根据两次遍历所产生的数据分配生成新的数据规划,开始进行数据迁移,执行步骤四十三;
在步骤四十三中,控制端通知知所有正在执行的事务,如果其修改被迁移的数据并且提交,则将其日志发送给被迁移数据的目标机器;以图2的数据库为例,数据库的所有数据被划分为三个数据划分,第0个划分的主备份在服务器0,有一个备份在第一服务器1;假设新的数据规划要求将0的主备份迁移到第二服务器2中;这时候,如果一个事务在服务器0访问划分0的数据,则其需要将日志发送到服务器2中;当通知完成后,执行步骤四十四;
在步骤四十四中,目标服务器将数据迁移到自身内存中;以图2的数据库为例,假设数据划分0将迁移到第二服务器2中,第二服务器2会从服务器0中进行数据读取并应用到本地数据库中;同时,如果划分0有一个备份数据在第一服务器1中,则第二服务器2也从服务器中读取划分0的数据;当所有数据读取完成的时候,执行步骤四十五;
在步骤四十五中,控制端通知知所有事务在目标服务器中访问被迁移的数据;同时目标服务器等待本地相关日志都被处理完成,然后允许事务请求访问被迁移数据;以图2的数据库为例,假设划分0已经被迁移到第二服务器2中,控制端会收集修改划分0的相关事务的日志信息,随后控制端通知知第二服务器2日志信息,第二服务器2根据收到的日志信息等待和日志信息有关的日志被处理完成后,允许事务请求访问划分0的数据。
本发明能够更快的完成负载均衡,同时对事务请求的执行的影响非常小。
本发明控制端采用监视器、规划器以及协调器,而服务器主要包括事务处理模块、数据存储模块以及日志处理模块,监视器负责监视和存储系统中数据的访问情况,并且定期地查询所有服务器来更新数据的访问情况;当数据被事务修改,读取或者插入时则认为被数据访问,监视器通过计算数据被访问的数量来判断哪些数据被访问比较多以及每台服务器的负载情况;当监视器发现系统负载不均衡,即某些服务器的数据访问比其他服务器高很多时,监视器通知规划器来根据数据访问量来生成的新的数据规划;规划器利用监视器提供的数据访问量信息来计算新的数据规划,当新的数据规划计算完成后,规划器使用协调器来将新的规划应用到整个系统中。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

Claims (7)

1.一种适用于分布式内存数据库的在线负载均衡方法,其特征在于,该方法先使用基于数据备份位置的贪心算法对当前数据库计算一个新的划分,以使新划分下每台服务器接受的请求均匀分布,然后通过在线数据迁移将新的数据划分应用在数据库中;在负载均衡过程中,控制端对执行用户请求的服务器进行在线配置,该方法包括以下步骤:
步骤一,当负载不均衡被系统检测出时,控制端查询当前数据的负载均衡情况,即数据在一段时间内被访问的次数;
步骤二,根据数据的负载均衡情况,控制端遍历热门数据并将其分配到负载比较低的具有热门数据备份的服务器中,如果新的分配能够达到负载均衡,则执行步骤四;
步骤三,当负载仍然不均衡时,控制端再次遍历热门数据并将其分配到负载比较低的服务器中;
步骤四,控制端通知所有服务器,将事务请求执行时的日志发送到数据的目标服务器中,目标服务器将日志更新到相关数据中;
步骤五,控制端通知目标服务器从数据的原服务器中以及其备份服务其中进行数据读取,并存储在本地内存中;
步骤六,当所有数据读取完成后,控制端收集被迁移数据的相关事务日志信息;
步骤七,控制端通知服务器停止在被迁移数据原服务器访问数据,而请求将在目标服务器中执行,并将步骤六收集的日志信息发送给目标服务器;
步骤八,目标服务器等本地的相关日志都处理完成,允许事务请求访问被迁移数据。
2.根据权利要求1所述的适用于分布式内存数据库的在线负载均衡方法,其特征在于,所述步骤一通过每台服务器中数据总访问数之间的差别来判断负载是否均衡,数据被事务修改,读取或者插入时则认为被访问。
3.根据权利要求1所述的适用于分布式内存数据库的在线负载均衡方法,其特征在于,所述步骤二的热门数据是指访问数排名前K的数据,K由用户指定,K为自然数。
4.根据权利要求1所述的适用于分布式内存数据库的在线负载均衡方法,其特征在于,所述步骤四的相关数据指的是需要迁移到本地的数据。
5.根据权利要求1所述的适用于分布式内存数据库的在线负载均衡方法,其特征在于,所述步骤五中如果目标服务器拥有被迁移数据的一个备份,则不进行读取。
6.根据权利要求1所述的适用于分布式内存数据库的在线负载均衡方法,其特征在于,所述步骤六的相关事务日志信息是指哪些日志包含了被迁移数据的修改。
7.根据权利要求1所述的适用于分布式内存数据库的在线负载均衡方法,其特征在于,所述控制端采用监视器、规划器以及协调器,而服务器主要包括事务处理模块、数据存储模块以及日志处理模块,监视器负责监视和存储系统中数据的访问情况,并且定期地查询所有服务器来更新数据的访问情况;当数据被事务修改,读取或者插入时则认为被数据访问,监视器通过计算数据被访问的数量来判断哪些数据被访问比较多以及每台服务器的负载情况;当监视器发现系统负载不均衡,即某些服务器的数据访问比其他服务器高很多时,监视器通知规划器来根据数据访问量来生成的新的数据规划;规划器利用监视器提供的数据访问量信息来计算新的数据规划,当新的数据规划计算完成后,规划器使用协调器来将新的规划应用到整个系统中。
CN201710693248.4A 2017-08-14 2017-08-14 适用于分布式内存数据库的在线负载均衡方法 Active CN107480254B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710693248.4A CN107480254B (zh) 2017-08-14 2017-08-14 适用于分布式内存数据库的在线负载均衡方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710693248.4A CN107480254B (zh) 2017-08-14 2017-08-14 适用于分布式内存数据库的在线负载均衡方法

Publications (2)

Publication Number Publication Date
CN107480254A CN107480254A (zh) 2017-12-15
CN107480254B true CN107480254B (zh) 2021-05-11

Family

ID=60599432

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710693248.4A Active CN107480254B (zh) 2017-08-14 2017-08-14 适用于分布式内存数据库的在线负载均衡方法

Country Status (1)

Country Link
CN (1) CN107480254B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109936606A (zh) * 2017-12-18 2019-06-25 浙江宇视科技有限公司 任务分配方法和装置
CN111061557B (zh) * 2018-10-16 2023-04-14 杭州海康威视数字技术股份有限公司 均衡分布式内存数据库负载的方法和装置
CN114637736B (zh) * 2022-03-09 2023-03-31 北京金堤科技有限公司 一种数据库拆分方法和装置
CN116028234B (zh) * 2023-03-31 2023-07-21 山东浪潮科学研究院有限公司 一种分布式数据库负载均衡方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286884A (zh) * 2008-05-15 2008-10-15 杭州华三通信技术有限公司 一种实现非状态多主备份的方法及代理网关
CN102207891A (zh) * 2011-06-10 2011-10-05 浙江大学 对数据划分分布式环境实现动态划分和负载均衡的方法
CN104899250A (zh) * 2015-05-07 2015-09-09 上海交通大学 基于图结构与数据信息分离的图计算伸缩方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9081624B2 (en) * 2008-06-26 2015-07-14 Microsoft Technology Licensing, Llc Automatic load balancing, such as for hosted applications
US9407692B2 (en) * 2013-11-27 2016-08-02 Avi Networks Method and system for distributed load balancing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286884A (zh) * 2008-05-15 2008-10-15 杭州华三通信技术有限公司 一种实现非状态多主备份的方法及代理网关
CN102207891A (zh) * 2011-06-10 2011-10-05 浙江大学 对数据划分分布式环境实现动态划分和负载均衡的方法
CN104899250A (zh) * 2015-05-07 2015-09-09 上海交通大学 基于图结构与数据信息分离的图计算伸缩方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Transparent and Efficient Place Migration for APGAS Language;Zhijun Hao.etc;《International Conference on High Performance Computing and Communications》;20131231;第1337-1342页 *
面向多处理器虚拟机的动态NUMA 方法;施继成等;《小型微型计算机系统》;20150430;第36卷(第4期);第677-681页 *

Also Published As

Publication number Publication date
CN107480254A (zh) 2017-12-15

Similar Documents

Publication Publication Date Title
US11561841B2 (en) Managing partitions in a scalable environment
US20240211461A1 (en) Customer-requested partitioning of journal-based storage systems
CN107480254B (zh) 适用于分布式内存数据库的在线负载均衡方法
CN110147407B (zh) 一种数据处理方法、装置及数据库管理服务器
US9460185B2 (en) Storage device selection for database partition replicas
US8392482B1 (en) Versioning of database partition maps
CN103116596B (zh) 在分布式数据库中执行快照隔离的系统和方法
US8868711B2 (en) Dynamic load balancing in a scalable environment
US7516221B2 (en) Hierarchical management of the dynamic allocation of resources in a multi-node system
CN111753016B (zh) 数据处理方法、装置、系统及计算机可读存储介质
US9852010B2 (en) Decoupling partitioning for scalability
US10152500B2 (en) Read mostly instances
AU2004266017B2 (en) Hierarchical management of the dynamic allocation of resources in a multi-node system
US20130110873A1 (en) Method and system for data storage and management
US20060206621A1 (en) Movement of data in a distributed database system to a storage location closest to a center of activity for the data
CN112162846B (zh) 事务处理方法、设备及计算机可读存储介质
CN108810115B (zh) 一种适用于分布式数据库的负载均衡方法、装置及服务器
CN110825704B (zh) 一种读数据方法、写数据方法及服务器
US20240061712A1 (en) Method, apparatus, and system for creating training task on ai training platform, and medium
WO2017156855A1 (en) Database systems with re-ordered replicas and methods of accessing and backing up databases
Rajalakshmi et al. An improved dynamic data replica selection and placement in cloud
US10235407B1 (en) Distributed storage system journal forking
CN112487093A (zh) 一种分布式数据库的去中心化副本控制方法
CN115129768A (zh) 一种分布式搜索引擎的节点扩容的方法
CN104461736B (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