CN108009196A - 数据库再平衡方法 - Google Patents
数据库再平衡方法 Download PDFInfo
- Publication number
- CN108009196A CN108009196A CN201711000074.5A CN201711000074A CN108009196A CN 108009196 A CN108009196 A CN 108009196A CN 201711000074 A CN201711000074 A CN 201711000074A CN 108009196 A CN108009196 A CN 108009196A
- Authority
- CN
- China
- Prior art keywords
- nodes
- releveling
- database
- data
- reservoir system
- 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
- 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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/122—File system administration, e.g. details of archiving or snapshots using management policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file systems
-
- 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/21—Design, administration or maintenance of databases
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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
-
- 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
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供数据库再平衡方法。本发明一实施例的数据库再平衡(rebalancing)方法包括:构成第一节点组,第一节点组由所述贮存器系统所包含的DB节点中的部分DB节点构成;执行第一节点组的DB节点之间的第一局部再平衡;覆盖第一局部再平衡,在执行第一局部再平衡的过程中,贮存器系统所包含的DB节点中的被排除在第一节点组外的DB节点执行正常操作;构成第二节点组,第二节点组由贮存器系统所包含的DB节点中的部分DB节点构成;执行第二节点组的DB节点之间的第二局部再平衡,第二局部再平衡在第一局部再平衡结束以后执行;以及覆盖第二局部再平衡,在执行第二局部再平衡的过程中,贮存器系统所包含的DB节点中的被排除在第二节点组外的DB节点执行正常操作。
Description
技术领域
本发明涉及一种数据库再平衡方法。更详细而言,涉及一种在由多个数据库(DB)节点构成的贮存器系统中数据存储容量或数据访问偏重于特定DB节点的情况下,通过矫正该情况而提高整个贮存器系统的性能的方法。
背景技术
数据库再平衡(database rebalancing)是指在由多个DB节点构成的贮存器系统中以使数据存储或数据访问均匀地分配到各DB节点的方式移动或复制数据的一系列进程。NoSQL(非关系型数据库)方式的数据库通常通过横向扩展(scale out)方式进行扩展,在为了横向扩展而添加新的DB节点时执行数据库再平衡。
但是,由于在执行数据库再平衡期间爆发性地产生用于在贮存器系统内进行数据复制/移动的通信量,因此贮存器系统的性能暂时下降,这会暂时影响通过所述贮存器系统运行的数据库自身和利用所述数据库运行的应用服务的质量。
专利文献:美国专利第8,307,014号
发明内容
本发明所要解决的技术问题是提供一种数据库再平衡方法、应用该方法的DB节点以及由该DB节点构成的贮存器系统,该方法能够使整个数据库系统的性能下降最小化。
本发明所要解决的另一技术问题是提供一种数据库再平衡方法、应用该方法的DB节点以及由该节点构成的贮存器系统,该方法根据存储在整个数据库系统中的数据的大小以彼此不同的方式执行数据库再平衡。
本发明所要解决的又一技术问题是提供一种DB节点及由该DB节点构成的贮存器系统,该DB节点在没有用于管理数据库再平衡的额外的装置的情况下,在只连接有各个DB节点的环境中执行数据库再平衡。
本发明的技术问题并不限定于以上所提及的技术问题,本领域技术人员能够从下面的记载中明确理解没有提及的其他技术问题。
为了解决上述技术问题,本发明一实施例的数据库再平衡方法包括以下步骤:构成第一节点组,所述第一节点组包含所述贮存器系统所包含的三个以上的DB节点中的部分DB节点;执行所述第一节点组的DB节点之间的第一局部再平衡;覆盖第一局部再平衡,在执行所述第一局部再平衡的过程中,所述贮存器系统所包含的多个DB节点中的被排除在所述第一节点组外的DB节点执行正常操作;构成第二节点组,所述第二节点组包含所述贮存器系统所包含的所述三个以上的DB节点中的两个以上的DB节点;执行所述第二节点组的DB节点之间的第二局部再平衡,所述第二局部再平衡在结束所述第一局部再平衡以后执行;以及覆盖第二局部再平衡,在执行所述第二局部再平衡的过程中,所述贮存器系统所包含的DB节点中的被排除在所述第二节点组外的DB节点执行正常操作。所述数据库再平衡方法在包含三个以上的DB节点的贮存器系统中执行,所述第一节点组和所述第二节点组的至少一个DB节点彼此不同。
在一实施例中,在执行所述第一局部再平衡的过程中,所述贮存器系统所包含的DB节点中的除包含在所述第一节点组中的节点以外的剩余节点执行正常操作的步骤包括以下的服务请求转发步骤:在执行所述第一局部再平衡的过程中,所述第一节点组所包含的DB节点中的存储有目标数据的DB节点接收与所述目标数据相关的服务请求,并且将所述服务请求转发给除所述第一节点组所包含的DB节点以外的剩余DB节点中的、具有所述目标数据的复制数据的DB节点。此时,所述贮存器系统为了维持2以上的复制系数(replicationfactor),对其他DB节点维持复制数据。此时,所述服务请求转发步骤可包括:由具有所述目标数据的复制数据的DB节点处理所述服务请求,并且将该处理结果转发给接收所述服务请求的DB节点;和接收所述服务请求的DB节点将接收到的所述服务请求的处理结果作为对所述服务请求的响应而发送。
在一实施例中,构成所述第一节点组的步骤包括构成包含第一DB节点的所述第一节点组的步骤,构成所述第二节点组的步骤包括构成未包含所述第一DB节点而包含第二DB节点的所述第二节点组的步骤,所述第一DB节点的再平衡优先级高于所述第二DB节点的再平衡优选级,所述再平衡优先级被设定如下:读/写请求通信量越多则所述再平衡优选级越高;缓慢操作的个数越多则所述再平衡优选级越高;清空队列长度越长则所述再平衡优选级越高。
在一实施例中,执行所述第一局部再平衡的步骤包括:对在所述第一节点组的各个DB节点的分区中以负载集中度为基础选择的热分区优先执行再平衡,执行所述第二局部再平衡的步骤包括:对在所述第二节点组的各个DB节点的分区中以负载集中度为基础选择的热分区优选执行再平衡。
在一实施例中,所述贮存器系统所包含的DB节点的个数越多则所述第一节点组所包含的DB节点的个数和所述第二节点组所包含的DB节点的个数越多。在另一实施例中,所述复制系数(replication factor)越大则所述第一节点组所包含的DB节点的个数和所述第二节点组所包含的DB节点的个数越多。
在一实施例中,所述第一节点组所包含的DB节点的个数和所述第二节点组所包含的DB节点的个数均为两个。
在一实施例中,构成所述第一节点组的步骤、执行所述第一局部再平衡的步骤、所述覆盖第一局部再平衡的步骤、构成所述第二节点组的步骤、执行所述第二局部再平衡的步骤以及所述覆盖第二局部再平衡的步骤限于在所述贮存器系统的数据大小为所述基准值以上的情况下执行。此外,在一实施例中,构成所述第一节点组的步骤、执行所述第一局部再平衡的步骤、所述覆盖第一局部再平衡的步骤、构成所述第二节点组的步骤、执行所述第二局部再平衡的步骤以及所述覆盖第二局部再平衡的步骤限于在所述贮存器系统的数据大小为所述基准值以上且所述贮存器系统的复制系数设定为2以上的情况下执行。
在一实施例中,所述数据库再平衡方法进一步包括由横向扩展(scale out)而产生的新的DB节点被连接到所述贮存器系统中的步骤,所述第一节点组由在所述贮存器系统的现有DB节点中再平衡优先级最高的DB节点和所述新的DB节点构成,所述第二节点组由在所述贮存器系统的现有DB节点中再平衡优先级第二高的DB节点和所述新的DB节点构成。
在一实施例中,在所述贮存器系统所包含的DB节点中不存在变动的情况下,所述第一节点组可由在所述贮存器系统的现有DB节点中再平衡优先级最高的DB节点和接收从所述优先级最高的DB节点移动的数据的DB节点构成,所述第二节点组可由在所述贮存器系统的现有DB节点中再平衡优先级第二高的DB节点和接收从所述优先级第二高的DB节点移动的数据的DB节点构成。
本发明另一实施例的、在包含第一DB节点、第二DB节点和第三DB节点的贮存器系统中执行的数据库再平衡方法包括以下步骤:执行所述第一DB节点与所述第二DB节点之间的再平衡;在执行所述第一DB节点与所述第二DB节点之间的再平衡的期间,所述第三DB节点正常提供数据读/写服务;在结束所述第一DB节点与所述第二DB节点之间的再平衡之后,执行所述第一DB节点与所述第三DB节点之间的再平衡;和在执行所述第一DB节点与所述第三DB节点之间的再平衡的期间,所述第二DB节点正常提供数据读/写服务。
本发明又一实施例的、维持2以上的复制系数的贮存器系统包括:主DB节点,包括存储部及资源管理器;和多个从属DB节点,每个所述从属DB节点包括存储部及资源管理器。此时,所述多个从属DB节点中的每一个资源管理器将关于数据存储状态的信息共享到所述主DB节点的资源管理器中,所述主DB节点的资源管理器以共享的关于所述数据存储状态的信息为基础判断是否执行数据再平衡,在执行数据再平衡时,以依次执行两个DB节点之间的数据再平衡的方式执行再平衡调度,并且将基于所述再平衡调度的控制信号发送给所述多个从属DB节点,对正在执行数据再平衡的DB节点的服务请求被转发给存储有与所述服务请求相关的数据的复制数据的、不在执行数据再平衡的DB节点。
本发明又一实施例的数据库再平衡方法可包括以下步骤:选择热分区;和构成再平衡调度,所述再平衡调度由用于对各节点分散所述热分区的个数的、逐次数据移动和数据复制构成。
附图说明
图1是基于数据库的服务系统的结构图。
图2是本发明一实施例的贮存器系统的第一结构图。
图3是本发明一实施例的贮存器系统的第二结构图。
图4A至图4D是用于说明在图3所示的贮存器系统中添加新的DB节点时执行的数据库再平衡操作的图。
图5是用于说明本发明一实施例的贮存器系统在没有DB节点的结构变更的状态下执行数据库再平衡的操作的图。
图6是用于说明本发明一实施例的贮存器系统在DB节点中的一个节点为故障(fail)状态的情况下执行用于弥补该状态的数据库再平衡的操作的图。
图7是本发明一实施例的DB节点的方框结构图。
图8是本发明一实施例的数据库再平衡方法的顺序图。
图9是在本发明一实施例的由多个DB节点构成的数据库系统中,将数据库再平衡中途接收的服务请求连接到DB节点的方法的顺序图。
具体实施方式
下面,参照附图对本发明的优选实施例进行详细说明。参照附图的同时参照详细地后述的实施例,本发明的优点及特征以及实现这些的方法将会明确。但是,本发明并不限定于以下所公开的实施例,而是可以以彼此不同的多种方式实现,本实施例仅用于完整地公开本发明,并且为了向本发明所属技术领域的技术人员完整地告知本发明的范围而提供的,本发明仅由权利要求的范畴定义。在说明书全文中相同的附图标记指相同的结构要素。
如果没有其他定义,则在本说明书中使用的所有用语(包括技术用语及科技用语)可以以本发明所属技术领域的技术人员共同理解的含义使用。另外,在通常使用的词典中定义的用语只要没有明确的特别定义,就不能理想地或过度地解释。在本说明书中使用的用语用于说明实施例,并不旨在限制本发明。在本说明书中,只要在句子中未特别提到,单数形式就可以包括复数形式。
下面,参照附图对本发明的几种实施例进行说明。
参照图1,对成为本发明的几种实施例的实施环境的基于数据库的服务系统进行说明。所述基于数据库的服务系统可由服务器-客户端体系结构来操作。
应用服务器100被连接到贮存器系统200。贮存器系统200包括多个DB(Database,数据库)节点220、222、224。这种结构为容易进行横向扩展(scale out)的结构。即,为了附加存储数据而附加连接DB节点即可,并且在应存储的数据大小缩小的情况下,为了防止不必要的资源消耗,去除连接的DB节点中的一部分节点即可。如图1所示,各个DB节点可利用硬盘驱动器(HDD)或固态驱动器(SSD)等多种方式的贮存器装置来构成。贮存器系统200例如可构成NoSQL方式的数据库。
下面,在本说明书中,DB节点是指包括贮存器装置、处理器或贮存器控制器等运算单元及网络接口的计算装置。
贮存器系统200不仅包括DB节点220、222、224,还可包括贮存器服务器。贮存器服务器将从应用服务器100接收的数据读/写请求转发给DB节点220、222、224。但是,应注意在没有额外的贮存器服务器的情况下,也可以仅由DB节点220、222、224构成贮存器系统200。在该情况下,在各个DB节点220、222、224中设置有适配器模块(adaptor module),从而能够与应用服务器100收发数据读/写请求及关于该请求的处理结果数据。
客户端402、404、406可接收由贮存器服务器提供的数据库相关功能并接入到提供特定服务的应用服务器100。应用服务器100例如可以是网页服务器或服务服务器。客户端402、404、406也可以不经过应用服务器100而直接接入贮存器服务器。在该情况下,安装在客户端402、404、406上的数据库客户端向贮存器服务器发送查询(query)。
如图1所示,基于数据库的服务系统的客户端402、404、406可以是如智能手机、平板电脑等的移动终端;如台式电脑、笔记本电脑等的个人计算机。
下面,对本发明一实施例的贮存器系统的结构及操作进行说明。虽然将在下面进行详细说明,但本发明的几种实施例的数据库再平衡通过更换DB节点并依次进行局部再平衡而执行。此时,需要有至少两个DB节点参与局部再平衡。以下,为了说明本发明的实施例,可使用由参与所述局部再平衡的节点构成的“节点组”这一用语。在由两个DB节点构成的节点组在进行再平衡的中途,也需要有一个DB节点执行正常操作,因此优选本实施例的贮存器系统包括三个以上的DB节点。
在节点组执行局部再平衡的中途,未包含在所述节点组中的其他节点执行正常操作可以表示例如以允许范围内的响应速度提供数据读/写服务。例如,当未包含在正在参与执行局部再平衡的节点组中的DB节点中存储有包含在该节点组中的DB节点所存储的数据的副本时,该未包含在该节点组中的DB节点可接收该节点组的DB节点转发的关于该副本的数据读取请求而代替处理。
在图2中示例性地图示了由三个DB节点226、228、230构成的贮存器系统200a。在贮存器系统200a中不存在用于管理DB节点的额外的装置,多个DB节点226、228、230被直接连接到应用服务器100。应用服务器100不会控制贮存器系统200a的数据库再平衡操作。即,各DB节点与其他节点联动而自行执行数据库再平衡操作。
为了各个DB节点自行执行数据库再平衡操作,在各DB节点226、228、230中设置有资源管理器227、229、231。各资源管理器227、229、231为被加载于各DB节点的存储器(未图示)中并且在各DB节点的CPU(中央处理器,未图示)中执行的一系列操作。在一实施例中,资源管理器227、229、231也可以是在设置于各DB节点上的专用处理芯片中执行的内置程序。所述专用处理芯片为与各DB节点的CPU独立的芯片。
资源管理器227、229、231包括用于对数据库再平衡的执行进行管理的模块、用于汇集DB节点的状态信息并将其共享到其他DB节点的模块、以及共享存储在各DB节点中的数据的数据图的模块。通过资源管理器汇集各DB节点的状态信息并将其共享到其他DB节点,从而可以对贮存器系统200a内的所有DB节点226、228、230是否处于需要数据库再平衡的状况作出相同的判断,并且准备相同的再平衡执行计划。
资源管理器227、229、231中的每一个判断以下情况:i)是否为需要进行数据库再平衡的时刻;ii)如何调度数据库再平衡;iii)当执行各节点的局部再平衡时,对哪个分区优先进行数据库再平衡。在一实施例中,各资源管理器可经过同步化过程,从而彼此共享自身的判断结果而不会作出彼此不同的判断。
在执行数据库再平衡时,贮存器系统200a不会对包含在贮存器系统200a中的所有DB节点同时进行再平衡。由于这种方式在执行再平衡过程中会导致贮存器系统200a内部过多的通信量,并且使所有DB节点处于忙碌(busy)状态,因此再平衡执行过程中的贮存器系统200a无法迅速处理来自应用服务器100的数据读/写请求。
仅有所需个数的DB节点参与的再平衡称作局部再平衡(为了与全局数据库再平衡区分而记载为局部再平衡),贮存器系统200a更换参与的DB节点而依次执行所述局部再平衡。例如,可通过在执行DB节点#1 226与DB节点#2 228之间的第一局部再平衡,并且执行DB节点#1 226与DB节点#3 230之间的第二局部再平衡之后,执行DB节点#2 228与DB节点#3230之间的第三局部再平衡,从而完成全局数据库再平衡。由于在进行全局数据库再平衡的期间,部分DB节点以不参与局部再平衡的状态存在,因此本实施例的贮存器系统具有能够使数据库再平衡中途使性能下降最小化的效果。
贮存器系统200a为维持两个以上的复制系数(replication factor)的系统。所述复制系数为表示数据复制存储在几个节点中的数字。即,复制系数为2的贮存器系统在两个DB节点中分散存储有数据。
贮存器系统200a可利用所述复制系数来使数据库再平衡中途的性能下降最小化。贮存器系统200a优选在构成执行局部再平衡的节点组时,使得该节点组不包含存储有复制数据的DB节点。其结果,即使对正在执行局部再平衡的DB节点有读/写请求,贮存器系统200a也可以通过存储有关于所述请求的数据的副本的其他节点来即时处理所述请求。假设正在执行从DB节点#2 228到DB节点#3 230的局部再平衡的中途从应用服务器100接收针对DB节点#2 228的数据的读取请求的情况。如果在DB节点#1 226中也存储有所述数据的副本,则DB节点#2 228的资源管理器229可将所述读取请求转发给DB节点#1 226的资源管理器227。
对反映了关于几个DB节点同时执行所述局部再平衡的情况为好的研究结果的实施例进行说明。同时参与局部再平衡的DB节点的个数越多则全局数据库再平衡过程能够越快结束,但会使数据库再平衡中途的性能下降严重。反之,即执行局部再平衡的DB节点的个数越少则全局数据库再平衡过程中所需要的时间越长,但会使数据库再平衡中途的性能下降最小化。如已提到,执行局部再平衡的DB节点的个数最少为两个。
在一实施例中,为了使数据库再平衡中途的性能下降最小化,可将执行局部再平衡的DB节点的个数固定为两个。局部再平衡从源(source)侧DB节点向目标侧DB节点移动或复制数据的操作构成。如已做说明,作为所述目标侧DB节点选择除存储有存储在源侧DB节点中的数据的复制数据的DB节点以外的某一DB节点即可。此时,由于包含在贮存器系统200a中的DB节点的个数越多则可成为目标侧DB节点的DB节点个数也越增加,因此用于选择适当的目标侧DB节点的难度会降低。鉴于这一点,在另一实施例中,可利用包含在贮存器系统200a中的DB节点的个数来确定执行局部再平衡的DB节点的个数。即,包含在贮存器系统200a中的DB节点的个数越增加则能够越增加执行局部再平衡的DB节点的个数。在该情况下,与将执行局部再平衡的DB节点的个数总是固定为两个的实施例相比较,具有能缩减全局数据库再平衡所需时间的效果。
图3是本发明一实施例的贮存器系统的第二结构图。在图3中图示了由四个DB节点构成的贮存器系统200b。与图2不同,图3所示的DB节点被区分为一个主DB节点232和三个从属DB节点234、236、238。
从属DB节点234、236、238的资源管理器235、237、239将各从属DB节点234、236、238的状态信息共享到主DB节点232的资源管理器233。即,包含在贮存器系统200b中的所有从属DB节点的状态信息共享到主DB节点232的资源管理器233。
主DB节点232的资源管理器233判断以下情况:i)是否为需要进行数据库再平衡的时刻;ii)如何构成数据库再平衡的所有调度;iii)以各节点的哪个分区为主进行数据库再平衡。主DB节点232的资源管理器233将用于控制数据库再平衡的指令(command)发送给各从属DB节点234、236、238的资源管理器235、237、239。
此外,主DB节点232将从应用服务器100接收到的数据读/写请求转发给各从属DB节点234、236、238。
应注意虽然主DB节点232部分执行针对从属DB节点234、236、238的控制功能,但主DB节点232仍然为存储有数据的DB节点。
到目前为止,参照图2至图3对以下内容进行了说明:在本发明的几种实施例中不会对包含在贮存器系统200a中的所有DB节点同时进行再平衡,而是更换DB节点而进行局部再平衡。另外,还说明了以下内容:由于贮存器系统为维持2以上的复制系数的系统,因此针对正在执行局部再平衡的DB节点提出的数据访问请求则能够由其他DB节点即时处理,该其他DB节点为不在执行所述局部再平衡但存储有所述数据访问请求所要求数据的副本的DB节点。另外,还说明了以下内容:由于上述内容,本发明的几种实施例能够减少因数据库再平衡导致的数据库性能下降。以下,参照图4A至图4D对进一步减少因数据库再平衡导致的数据库性能下降的几种实施例进行说明。
图4A至图4D是用于说明在图3所示的贮存器系统中添加新的DB节点的情况下执行的数据库再平衡操作的图。
在图4A中图示了在由主DB节点232和三个从属DB节点234、236、238构成的贮存器系统中新连接有一个从属DB节点240的状况。该状况表示由所谓横向扩展(scale out)实现贮存器系统的功能扩展的状况。由于在贮存器系统的现有DB节点中过度集中通信量,因此进行了横向扩展,可知在该情况下,为了最大限度地提高由新的从属DB节点240的连接实现的性能提高效果,需要进行数据库再平衡。
即,可判断为在因横向扩展而连接新的DB节点时主DB节点232需要执行数据库再平衡。
图4A所示形式的数据库再平衡可能包含将存储在现有的DB节点中的数据的部分数据移动(move)到新的DB节点。当然,也可以根据再平衡逻辑,同时进行用于使各DB节点的负载(load)均匀的数据复制(copy)。此时,可通过适当地确定现有的DB节点232、234、236、238向新的DB节点240的数据移动顺序,进一步减少由数据库再平衡引起的数据库性能下降。需要注意的是,数据移动为在源侧装置中删除所移动的数据,在这一点上与将数据原封不动地保留在源侧装置中的数据复制(copy)不同。
对包含在本发明一实施例的贮存器系统中的各DB节点赋予再平衡优先级。本实施例的贮存器系统通过执行一系列的逐次局部再平衡,从而结束全局数据库再平衡。此时,为了确定各DB节点的局部再平衡的顺序,参照所述再平衡优先级。
所述再平衡优先级利用由DB节点的资源管理器收集并共享的所述DB节点的状态信息来确定。所述状态信息例如可以是下表1所示的信息。
[表1]
以如下方式设定所述再平衡优先级:对该DB节点的读/写请求通信量越多则优先级越高,处理所需的时间超过基准值的慢操作(slow operation)个数越多则优先级越高,清空队列长度越长则优先级越高,贮存器的使用量或使用率越高则优先级越高,处理器的使用率越高则优先级越高,存储器的使用量或使用率越高则优先级越高,热分区(hotpartition)个数越多则优先级越高。简而言之,对DB节点施加的负载(load)越多则该DB节点的再平衡优先级越高。在运算所述再平衡优先级时,可以对各个系数(factor)赋予不同的权值。
在图4A中图示了对主DB节点232及三个从属DB节点234、236、238以对相应DB节点的读/写请求通信量为基准运算再平衡优先级的实施例。在贮存器系统中包含的现有的四个DB节点中通信量最集中的DB节点为从属#3DB节点238,集中有每秒350次的读/写请求。因此,对从属#3DB节点238最先实施利用数据移动的通信量减轻措施(第一局部再平衡)会有助于减少由数据库再平衡引起的数据库性能下降。这是因为,如已做几次说明,从属#3DB节点238在执行部分数据向新的从属节点240移动的第一局部再平衡操作之后直接成为能够进行正常服务的节点。
为了有助于方便理解,在图4A中举例说明了在第一局部再平衡至第四局部再平衡中数据均从现有的从属DB节点向新的从属DB节点移动。但是,本发明的实施例并不限定为由于连接有新的DB节点而无条件地以数据从现有的DB节点向新的DB节点移动的方式执行局部再平衡。应注意也可以根据数据分布而执行现有的DB节点之间的数据移动及数据复制。
在从属#3DB节点238与从属#4DB节点240之间进行第一局部再平衡的期间,未参与第一局部再平衡的DB节点232、234、236为能够提供正常服务的节点。
第二局部再平衡从具有每秒100次的读/写请求的主DB节点232向从属#4DB节点240执行,此时从属#1DB节点234、从属#2DB节点236及从属#3DB节点238为能够提供正常服务的节点。
第三局部再平衡从具有每秒75次的读/写请求的从属#2DB节点236向从属#4DB节点240执行,此时从属#1DB节点234、从属#3DB节点238及主DB节点232为能够提供正常服务的节点。
第四局部再平衡从具有每秒50次的读/写请求的从属#1DB节点234向从属#4DB节点240执行,此时从属#2DB节点236、从属#3DB节点238及主DB节点232为能够提供正常服务的节点。
在图4A中图示了所有现有节点对新节点转移数据的情况,但应注意连接有新节点时的数据库再平衡并不是总是由所有现有节点将数据转移给新节点。也可以根据数据库再平衡策略产生只有部分现有节点向新节点转移数据的情况。
下面,参照图4B对本实施例的贮存器系统利用未参与局部再平衡的剩余节点中存储的副本来迅速处理关于作为正在进行局部再平衡的DB节点的读/写请求的操作进行说明。图4B所示的实施例的前提在于,通过“连接优先级”来确定存储有与所述请求相关的数据的多个DB节点中的哪个节点执行从应用服务器接收到的请求(request)。
主DB节点232接收读/写请求,并且查找与该请求对应的数据存储在哪个DB节点中。由于贮存器系统以维持复制系数的方式管理数据副本,因此所述数据存储在两个以上的DB节点中。通过连接优先级来确定在多个DB节点中实际处理所述请求的节点。因此,将正在进行局部再平衡的DB节点的所述连接优先级强行调整为最低之后,若在结束所述局部再平衡时将连接优先级恢复成原来的状态,则能将关于正在进行局部再平衡的DB节点的读/写请求转发给不在执行局部再平衡请求的其他节点。在图4B中图示了将向新节点转移数据的DB节点的连接优先级调整为最低的情况。
到目前为止,对在执行数据库再平衡时通过各DB节点依次参与的方式来改善再平衡执行过程的性能变差的几种实施例进行了说明。以下,参照图4C,关于在特定DB节点中执行局部再平衡时通过只对局部分区执行局部再平衡来进一步改善再平衡执行过程中的性能变差的几种实施例进行说明。
如已参照图4A及图4B进行说明,第一局部再平衡从从属#3DB节点238向从属#4DB节点240执行。假设在各DB节点中包含九个分区时,在图4C中图示了在执行第一局部再平衡之前作为新节点的从属#4DB节点240的九个分区均为空分区(empty partition),作为现有节点的从属#3DB节点238的九个分区均为已使用的分区,其中两个分区为根据预先定义的基准评价的热分区(hot partition)。
可利用通过各DB节点的资源管理器收集到的状态信息中的与各分区相关的以下信息来判断所述热分区(再次表示表1中的部分内容)。
即,可将读/写请求次数多、反应时间超过基准值且缓存命中次数多的分区判断为热分区。
当为了第一局部再平衡而从从属#3DB节点238向从属#4DB节点240部分移动数据时可能有多种方法。
在一实施例中,可以将被选择为热分区的分区中的至少一部分分区整体移动。图4C图示了这种实施例。根据图4C,图示了在第一局部再平衡的结果,曾经为从属#3DB节点238的热分区的#2、#4、#6、#8分区中的#2、#4分区的所有数据原封不动地移到从属#4DB节点240的#A、#B分区。即可确认,在进行第一局部再平衡的结果,从属#3DB节点238的热分区个数由四个减少至两个,从属#4DB节点240的热分区个数由零个增加至两个,从而从属#3DB节点238与从属#4DB节点240的热分区个数相同。即具有如下效果:通过局部再平衡,各DB节点所具有的热分区的个数分散。即,本实施例与现有方式的再平衡不同地,提出了执行热分区的再平衡这一新基准。通过分散各DB节点所具有的热分区的个数,只需用于再平衡的更少的数据复制/移动操作就能获得更佳的再平衡效果。
当然,尽管进行热分区的移动,也有可能无法充分实现数据分散。在这种情况下,还可以移动或复制属于非热分区的分区的数据。但是,根据本发明的实施例,热分区的数据比非热分区的数据优先进行移动或复制。即,不仅将热分区作为局部再平衡的对象,也可将其他分区的数据作为局部再平衡的对象,此时对热分区的数据先进行局部再平衡,从而对存储在作为局部再平衡的对象的DB节点中的数据总体上执行再平衡,并且快速解除负载集中到热分区数据的现象。
即,如图4C所示的本发明的实施例可作为数据库再平衡方法而广泛应用。本实施例的数据库再平衡方法可包括以下步骤:选择热分区;以及构建用于对各节点分散所述热分区的个数的、由逐次数据移动及数据复制构成的再平衡调度。
在另一实施例中,也可以对所有热分区使部分数据向目标侧DB节点移动。在该情况下,具有如下效果:即,通过局部再平衡,现有的热分区成为一般分区,从而缓和其负载程度。
在本发明的又一实施例中,也可以限定于热分区的数据而执行局部再平衡。根据本实施例具有如下效果:将受到局部再平衡影响的对象限制为特定DB节点的特定分区,并且能够与此相应地进一步扩增能够在执行局部再平衡的中途进行正常服务的区域。当然,为了对非再平衡对象的分区提供正常的读/写服务,优选在DB节点中存在多个访问接口。所述多个访问接口也可以是硬件接口,还可以是虚拟的软件性质的接口。此时,所述多个访问接口中的第一访问接口可以负责所述热分区,所述多个访问接口中的第二访问接口可以负责除所述热分区以外的剩余分区。
下面,参照图4D对以下实施例进行说明:在正在参与局部再平衡的DB节点接收与自身所存储的数据相关的请求的情况下,该DB节点自身不会处理所述请求,而是向存储有所述数据的副本的其他DB节点转发所述请求。
在图4D中图示了连接有由四个DB节点260、262、264、266构成的数据库和应用服务器100的系统。假设应用(application)接入DB节点#1 260而请求数据B的读取的状况。而在此时DB节点#1 260与DB节点#2 262之间正在进行局部再平衡。因此,DB节点#1 260处于自身难以直接处理数据B的读取的状态。因此,DB节点#1 260的资源管理器向作为存储有数据B的其他DB节点的DB节点#4 266转发所述数据B的读请求。接着,DB节点#1 260从DB节点#4266接收关于数据B的读请求的处理结果,并且将关于数据B的读请求的处理结果发送给应用服务器100。
由于处理数据B的读取时所需要的计算机负载大于查找存储有数据B的其他DB节点而转发数据读请求时所需要的计算机负载,因此从数据读请求的处理所需时间方面来看图4D的实施例更有效。
下面,参照图5对本发明一实施例的贮存器系统在没有DB节点的结构变更的状态下执行数据库再平衡的操作进行说明。如图5所示,在没有DB节点的结构变更的状态下执行数据库再平衡时,也依次对彼此不同的DB节点执行局部再平衡,而在对各节点执行局部再平衡时可以不对整个数据执行再平衡,而是以热分区的数据为主执行再平衡。在这种情况下,也可以按照使包含在各DB节点中的热分区的个数分散的方向执行数据再平衡。
首先,查看各DB节点的再平衡优先级,在考虑热分区的个数的情况下再平衡优先级顺序为DB节点#1 242、DB节点#2 244、DB节点#3 246、DB节点#4 248。第一局部再平衡可以被调度为DB节点#1 242的热分区中的部分热分区向优先级低的DB节点#3 246移动。此时,由于需要维持复制系数,因此需要移动未存储在DB节点#3 246中的数据。在图5中图示了该移动的结果五个热分区可以向DB节点#3 246移动。在第一局部再平衡的结果,DB节点#1 242的热分区个数由20个减少至15个,DB节点#3 246的热分区个数由三个增加至八个。尽管是第一局部再平衡的结果,但尚未充分分散DB节点#1 242的热分区,因此执行下一次局部再平衡。
第二局部再平衡可以被调度为DB节点#1 242的剩余热分区中的部分热分区向优先级低的DB节点#4 248移动。由于与第一局部再平衡同样地需要维持复制系数,因此需要移动未存储在DB节点#4 246中的数据。在图5中图示了该移动的结果七个热分区可以向DB节点#4 248移动。在第二局部再平衡的结果,DB节点#1 242的热分区个数由15个减少至八个,DB节点#4 246的热分区个数由一个增加至八个。由于第二局部再平衡的结果,所有DB节点242、244、246、248的热分区个数被调整为相同,因此结束数据库再平衡。
下面,参照图6对本发明一实施例的贮存器系统在DB节点中的一个节点成为故障状态的情况下执行用于缓和该状态的数据库再平衡的操作进行说明。图6为DB节点#8 256成为故障状态的状态。需要执行在维持复制系数的同时分散各DB节点的热分区个数的数据库再平衡。以下,在参照图6进行的说明中,假设由DB节点#5至DB节点#9(250、252、254、256、258)构成的贮存器系统的复制系数为2。
首先,查看各DB节点的再平衡优先级,在考虑热分区个数的情况下再平衡优先级的顺序为DB节点#9 258、DB节点#5 250、DB节点#7 254、DB节点#6 252。
首先,在第一局部再平衡中,DB节点#9 258的热分区中的两个热分区向再平衡优先级低的DB节点#7 254移动。可以理解由于移动的热分区的数据为未存储在DB节点#7 254中的数据而不会对复制系数带来影响,因此可以向DB节点#7 254移动。此外,假设在DB节点#9中也存储有成为故障状态的DB节点#8 256的热分区中的两个热分区的副本。那么,为了维持复制系数,存储在DB节点#9中的两个副本分区可被复制到DB节点#7中。在第一局部再平衡的结果,DB节点#9 258的热分区由12个减少至十个,DB节点#7 254的热分区由两个增加至六个。
接着,从DB节点#9 258向DB节点#6 252执行第二局部再平衡。此时,第二局部再平衡的源侧DB节点仍然为DB节点#9 258,这是因为尽管进行了第一局部再平衡,但与优先级第二高的DB节点#5 250相比DB节点#9 258的热分区个数仍未减少。DB节点#9 258的热分区中的两个热分区向再平衡优先级低的DB节点#6 252移动。可以理解由于移动的热分区的数据为未存储在DB节点#6 252中的数据而不会对复制系数带来影响,因此可以向DB节点#6252移动。此外,假设在DB节点#9中也存储有成为故障状态的DB节点#8 256的热分区中的两个热分区的副本。那么,为了维持复制系数,存储在DB节点#9中的两个副本分区可被复制到DB节点#6 252中。在第二局部再平衡的结果,DB节点#9 258的热分区由十个减少至八个,DB节点#6 252的热分区由两个增加至六个。
接着,从DB节点#5 250向DB节点#7 254执行第三局部再平衡。DB节点#5 250的热分区中的一个热分区向DB节点#7 254移动。可以理解由于移动的热分区的数据为未存储在DB节点#7 254中的数据而不会对复制系数带来影响,因此可以向DB节点#7 254移动。此外,假设在DB节点#5 250中也存储有成为故障状态的DB节点#8 256的热分区中的一个热分区的副本。那么,为了维持复制系数,存储在DB节点#5 250中的一个副本分区可被复制到DB节点#7 254中。在第三局部再平衡的结果,DB节点#5 258的热分区由十个减少至九个,DB节点#7 254的热分区由六个增加至八个。
接着,从DB节点#5 250向DB节点#6 252执行第四局部再平衡。此时,第四局部再平衡的源侧DB节点仍然为DB节点#5 250,这是因为尽管进行了第三局部再平衡,但与优先级第二高的DB节点#7 254相比DB节点#5 250的热分区个数仍未减少。DB节点#5 250的热分区中的一个热分区向再平衡优先级低的DB节点#6 252移动。可以理解由于移动的热分区的数据为未存储在DB节点#6 252中的数据而不会对复制系数带来影响,因此可以向DB节点#6252移动。此外,假设在DB节点#5 250中也存储有成为故障状态的DB节点#8 256的热分区中的一个热分区的副本。那么,为了维持复制系数,存储在DB节点#5 250中的一个副本分区可被复制到DB节点#6 252中。在第四局部再平衡的结果,DB节点#5 250的热分区由九个减少至八个,DB节点#6 252的热分区由六个增加至八个。
由于在执行到第四局部再平衡的结果,DB节点#5、#6、#7、#9(250、252、254、258)均具有八个热分区,因此结束数据库再平衡。
下面,参照图7对本发明一实施例的DB节点的结构及操作进行说明。如图7所示,本实施例的DB节点500包括作为存储数据的硬件贮存器的存储部502、资源管理器504以及用于与其他DB节点和应用服务器执行数据收发的网络接口506。
如图7所示,资源管理器504可包括再平衡调度部548、其他节点状况收集部540、节点感测部542、节点健康检查部544和其他节点控制部546。资源管理器504为被加载于DB节点500的存储器(未图示)中并且在DB节点500的CPU(未图示)中执行的一系列操作。在一实施例中,资源管理器504也可以由实现内置程序的、与所述CPU独立的专用处理芯片构成。
其他节点状况收集部540从通过网络接口506连接的其他DB节点收集状态信息。作为所述状态信息的示例已提供了表1。节点感测部542感测是否有新节点连接到贮存器系统。节点健康检查部544通过确认是否从连接到贮存器系统的其他DB节点正常接收健康检查消息等的方法来检查连接到贮存器系统的其他DB节点的状态。其他节点控制部546根据由再平衡调度部548提供的数据库再平衡调度来生成用于执行所述调度的指令,并且通过网络接口506将生成的指令发送给其他DB节点500。
再平衡调度部548通过综合判断由其他节点状况收集部540提供的其他节点的状态信息、由节点感测部542提供的关于是否连接有新节点的信息、由节点健康检查部544提供的其他节点健康信息、以及表示存储在存储部502中的每个DB节点的数据存储状况的数据地图520来执行再平衡调度。
再平衡调度部548判断以下情况:i)是否为需要进行数据库再平衡的时刻;ii)按哪种顺序进行再平衡;iii)对各节点的哪个分区进行数据库再平衡。
再平衡调度部548对包含在贮存器系统中的各DB节点赋予再平衡优先级。再平衡调度部548生成由一系列的逐次局部再平衡构成的全局数据库再平衡调度。此时,为了确定关于各DB节点的局部再平衡顺序,参照所述再平衡优先级。对所述DB节点施加的负载(load)越多则DB节点的再平衡优先级越高。再平衡调度部548可将读/写请求次数多、反应时间超过基准值且缓存命中次数多的分区判断为热分区,并且只将所述热分区作为执行再平衡的对象。
下面,参照图8对本发明一实施例的数据库再平衡方法进行说明。本实施例的数据库再平衡方法可在参照图2至图6说明的贮存器系统执行。应注意本实施例的数据库再平衡方法可反映参照图2至图6说明的几种实施例的贮存器系统的操作。
首先,判断是否为需要数据库再平衡的状况(S100)。例如,需要数据库再平衡的情况为以下情况:连接有新的DB节点的情况、在贮存器系统所包含的DB节点中存在成为故障状态的节点、以及基准值以上的负载集中到特定DB节点中的情况等。
本发明的几种实施例的数据库再平衡方法可以限于存储在贮存器系统中的数据大小超过基准值的情况而执行(S101)。当存储在贮存器系统中的数据大小未达到基准值时,按照以往的方式执行数据库再平衡(S102)。
在一实施例中,本发明的几种实施例的数据库再平衡方法也可以限于所述贮存器系统维持2以上的复制系数的情况而执行。在贮存器系统不维持2以上的复制系数的情况下,按照以往的方式执行数据库再平衡。
接着,选择待执行数据库再平衡的对象节点(S103)。也可以存在只需对包含在贮存器系统中的部分DB节点执行数据库再平衡的情况,还可以存在需要对包含在贮存器系统中的所有DB节点执行数据库再平衡的情况。此外,在对特定节点执行数据库再平衡的情况下,在该节点内的分区中选择需要优先执行数据库再平衡的热分区(S104)。
接着,变更DB节点而依次执行两个以上的DB节点之间的局部再平衡(S106)。此时,执行局部再平衡的顺序通过反映再平衡优先级而确定,其结果对集中有负载的DB节点优先执行局部再平衡。
此外,在执行局部再平衡的期间,将关于执行局部再平衡的DB节点的连接优先级临时调整为较低。其结果,当在特定DB节点执行局部再平衡的期间,接收关于该DB节点的数据读/写请求时,通过存储有该数据的副本的、不在执行局部再平衡的其他DB节点来即时处理所述请求。简而言之,在执行所述局部再平衡的过程中,将关于包含在作为所述局部再平衡对象的节点组中的DB节点的服务请求转发给以下的DB节点:该DB节点为在除包含在所述第一节点组中的DB节点以外的剩余DB节点中的、存储有被请求访问的DB节点中存储的数据的DB节点。
如已做说明,即使是关于特定DB节点的局部再平衡,也按分区依次执行局部再平衡,不会对该DB节点内的所有分区同时执行局部再平衡。因此,在对特定分区结束再平衡的情况下(S108),对下一分区进行再平衡(S110),在对所有再平衡对象分区结束再平衡的情况下,对下一DB节点执行局部再平衡(S112、S114)。
简而言之,可以以使包含在所述贮存器系统中的各个DB节点所具有的热分区的个数平均化的方式,使所述热分区中的部分分区在所述第一节点组所包含的DB节点之间移动(move),或者可以以减少所述贮存器系统的所有热分区的个数的方式,使所述热分区的数据中的部分数据在所述第一节点组所包含的DB节点之间移动(move)。
下面,参照图9对在本发明一实施例的由多个DB节点构成的数据库系统中将数据库再平衡中途接收到的服务请求连接到DB节点的方法进行说明。
在从客户端接收与数据读/写相关的请求(request)的情况下(S200),判断存储有被请求数据的DB节点中的连接优先级最高的DB节点当前是否进行局部再平衡(S202)。如果不是,就由该DB节点处理所述请求(S208)。
如果该DB节点当前正在进行局部再平衡,则判断在存储有被请求数据的DB节点中是否存在连接优先级第二高的DB节点(S204)。如果存在这种DB节点,则由该节点处理所述请求(S212)。
如果在存储有被请求数据的DB节点中不存在连接优先级第二高的DB节点,则被请求数据只存储在当前正在进行局部再平衡的DB节点中。如果是那样,则判断存储有被请求数据的分区当前是否进行局部再平衡(S206)。根据本发明的几种实施例,即使对特定DB节点进行数据再平衡,也不是对该DB节点的所有分区同时进行数据再平衡,而是按分区依次进行数据再平衡,因此只要存储有被请求数据的分区当前不进行局部再平衡,则可通过设置于所述DB节点的多个访问接口中的、未负责当前正在进行局部再平衡的分区的其他访问接口来即时处理所述请求(S208)。如果存储有被请求数据的分区当前正在进行局部再平衡,则需要等待处理所述请求,直至对所述分区完成局部再平衡(S210)。
到目前为止说明的本发明的实施例的方法可通过运行以计算机可读代码实现的计算机程序来执行。所述计算机程序可通过互联网等网络从第一计算装置被传送到第二计算装置并被安装在所述第二计算装置中,由此能够在所述第二计算装置中使用。所述第一计算装置和所述第二计算装置均包括服务器装置、属于用于云服务的服务器池中的物理服务器和如台式个人电脑的固定式计算装置。
所述计算机程序也可以存储在数字只读光盘存储器(DVD-ROM)、快闪存储器装置等的存储介质中。
以上参照附图对本发明的实施例进行了说明,但本发明所属技术领域的技术人员应能理解,本发明可在不改变本发明的技术思想或必要特征的情况下以其他具体方式实施。因此,应理解以上所述的实施例在所有方面为示例性的而不是限定性的。
Claims (14)
1.一种数据库再平衡方法,该方法在包含三个以上的数据库DB节点的贮存器系统中执行,该方法包括以下步骤:
构成第一节点组,所述第一节点组包含所述贮存器系统所包含的三个以上的DB节点中的两个以上的DB节点;
执行所述第一节点组的DB节点之间的第一局部再平衡;
覆盖第一局部再平衡,在执行所述第一局部再平衡的过程中,所述贮存器系统所包含的DB节点中的被排除在所述第一节点组外的DB节点执行正常操作;
构成第二节点组,所述第二节点组包含所述贮存器系统所包含的所述三个以上的DB节点中的两个以上的DB节点;
执行所述第二节点组的DB节点之间的第二局部再平衡,所述第二局部再平衡在结束所述第一局部再平衡以后执行;以及
覆盖第二局部再平衡,在执行所述第二局部再平衡的过程中,所述贮存器系统所包含的DB节点中的被排除在所述第二节点组外的DB节点执行正常操作,
所述第一节点组所包含的至少一个DB节点未包含在所述第二节点组中,或者所述第二节点组所包含的至少一个DB节点未包含在所述第一节点组中。
2.根据权利要求1所述的数据库再平衡方法,其中,
所述第一节点组包含第一DB节点,
所述第二节点组未包含所述第一DB节点,而包含第二DB节点。
3.根据权利要求1所述的数据库再平衡方法,其中,
所述覆盖第一局部再平衡的步骤包括以下的服务请求转发步骤:在执行所述第一局部再平衡的过程中,所述第一节点组所包含的DB节点中的存储有目标数据的第一DB节点接收与所述目标数据相关的服务请求,并且向被排除在所述第一节点组外的DB节点中的、具有所述目标数据的复制数据的DB节点转发所述服务请求,
所述贮存器系统为了维持2以上的复制系数,对一个以上的DB节点维持复制数据。
4.根据权利要求3所述的数据库再平衡方法,其中,
所述服务请求转发步骤包括:
由所述第二DB节点处理所述服务请求,并且将该处理结果转发给所述第一DB节点;以及
所述第一DB节点将接收到的所述服务请求的处理结果作为对所述服务请求的响应而发送。
5.根据权利要求2所述的数据库再平衡方法,其中,
所述第一DB节点的再平衡优先级高于所述第二DB节点的再平衡优先级,
所述再平衡优选级被设定如下:读/写请求通信量越多则所述再平衡优选级越高;慢操作的个数越多则所述再平衡优选级越高;清空队列长度越长则所述再平衡优选级越高。
6.根据权利要求1或2所述的数据库再平衡方法,其中,
执行所述第一局部再平衡的步骤包括:
对在所述第一节点组的DB节点的分区中以负载集中度为基础选择的第一热分区执行再平衡,
执行所述第二局部再平衡的步骤包括:
对在所述第二节点组的DB节点的分区中以负载集中度为基础选择的第二热分区执行再平衡。
7.根据权利要求6所述的数据库再平衡方法,其中,
执行所述第一热分区的再平衡的步骤包括:
以使包含在所述贮存器系统中的各个DB节点所具有的热分区的个数平均化的方式,使所述第一热分区中的部分分区在所述第一节点组所包含的DB节点之间移动,
执行所述第二热分区的再平衡的步骤包括:
以使包含在所述贮存器系统中的各个DB节点所具有的热分区的个数平均化的方式,使所述第二热分区中的部分分区在所述第二节点组所包含的DB节点之间移动。
8.根据权利要求6所述的数据库再平衡方法,其中,
执行所述第一热分区的再平衡的步骤包括:
以减少所述贮存器系统的所有热分区的个数的方式,使所述第一热分区的数据在所述第一节点组所包含的DB节点之间移动,
执行所述第二热分区的再平衡的步骤包括:
以减少所述贮存器系统的所有热分区的个数的方式,使所述第二热分区的数据中的部分数据在所述第二节点组所包含的DB节点之间移动。
9.根据权利要求6所述的数据库再平衡方法,其中,
所述覆盖第一部局部再平衡的步骤包括:
在执行所述第一局部再平衡的过程中,在与关于只存储在所述第一节点组所包含的DB节点中的数据的服务请求相关的数据被存储在所述第一热分区以外的分区中的情况下,即使正在执行所述第一局部再平衡,也即时处理关于所述服务请求的操作,以作为对所述服务请求的响应。
10.根据权利要求9所述的数据库再平衡方法,其中,
与所述服务请求相关的数据被存储在具备负责一个以上的分区的多个访问接口的DB节点中,
所述多个访问接口中的第一访问接口负责所述第一热分区,所述多个访问接口中的第二访问接口负责所述第一热分区以外的剩余分区。
11.根据权利要求1所述的数据库再平衡方法,其中,
构成所述第一节点组的步骤、执行所述第一局部再平衡的步骤、所述覆盖第一局部再平衡的步骤、构成所述第二节点组的步骤、执行所述第二局部再平衡的步骤以及所述覆盖第二局部再平衡的步骤限于在所述贮存器系统的数据大小为基准值以上的情况下执行。
12.根据权利要求11所述的数据库再平衡方法,其中,
构成所述第一节点组的步骤、执行所述第一局部再平衡的步骤、所述覆盖第一局部再平衡的步骤、构成所述第二节点组的步骤、执行所述第二局部再平衡的步骤以及所述覆盖第二局部再平衡的步骤限于在所述贮存器系统的数据大小为基准值以上且所述贮存器系统的复制系数设定为2以上的情况下执行。
13.根据权利要求1所述的数据库再平衡方法,其中,
进一步包括由横向扩展而产生的新的DB节点被连接到所述贮存器系统中的步骤,
所述第一节点组由在所述贮存器系统的现有DB节点中再平衡优先级最高的DB节点和所述新的DB节点构成,
所述第二节点组由在所述贮存器系统的现有DB节点中再平衡优先级第二高的DB节点和所述新的DB节点构成。
14.根据权利要求1所述的数据库再平衡方法,其中,
在所述贮存器系统所包含的DB节点中不存在变动的情况下,所述第一节点组由在所述贮存器系统的现有DB节点中再平衡优先级最高的DB节点和从所述优先级最高的DB节点接收数据的DB节点构成,所述第二节点组由在所述贮存器系统的现有DB节点中再平衡优先级第二高的DB节点和从所述优先级第二高的DB节点接收数据的DB节点构成。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2016-0140885 | 2016-10-27 | ||
KR1020160140885A KR20180046078A (ko) | 2016-10-27 | 2016-10-27 | 데이터베이스 리밸런싱 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108009196A true CN108009196A (zh) | 2018-05-08 |
Family
ID=62021448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711000074.5A Pending CN108009196A (zh) | 2016-10-27 | 2017-10-24 | 数据库再平衡方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10664458B2 (zh) |
KR (1) | KR20180046078A (zh) |
CN (1) | CN108009196A (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10089307B2 (en) * | 2014-12-31 | 2018-10-02 | International Business Machines Corporation | Scalable distributed data store |
US11030169B1 (en) * | 2017-03-07 | 2021-06-08 | Amazon Technologies, Inc. | Data re-sharding |
KR102047233B1 (ko) * | 2018-10-22 | 2019-11-21 | 강릉원주대학교산학협력단 | 이중 부하 분산을 이용한 메타데이터 검색 시스템 및 이중 부하 분산을 통한 데이터베이스 관리 방법 |
KR102275389B1 (ko) * | 2019-10-22 | 2021-07-08 | 한국항공대학교산학협력단 | 블록 동기화 과정 생략 및 원격 저장소 제공을 위한 분산파일시스템 활용 블록 데이터 매핑 방법 및 노드 장치 |
US11372761B1 (en) * | 2020-12-11 | 2022-06-28 | International Business Machines Corporation | Dynamically adjusting partitioned SCM cache memory to maximize performance |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6070191A (en) * | 1997-10-17 | 2000-05-30 | Lucent Technologies Inc. | Data distribution techniques for load-balanced fault-tolerant web access |
JP4579000B2 (ja) * | 2005-02-14 | 2010-11-10 | 株式会社日立製作所 | 計算機システムにおけるデータ配置設定 |
US20080065704A1 (en) * | 2006-09-12 | 2008-03-13 | Microsoft Corporation | Data and replica placement using r-out-of-k hash functions |
US7886172B2 (en) * | 2007-08-27 | 2011-02-08 | International Business Machines Corporation | Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management |
US8365177B2 (en) * | 2009-01-20 | 2013-01-29 | Oracle International Corporation | Dynamically monitoring and rebalancing resource allocation of monitored processes based on execution rates of measuring processes at multiple priority levels |
US8156304B2 (en) * | 2009-12-04 | 2012-04-10 | Oracle International Corporation | Dynamic data storage repartitioning |
US8307014B2 (en) | 2010-08-25 | 2012-11-06 | International Business Machines Corporation | Database rebalancing in hybrid storage environment |
US8595192B1 (en) * | 2010-12-01 | 2013-11-26 | Symantec Corporation | Systems and methods for providing high availability to instance-bound databases |
JP5573737B2 (ja) * | 2011-03-17 | 2014-08-20 | 富士通株式会社 | 情報処理プログラム、情報処理装置、及び情報処理方法 |
US8799248B2 (en) * | 2011-04-26 | 2014-08-05 | Brian J. Bulkowski | Real-time transaction scheduling in a distributed database |
US9201742B2 (en) * | 2011-04-26 | 2015-12-01 | Brian J. Bulkowski | Method and system of self-managing nodes of a distributed database cluster with a consensus algorithm |
US20120290714A1 (en) * | 2011-05-13 | 2012-11-15 | Nokia Corporation | Method and apparatus for providing heuristic-based cluster management |
US10387448B2 (en) * | 2012-05-15 | 2019-08-20 | Splunk Inc. | Replication of summary data in a clustered computing environment |
US9053166B2 (en) * | 2012-12-10 | 2015-06-09 | Microsoft Technology Licensing, Llc | Dynamically varying the number of database replicas |
CA2867589A1 (en) * | 2013-10-15 | 2015-04-15 | Coho Data Inc. | Systems, methods and devices for implementing data management in a distributed data storage system |
JP6269140B2 (ja) * | 2014-02-14 | 2018-01-31 | 富士通株式会社 | アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置 |
US10455041B2 (en) * | 2014-02-20 | 2019-10-22 | Rovio Entertainment | Stateful service with partial replication |
US9378067B1 (en) * | 2014-05-08 | 2016-06-28 | Springpath, Inc. | Automated load balancing across the distributed system of hybrid storage and compute nodes |
US9906589B2 (en) * | 2014-11-14 | 2018-02-27 | Facebook, Inc. | Shared management service |
WO2016134035A1 (en) * | 2015-02-17 | 2016-08-25 | Coho Data, Inc. | Virtualized application-layer space for data processing in data storage systems |
US9848041B2 (en) * | 2015-05-01 | 2017-12-19 | Amazon Technologies, Inc. | Automatic scaling of resource instance groups within compute clusters |
US10291707B1 (en) * | 2015-05-18 | 2019-05-14 | Twitter, Inc. | Systems and methods for balancing storage resources in a distributed database |
-
2016
- 2016-10-27 KR KR1020160140885A patent/KR20180046078A/ko unknown
-
2017
- 2017-10-24 CN CN201711000074.5A patent/CN108009196A/zh active Pending
- 2017-10-26 US US15/794,997 patent/US10664458B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20180121474A1 (en) | 2018-05-03 |
KR20180046078A (ko) | 2018-05-08 |
US10664458B2 (en) | 2020-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108009196A (zh) | 数据库再平衡方法 | |
US20210149737A1 (en) | Method for fast scheduling for balanced resource allocation in distributed and collaborative container platform environment | |
Kalia et al. | Analysis of hadoop MapReduce scheduling in heterogeneous environment | |
Liu et al. | Using proactive fault-tolerance approach to enhance cloud service reliability | |
US6751616B1 (en) | Techniques for DLM optimization with re-mapping responsibility for lock management | |
CN103210374B (zh) | 基于实际负载和资源可用性的io资源动态创建和销毁 | |
US6920454B1 (en) | Techniques for DLM optimization with transferring lock information | |
CN102053982B (zh) | 一种数据库信息管理方法和设备 | |
US8359596B2 (en) | Determining capability of an information processing unit to execute the job request based on satisfying an index value and a content of processing of the job | |
US6529906B1 (en) | Techniques for DLM optimization with re-mastering events | |
CN104731528B (zh) | 一种云计算块存储服务的构建方法及系统 | |
CN103139302A (zh) | 考虑负载均衡的实时副本调度方法 | |
CN107734052A (zh) | 面向组件依赖的负载均衡容器调度方法 | |
CN105471985A (zh) | 负载均衡方法及云平台计算方法、云平台 | |
CN112817728B (zh) | 任务调度方法、网络设备和存储介质 | |
CN113821332B (zh) | 自动机器学习系统效能调优方法、装置、设备及介质 | |
Patni et al. | Load balancing strategies for grid computing | |
CN105975345A (zh) | 一种基于分布式内存的视频帧数据动态均衡存储管理方法 | |
US20220300323A1 (en) | Job Scheduling Method and Job Scheduling Apparatus | |
CN112487093A (zh) | 一种分布式数据库的去中心化副本控制方法 | |
CN110231977A (zh) | 数据库的处理方法、装置、存储介质及电子装置 | |
CN106502779B (zh) | 一种基于NoC多核同构系统的负载判断方法的任务迁移方法 | |
CN117033004B (zh) | 负载均衡方法、装置、电子设备及存储介质 | |
CN111124619A (zh) | 一种面向二次调度的容器调度方法 | |
JP2015513333A (ja) | マイグレーションによるデータベースの作業負荷バランシング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180508 |
|
WD01 | Invention patent application deemed withdrawn after publication |