CN110059080A - 一种数据处理的方法和装置 - Google Patents
一种数据处理的方法和装置 Download PDFInfo
- Publication number
- CN110059080A CN110059080A CN201910353821.6A CN201910353821A CN110059080A CN 110059080 A CN110059080 A CN 110059080A CN 201910353821 A CN201910353821 A CN 201910353821A CN 110059080 A CN110059080 A CN 110059080A
- Authority
- CN
- China
- Prior art keywords
- virtual
- data base
- token
- base example
- virtual data
- 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
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/211—Schema design and management
-
- 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
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
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)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据处理的方法和装置,该方法包括:获取数据库实例中虚拟数据库实例的初始个数;根据虚拟数据库实例的初始个数,配置虚拟数据库实例的目标个数,其中,虚拟数据库实例的初始个数等于2m个,m≥0,虚拟数据库实例的目标个数为初始个数的2n倍,n为正整数;根据虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系,虚拟令牌为0到2n‑1之间的整数,对应于每个虚拟数据库实例的虚拟令牌的个数相同;根据更新后的对应关系,基于虚拟令牌与表名之间的对应关系,迁移数据。本申请实施例提供的一种数据处理的方法和装置,能够将数据库实例扩容为多个虚拟数据库实例以实现数据库的集群功能。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据处理的方法和装置。
背景技术
已有的一些特定数据库,仅能够提供预定数量的数据库实例,不支持集群配置,例如开源的Influxdb数据库,Influxdb数据库是一种时间序列数据库,可以用来存储和时间相关的数据。但是,随着数据库应用需求的增大,面对巨大的读写压力,有需要利用预定数量的数据库实例实现集群功能。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
本申请实施例的目的是提供一种数据处理的方法和装置,能够将数据库实例扩容为多个虚拟数据库实例以实现数据库的集群功能。
为解决上述技术问题,本申请实施例是通过以下各方面实现的。
第一方面,本申请实施例提供了一种数据处理的方法,包括:获取数据库实例中虚拟数据库实例的初始个数;根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数,其中,所述虚拟数据库实例的初始个数等于2m个,m≥0,所述虚拟数据库实例的目标个数为所述初始个数的2n倍,n为正整数;根据所述虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系,所述虚拟令牌为0到2n-1之间的整数,对应于每个虚拟数据库实例的所述虚拟令牌的个数相同;以及根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据。
第二方面,本申请实施例提供了一种数据处理的装置,包括:获取模块,用于获取数据库实例中虚拟数据库实例的初始个数;配置模块,用于根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数,其中,所述虚拟数据库实例的初始个数等于2m个,m≥0,所述虚拟数据库实例的目标个数为所述初始个数的2n倍,n为正整数;更新模块,用于根据所述虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系,所述虚拟令牌为0到2n-1之间的整数,对应于每个虚拟数据库实例的所述虚拟令牌的个数相同;以及迁移模块,用于根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据。
第三方面,本申请实施例提供了一种电子设备,包括:存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现如上述第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令被处理器执行时实现如上述第一方面所述的方法的步骤。
在本申请实施例中,通过获取数据库实例中虚拟数据库实例的初始个数;根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数,其中,所述虚拟数据库实例的初始个数等于2m个,m≥0,所述虚拟数据库实例的目标个数为所述初始个数的2n倍,n为正整数;根据所述虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系,所述虚拟令牌为0到2n-1之间的整数,对应于每个虚拟数据库实例的所述虚拟令牌的个数相同;以及根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据,能够将数据库实例扩容为多个虚拟数据库实例以实现数据库的集群功能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出本申请实施例提供的一种数据处理的方法的一种流程示意图;
图2a示出扩容前虚拟数据库实例与虚拟令牌对应关系的示意图;
图2b示出扩容后虚拟数据库实例与虚拟令牌对应关系的示意图;
图3示出本申请实施例提供的一种数据处理的方法的另一种流程示意图;
图4示出本申请实施例提供的一种数据处理的方法的另一种流程示意图;
图5示出本申请实施例提供的一种数据处理的方法的另一种流程示意图;
图6示出本申请实施例提供的一种数据处理的方法的另一种流程示意图;
图7示出本申请实施例提供的一种数据处理的装置的结构示意图;
图8示出本申请实施例提供的一种数据处理的装置的另一结构示意图;
图9示出执行本申请实施例提供的一种数据处理的方法的电子设备的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
图1示出本申请实施例提供的一种数据处理的方法的一种流程示意图,该方法可以由电子设备执行,例如终端设备或服务端设备。换言之,所述方法可以由安装在终端设备或服务端设备的软件或硬件来执行。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。如图所示,该方法可以包括以下步骤。
S110:获取数据库实例中虚拟数据库实例的初始个数。
图2a示出扩容前虚拟数据库实例与虚拟令牌对应关系的示意图,如图所示,数据库实例20中可以包含一个或多个虚拟数据库实例21和22,虚拟数据库实例的初始个数为2m个,m≥0,即初始个数可以为1,2,4,8......以此类推,图中以虚拟数据库实例的初始个数为2,即图中的虚拟数据库实例21和22进行说明。
S120:根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数。
其中,虚拟数据库实例的扩容的目标个数为初始个数的2n倍,n为正整数。例如目标个数可以是初始个数的2倍、4倍或8倍等,例如,当初始个数是1个时,目标个数可以是2个、4个或8个。
图2b示出扩容后虚拟数据库实例与虚拟令牌对应关系的示意图,如图所示,根据虚拟数据库实例的初始个数2(结合图2a),配置虚拟数据库实例的扩容的目标个数4,即图中的虚拟数据库实例21、22、23、24,其中目标个数4是初始个数2的2倍。
S130:根据所述虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系。
虚拟令牌为0到2n-1之间的整数,对应于每个虚拟数据库实例的虚拟令牌的个数相同。虚拟令牌为0到2n-1之间的整数,即虚拟令牌的个数为2n个,因此,本申请实施例中的虚拟令牌能够被平均分配给2n个虚拟数据库实例,无论扩容前还是扩容后对应于每个虚拟数据库实例的虚拟令牌的个数均相同。
例如,当n=4时,虚拟令牌为0,1,2,3,…14,15,共16个。如果虚拟数据库实例的个数为2个,则对应于每个虚拟数据库实例的虚拟令牌的个数为8个(结合图2a所示),如果虚拟数据库实例的个数为4个,则对应于每个虚拟数据库实例的虚拟令牌的个数为4个(结合图2b所示)。由此,在扩容前和扩容后均能够保证每个虚拟数据库实例对应的虚拟令牌个数相同。
S140:根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据。
表名与虚拟令牌之间存在对应关系,例如:表名“table1”对应虚拟令牌“4”,结合图2b所示,根据更新后的虚拟令牌与虚拟数据库实例之间的对应关系,虚拟令牌“4”与虚拟数据库实例21对应,则将表名为“table1”的表中的数据迁移到虚拟数据库实例21中。
一个表名对应于一个虚拟令牌,虚拟令牌能够被平均分配给2n个虚拟数据库实例,由此,与表名对应的数据能够被均衡的存储于多个虚拟数据库实例中,由此实现负载均衡的效果。并且当虚拟数据库实例的个数扩容为之前的2倍时,迁移当前虚拟数据库实例中1/2的数据,虚拟数据库实例的个数扩容为之前的2n倍时,迁移当前虚拟数据库实例中(1-1/2n)的数据,能够在扩容时减少数据迁移量,提高数据库扩容的效率。
由此,本申请实施例提供的一种数据处理的方法,通过获取数据库实例中虚拟数据库实例的初始个数;根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数,其中,所述虚拟数据库实例的初始个数等于2m个,m≥0,所述虚拟数据库实例的目标个数为所述初始个数的2n倍,n为正整数;根据所述虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系,所述虚拟令牌为0到2n-1之间的整数,对应于每个虚拟数据库实例的所述虚拟令牌的个数相同;以及根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据,能够将数据库实例中划分为多个虚拟数据库实例,在对该虚拟数据库实例进行扩容处理时使数据能够均衡地存储于扩容后的多个虚拟数据库实例中以在扩容的同时实现负载均衡的效果,并且减少扩容过程中的数据迁移量提高扩容效率。
图3示出本申请实施例提供的一种数据处理的方法的另一种流程示意图,该方法可以由电子设备执行,例如终端设备或服务端设备。换言之,所述方法可以由安装在终端设备或服务端设备的软件或硬件来执行。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。如图所示,该方法可以包括以下步骤。
S310:获取数据库实例中虚拟数据库实例的初始个数。
图2a示出扩容前虚拟数据库实例与虚拟令牌对应关系的示意图,如图所示,数据库实例20中可以包含一个或多个虚拟数据库实例21和22,虚拟数据库实例的初始个数为2m个,m≥0,即初始个数可以为1,2,4,8......以此类推,图中以虚拟数据库实例的初始个数为2,即图中的虚拟数据库实例21和22进行说明。
S320:根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数。
其中,虚拟数据库实例的扩容的目标个数为初始个数的2n倍,n为正整数。例如目标个数可以是初始个数的2倍、4倍或8倍等,例如,当初始个数是1个时,目标个数可以是2个、4个或8个。
图2b示出扩容后虚拟数据库实例与虚拟令牌对应关系的示意图,如图所示,根据虚拟数据库实例的初始个数2(结合图2a),配置虚拟数据库实例的扩容的目标个数4,即图中的虚拟数据库实例21、22、23、24,其中目标个数4是初始个数2的2倍。
S330:根据所述虚拟数据库实例的目标个数,将取值相邻的所述虚拟令牌对应于不同的虚拟数据库实例。
虚拟令牌为0到2n-1之间的整数,例如,当n=4时,虚拟令牌为0,1,2,3,…14,15,共16个。对应于每个虚拟数据库实例的虚拟令牌的个数相同。虚拟令牌为0到2n-1之间的整数,即虚拟令牌的个数为2n个,因此,本申请实施例中的虚拟令牌能够被平均分配给2n个虚拟数据库实例,即对应于每个虚拟数据库实例的虚拟令牌的个数相同。
结合图2a所示,虚拟令牌“0”与虚拟数据库实例21对应,虚拟令牌“1”与虚拟数据库实例22对应,虚拟令牌“2”与数据库实例21对应,虚拟令牌“3”与虚拟数据库实例22对应…以此类推,即取值相邻的虚拟令牌对应于不同的虚拟数据库实例。通过将取值相邻的所述虚拟令牌对应于不同的虚拟数据库实例的方式,将虚拟令牌0,1,2,3,…14,15平均分配到了2个扩容前虚拟数据库实例中。
如图2b示出扩容前虚拟数据库实例的示意图,虚拟令牌“0”与虚拟数据库实例21对应,虚拟令牌“1”与虚拟数据库实例22对应,虚拟令牌“2”与数据库实例23对应,虚拟令牌“3”与虚拟数据库实例24对应,虚拟令牌“4”与虚拟数据库实例21对应,虚拟令牌“5”与虚拟数据库实例22对应,虚拟令牌“6”与数据库实例23对应,虚拟令牌“7”与虚拟数据库实例24对应…以此类推,即取值相邻的虚拟令牌对应于不同的虚拟数据库实例。通过将取值相邻的所述虚拟令牌对应于不同的虚拟数据库实例的方式,将虚拟令牌0,1,2,3,…14,15自动地平均分配到了4个扩容后的虚拟数据库实例中。
S340:根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据。
表名与虚拟令牌之间存在对应关系,例如:如果表名“table1”对应虚拟令牌“4”,结合图2b所示,根据更新后的虚拟令牌与虚拟数据库实例之间的对应关系,虚拟令牌“4”与虚拟数据库实例21对应,则将表名为“table1”的表中的数据迁移到虚拟数据库实例21中。
一个表名对应于一个虚拟令牌,虚拟令牌能够被平均分配给2n个虚拟数据库实例,由此,与表名对应的数据能够被均衡的存储于多个虚拟数据库实例中,由此实现负载均衡的效果。并且当虚拟数据库实例的个数扩容为之前的2倍时,迁移当前虚拟数据库实例中1/2的数据,虚拟数据库实例的个数扩容为之前的2n倍时,迁移当前虚拟数据库实例中(1-1/2n)的数据,能够在扩容时减少数据迁移量,提高数据库扩容的效率。
由此,本申请实施例提供的一种数据处理的方法,通过获取数据库实例中虚拟数据库实例的初始个数;根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数,其中,所述虚拟数据库实例的初始个数等于2m个,m≥0,所述虚拟数据库实例的目标个数为所述初始个数的2n倍,n为正整数;根据所述虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系,所述虚拟令牌为0到2n-1之间的整数,对应于每个虚拟数据库实例的所述虚拟令牌的个数相同;以及根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据,能够将数据库实例中划分为多个虚拟数据库实例,在对该虚拟数据库实例进行扩容处理时使数据能够均衡地存储于扩容后的多个虚拟数据库实例中以在扩容的同时实现负载均衡的效果,并且减少扩容过程中的数据迁移量提高扩容效率。
此外,本申请实施例提供的一种数据处理的方法,通过在更新虚拟令牌与虚拟数据库实例之间的对应关系时,使取值相邻的所述虚拟令牌对应于不同的虚拟数据库实例,能够使虚拟令牌被自动地平均分配给2n个虚拟数据库实例,在扩容过程中自动地实现了负载均衡的效果。
图4示出本申请实施例提供的一种数据处理的方法的另一种流程示意图,该方法可以由电子设备执行,例如终端设备或服务端设备。换言之,所述方法可以由安装在终端设备或服务端设备的软件或硬件来执行。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。如图所示,该方法可以包括以下步骤。
S410:获取数据库实例中虚拟数据库实例的初始个数。
图2a示出扩容前虚拟数据库实例与虚拟令牌对应关系的示意图,如图所示,数据库实例20中可以包含一个或多个虚拟数据库实例21和22,虚拟数据库实例的初始个数为2m个,m≥0,即初始个数可以为1,2,4,8......以此类推,图中以虚拟数据库实例的初始个数为2,即图中的虚拟数据库实例21和22进行说明。
S420:根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数。
其中,虚拟数据库实例的扩容的目标个数为初始个数的2n倍,n为正整数。例如目标个数可以是初始个数的2倍、4倍或8倍等,例如,当初始个数是1个时,目标个数可以是2个、4个或8个。
图2b示出扩容后虚拟数据库实例与虚拟令牌对应关系的示意图,如图所示,根据虚拟数据库实例的初始个数2(结合图2a),配置虚拟数据库实例的扩容的目标个数4,即图中的虚拟数据库实例21、22、23、24,其中目标个数4是初始个数2的2倍。
S431:根据所述虚拟令牌的取值大小,对所述虚拟令牌进行分组。
虚拟令牌为0到2n-1之间的整数,例如,当n=4时,虚拟令牌为0,1,2,3,…14,15,共16个。对应于每个虚拟数据库实例的虚拟令牌的个数相同。虚拟令牌为0到2n-1之间的整数,即虚拟令牌的个数为2n个,因此,本申请实施例中的虚拟令牌能够被平均分配给2n个虚拟数据库实例,即对应于每个虚拟数据库实例的虚拟令牌的个数相同。
结合图2b所示,虚拟数据库实例的扩容的目标个数为4,根据虚拟令牌的取值大小,将虚拟令牌0,1,2,3,…14,15进行分组。一个分组中的虚拟令牌个数与虚拟数据库实例的目标个数相同,例如,0,1,2,3为第一组,4,5,6,7为第二组,8,9,10,11为第三组,12,13,14,15为第四组。
S432:将所述虚拟令牌与虚拟数据库实例之间的对应关系更新为一个所述分组中的各虚拟令牌依次对应于不同的虚拟数据库实例。
结合图2b所示,将上述第一组中的虚拟令牌“0”与虚拟数据库实例21对应,将第一组中的虚拟令牌“1”与虚拟数据库实例22对应,第一组中的虚拟令牌“2”与虚拟数据库实例23对应,第一组中的虚拟令牌“3”与虚拟数据库实例24对应,即一个分组中的各虚拟令牌依次对应于不同的虚拟数据库实例。
以此类推,最终使虚拟令牌“0”、“4”、“8”、“12”与数据库实例21对应,使虚拟令牌“1”、“5”、“9”、“13”与虚拟数据库实例22对应,使虚拟令牌“2”、“6”、“10”、“14”与虚拟数据库实例23对应,使虚拟令牌“3”、“7”、“11”、“15”与数据库实例21对应。
由于在对虚拟令牌进行分组时,是根据虚拟令牌的取值大小,按照每组中虚拟令牌个数与目标个数相同的规则,将虚拟令牌进行分组,并且,一个分组中的各虚拟令牌依次对应于不同的虚拟数据库实例,通过该方式自动地将虚拟令牌被平均分配给2n个虚拟数据库实例,进一步实现了负载均衡的效果。
S440:根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据。
表名与虚拟令牌之间存在对应关系,例如:表名“table1”对应虚拟令牌“4”,结合图2b所示,根据更新后的虚拟令牌与虚拟数据库实例之间的对应关系,虚拟令牌“4”与虚拟数据库实例21对应,则将表名为“table1”的表中的数据迁移到虚拟数据库实例21中。
一个表名对应于一个虚拟令牌,虚拟令牌能够被平均分配给2n个虚拟数据库实例,由此,与表名对应的数据能够被均衡的存储于多个虚拟数据库实例中,由此实现负载均衡的效果。并且当虚拟数据库实例的个数扩容为之前的2倍时,迁移当前虚拟数据库实例中1/2的数据,虚拟数据库实例的个数扩容为之前的2n倍时,迁移当前虚拟数据库实例中(1-1/2n)的数据,能够在扩容时减少数据迁移量,提高数据库扩容的效率。
由此,本申请实施例提供的一种数据处理的方法,通过获取数据库实例中虚拟数据库实例的初始个数;根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数,其中,所述虚拟数据库实例的初始个数等于2m个,m≥0,所述虚拟数据库实例的目标个数为所述初始个数的2n倍,n为正整数;根据所述虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系,所述虚拟令牌为0到2n-1之间的整数,对应于每个虚拟数据库实例的所述虚拟令牌的个数相同;以及根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据,能够将数据库实例中划分为多个虚拟数据库实例,在对该虚拟数据库实例进行扩容处理时使数据能够均衡地存储于扩容后的多个虚拟数据库实例中以在扩容的同时实现负载均衡的效果,并且减少扩容过程中的数据迁移量提高扩容效率。
此外,本申请实施例提供的一种数据处理的方法,通过根据所述虚拟令牌的取值大小,对所述虚拟令牌进行分组,其中,一个分组中的所述虚拟令牌个数与所述虚拟数据库实例的目标个数相同,将所述虚拟令牌与虚拟数据库实例之间的对应关系更新为一个所述分组中的各虚拟令牌依次对应于不同的虚拟数据库实例,能够自动地将虚拟令牌平均分配给2n个虚拟数据库实例,自动地实现了负载均衡的效果。
图5示出本申请实施例提供的一种数据处理的方法的一种流程示意图,该方法可以由电子设备执行,例如终端设备或服务端设备。换言之,所述方法可以由安装在终端设备或服务端设备的软件或硬件来执行。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。如图所示,该方法可以包括以下步骤。
S510:获取数据库实例中虚拟数据库实例的初始个数。
虚拟数据库实例的初始个数为2m个,m≥0,即初始个数可以为1,2,4,8......以此类推。
S520:根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数。
其中,虚拟数据库实例的扩容的目标个数为初始个数的2n倍,n为正整数。例如目标个数可以是初始个数的2倍、4倍或8倍等,例如,当初始个数是1个时,目标个数可以是2个、4个或8个。
S530:根据所述虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系。
虚拟令牌为0到2n-1之间的整数,对应于每个虚拟数据库实例的虚拟令牌的个数相同。虚拟令牌为0到2n-1之间的整数,即虚拟令牌的个数为2n个,因此,本申请实施例中的虚拟令牌能够被平均分配给2n个虚拟数据库实例,无论扩容前还是扩容后对应于每个虚拟数据库实例的虚拟令牌的个数均相同。
S540:根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据。
一个表名对应于一个虚拟令牌,虚拟令牌能够被平均分配给2n个虚拟数据库实例,由此,与表名对应的数据能够被均衡的存储于多个虚拟数据库实例中,由此在扩容过程中实现负载均衡的效果。并且当虚拟数据库实例的个数扩容为之前的2倍时,迁移当前虚拟数据库实例中1/2的数据,虚拟数据库实例的个数扩容为之前的2n倍时,迁移当前虚拟数据库实例中(1-1/2n)的数据,能够在扩容时减少数据迁移量,提高数据库扩容的效率。
由此,本申请实施例提供的一种数据处理的方法,通过以上步骤能够将数据库实例中划分为多个虚拟数据库实例,并且在对该虚拟数据库实例进行扩容过程中(包括扩容前和扩容后)均使数据能够均衡地存储于多个虚拟数据库实例中,实现负载均衡的效果。
在此基础上,本申请实施例提供的一种数据处理的方法,还能够实现各种数据处理功能,具体包括以下步骤。以下步骤可以在扩容前、扩容后和扩容过程中完成,本申请实施例以在步骤S530之后执行以下步骤为例进行说明,但本领域技术人员应当知晓本申请的保护范围并不以此为限。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
S551:接收数据处理请求。
其中,数据处理请求中包含待处理的表名。
S552:对所述待处理的表名进行一致性哈希运算获得待处理的虚拟令牌。
在一种可能的实现方式中,虚拟令牌为0到15之间的整数,即2n-1=15,此时2n=16,对待处理的表名进行一致性哈希运算,对16取模,必然得到0到15之间的整数,例如将待处理的表名“table1”对16取模,得到“2”,“2”即为与待处理的表名“table1”对应的待处理的虚拟令牌。
本步骤采用一致性哈希运算,与普通哈希运算相比,表名在哈希环上的映射位置不变,与虚拟令牌的对应关系不变,避免了数据量激增时,映射关系改变造成大量数据迁移,进而导致系统崩溃的问题。
S553:根据更新后的所述对应关系,确定与所述待处理的虚拟令牌对应的更新虚拟数据库实例。
例如,结合图2b可以确定与待处理的虚拟令牌“2”对应的更新虚拟数据库实例为虚拟数据库实例23。
S554:对所述更新虚拟数据库实例中的对应数据进行数据处理。
在虚拟数据库实例23中的对应数据进行数据处理,例如,该数据处理可以为写处理,即在扩容后的虚拟数据库实例中执行写入。
并且,在一种可能的实现方式中,在所述更新虚拟数据库实例处于不可写状态的情况下,可以将所述写处理请求写入磁盘队列,待虚拟数据库实例可写时再从磁盘队列中读取该写处理请求,并执行。
由此,本申请实施例提供的一种数据处理的方法,通过接收数据处理请求,其中,所述数据处理请求中包含待处理的表名;对所述待处理的表名进行一致性哈希运算获得待处理的虚拟令牌;根据更新后的所述对应关系,确定与所述待处理的虚拟令牌对应的更新虚拟数据库实例;对所述更新虚拟数据库实例中的对应数据进行数据处理,能够在更新虚拟令牌与虚拟数据库实例之间的对应关系之后,无需等待数据迁移完成即可执行数据处理,提高数据处理的效率。
在一种可能的实现方式中,步骤S551中接收的数据处理请求中还包含待处理的库名,根据所述待处理的库名,从多个虚拟数据库实例中确定至少一个备选虚拟数据库实例。
当存在多个数据库实例时,根据待处理的库名可以从多个数据库实例中确定库名对应的数据库实例,而每个数据库实例中包含多个虚拟数据库实例,作为备选虚拟数据库实例。并且步骤S553可以包括:根据更新后的所述对应关系,从所述至少一个备选虚拟数据库实例中确定与所述待处理的虚拟令牌对应的更新虚拟数据库实例。
由此,本申请实施例提供的一种数据处理的方法,通过获取数据库实例中虚拟数据库实例的初始个数;根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数,其中,所述虚拟数据库实例的初始个数等于2m个,m≥0,所述虚拟数据库实例的目标个数为所述初始个数的2n倍,n为正整数;根据所述虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系,所述虚拟令牌为0到2n-1之间的整数,对应于每个虚拟数据库实例的所述虚拟令牌的个数相同;以及根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据,能够将数据库实例中划分为多个虚拟数据库实例,在对该虚拟数据库实例进行扩容处理时使数据能够均衡地存储于扩容后的多个虚拟数据库实例中以在扩容的同时实现负载均衡的效果,并且减少扩容过程中的数据迁移量提高扩容效率。
此外,本申请实施例提供的一种数据处理的方法,通过在更新虚拟令牌与虚拟数据库实例之间的对应关系之后,接收数据处理请求,其中,所述数据处理请求中包含待处理的表名;对所述待处理的表名进行一致性哈希运算获得待处理的虚拟令牌;根据更新后的所述对应关系,确定与所述待处理的虚拟令牌对应的更新虚拟数据库实例;对所述更新虚拟数据库实例中的对应数据进行数据处理,将表名通过一致性哈希运算与虚拟令牌对应,能够在扩容过程中执行数据处理,提高数据处理的效率。
此外,本申请实施例提供的一种数据处理的方法,通过在所述更新虚拟数据库实例处于不可写状态的情况下,将所述写处理请求写入磁盘队列,能够解决在虚拟数据库实例处于不可写状态时造成数据堆积的问题。
此外,本申请实施例提供的一种数据处理的方法,通过在对所述待处理的表名进行一致性哈希运算获得待处理的虚拟令牌之前,根据所述待处理的库名,从多个虚拟数据库实例中确定至少一个备选虚拟数据库实例;根据更新后的所述对应关系,从所述至少一个备选虚拟数据库实例中确定与所述待处理的虚拟令牌对应的更新虚拟数据库实例,能够实现数据库实例的配置对客户端隐藏,客户端只需要提供待处理的库名和表名,即可完成在库名对应的数据库实例中的数据处理,无需分配由数据库实例中的具体某个虚拟数据库实例进行数据处理,有效提高了数据处理效率。
图6示出本申请实施例提供的一种数据处理的方法的一种流程示意图,该方法可以由电子设备执行,例如终端设备或服务端设备。换言之,所述方法可以由安装在终端设备或服务端设备的软件或硬件来执行。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。如图所示,该方法可以包括以下步骤。
S610:获取数据库实例中虚拟数据库实例的初始个数。
虚拟数据库实例的初始个数为2m个,m≥0,即初始个数可以为1,2,4,8......以此类推。
S620:根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数。
其中,虚拟数据库实例的扩容的目标个数为初始个数的2n倍,n为正整数。例如目标个数可以是初始个数的2倍、4倍或8倍等,例如,当初始个数是1个时,目标个数可以是2个、4个或8个。
S630:根据所述虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系。
虚拟令牌为0到2n-1之间的整数,对应于每个虚拟数据库实例的虚拟令牌的个数相同。虚拟令牌为0到2n-1之间的整数,即虚拟令牌的个数为2n个,因此,本申请实施例中的虚拟令牌能够被平均分配给2n个虚拟数据库实例,无论扩容前还是扩容后对应于每个虚拟数据库实例的虚拟令牌的个数均相同。
S640:根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据。
一个表名对应于一个虚拟令牌,虚拟令牌能够被平均分配给2n个虚拟数据库实例,由此,与表名对应的数据能够被均衡的存储于多个虚拟数据库实例中,由此在扩容过程中实现负载均衡的效果。并且当虚拟数据库实例的个数扩容为之前的2倍时,迁移当前虚拟数据库实例中1/2的数据,虚拟数据库实例的个数扩容为之前的2n倍时,迁移当前虚拟数据库实例中(1-1/2n)的数据,能够在扩容时减少数据迁移量,提高数据库扩容的效率。
由此,本申请实施例提供的一种数据处理的方法,通过以上步骤能够将数据库实例中划分为多个虚拟数据库实例,并且在对该虚拟数据库实例进行扩容过程中(包括扩容前和扩容后)均使数据能够均衡地存储于多个虚拟数据库实例中,实现负载均衡的效果。
在此基础上,本申请实施例提供的一种数据处理的方法,还能够实现各种数据处理功能,具体包括以下步骤。以下步骤可以在扩容前、扩容后和扩容过程中完成,本申请实施例以在步骤S630之后执行以下步骤为例进行说明,但本领域技术人员应当知晓本申请的保护范围并不以此为限。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在一种可能的实现方式中,本申请实施例提供的一种数据处理的方法能够实现查询操作。如果查询操作发生在扩容前,则基于更新前的虚拟令牌与虚拟数据库实例之间的对应关系执行查询;如果查询操作发生在扩容后,则基于更新后的虚拟令牌与虚拟数据库实例之间的对应关系执行查询。如果查询操作发生在扩容时,则执行以下步骤。
S651:接收数据处理请求。
该数据处理请求包括查询请求。其中,数据处理请求中包含待处理的表名。
S652:对所述待处理的表名进行一致性哈希运算获得待处理的虚拟令牌。
在一种可能的实现方式中,虚拟令牌为0到15之间的整数,即2n-1=15,此时2n=16,对待处理的表名进行一致性哈希运算,对16取模,必然得到0到15之间的整数,例如将待处理的表名“table1”对16取模,得到“2”,“2”即为与待处理的表名“table1”对应的待处理的虚拟令牌。
本步骤采用一致性哈希运算,与普通哈希运算相比,表名在哈希环上的映射位置不变,与虚拟令牌的对应关系不变,避免了数据量激增时,映射关系改变造成大量数据迁移,进而导致系统崩溃的问题。
S653:根据更新后的所述对应关系,确定与所述待处理的虚拟令牌对应的更新虚拟数据库实例。
例如,结合图2b可以确定与待处理的虚拟令牌“2”对应的更新虚拟数据库实例为虚拟数据库实例23。
S654:根据更新前的虚拟令牌与虚拟数据库实例之间的对应关系,确定与所述待处理的虚拟令牌对应的初始虚拟数据库实例。
以图2a为例进行说明,根据更新前的对应关系,可以确定与待处理的虚拟令牌“2”对应的更新虚拟数据库实例为数据库实例21。
S655:在所述更新虚拟数据库实例中和所述初始虚拟数据库实例中分别处理所述查询请求。
以图2b为例进行说明,在本步骤前的步骤S653中,可以根据更新后的对应关系,确定与待处理的虚拟令牌“2”对应的更新虚拟数据库实例为虚拟数据库实例23。在本步骤中在虚拟数据库实例23中和虚拟数据库实例21中分别处理查询请求。由此避免数据迁移完成前,在扩容后的虚拟数据库实例中中无法查询到对应数据的问题,提高数据查询的准确度和效率。
由此,本申请实施例提供的一种数据处理的方法,通过根据更新前的虚拟令牌与虚拟数据库实例之间的对应关系,确定与所述待处理的虚拟令牌对应的初始虚拟数据库实例;在所述更新虚拟数据库实例中和所述初始虚拟数据库实例中分别处理所述查询请求,能够在扩容过程中准确高效地执行查询操作。
由此,本申请实施例提供的一种数据处理的方法,通过获取数据库实例中虚拟数据库实例的初始个数;根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数,其中,所述虚拟数据库实例的初始个数等于2m个,m≥0,所述虚拟数据库实例的目标个数为所述初始个数的2n倍,n为正整数;根据所述虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系,所述虚拟令牌为0到2n-1之间的整数,对应于每个虚拟数据库实例的所述虚拟令牌的个数相同;以及根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据,能够将数据库实例中划分为多个虚拟数据库实例,在对该虚拟数据库实例进行扩容处理时使数据能够均衡地存储于扩容后的多个虚拟数据库实例中以在扩容的同时实现负载均衡的效果,并且减少扩容过程中的数据迁移量提高扩容效率。
此外,本申请实施例提供的一种数据处理的方法,通过在根据更新后的所述对应关系,确定与所述待处理的虚拟令牌对应的更新虚拟数据库实例之后,根据更新前的虚拟令牌与虚拟数据库实例之间的对应关系,确定与所述待处理的虚拟令牌对应的初始虚拟数据库实例;在所述更新虚拟数据库实例中和所述初始虚拟数据库实例中分别处理所述查询请求,能够在数据库实例处于扩容状态时,在初始虚拟数据库实例和更新虚拟数据库实例中分别进行数据查询,能够在数据扩容的过程中实现数据查询,提高数据处理的效率。
图7示出本申请实施例提供的一种数据处理的装置的结构示意图,该装置700包括:获取模块710、配置模块720、更新模块730和迁移模块740。
获取模块710,用于获取数据库实例中虚拟数据库实例的初始个数。配置模块720,用于根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数,其中,所述虚拟数据库实例的初始个数等于2m个,m≥0,所述虚拟数据库实例的目标个数为所述初始个数的2n倍,n为正整数。更新模块730,用于根据所述虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系,所述虚拟令牌为0到2n-1之间的整数,对应于每个虚拟数据库实例的所述虚拟令牌的个数相同。迁移模块740,用于根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据。
在一种可能的实现方式中,更新模块730用于将取值相邻的所述虚拟令牌对应于不同的虚拟数据库实例。
在一种可能的实现方式中,更新模块730用于根据所述虚拟令牌的取值大小,对所述虚拟令牌进行分组,其中,一个分组中的所述虚拟令牌个数与所述虚拟数据库实例的目标个数相同;将所述虚拟令牌与虚拟数据库实例之间的对应关系更新为一个所述分组中的各虚拟令牌依次对应于不同的虚拟数据库实例。
本申请实施例提供的该装置700,可执行前文方法实施例中所述的各方法,并实现前文方法实施例中所述的各方法的功能和有益效果,在此不再赘述。
图8示出本申请实施例提供的一种数据处理的装置的另一结构示意图,该装置800包括:获取模块810、配置模块820、更新模块830、迁移模块840、接收模块850、运算模块860、确定模块870、处理模块880。
获取模块810,用于获取数据库实例中虚拟数据库实例的初始个数。配置模块820,用于根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数,其中,所述虚拟数据库实例的初始个数等于2m个,m≥0,所述虚拟数据库实例的目标个数为所述初始个数的2n倍,n为正整数。更新模块830,用于根据所述虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系,所述虚拟令牌为0到2n-1之间的整数,对应于每个虚拟数据库实例的所述虚拟令牌的个数相同。迁移模块840,用于根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据。接收模块850,用于在更新虚拟令牌与虚拟数据库实例之间的对应关系之后,接收数据处理请求,其中,所述数据处理请求中包含待处理的表名。运算模块860,用于对所述待处理的表名进行一致性哈希运算获得待处理的虚拟令牌。确定模块870,用于根据更新后的所述对应关系,确定与所述待处理的虚拟令牌对应的更新虚拟数据库实例。处理模块880,用于对所述更新虚拟数据库实例中的对应数据进行数据处理。
在一种可能的实现方式中,确定模块870还用于:在根据更新后的所述对应关系,确定与所述待处理的虚拟令牌对应的更新虚拟数据库实例之后根据更新前的虚拟令牌与虚拟数据库实例之间的对应关系,确定与所述待处理的虚拟令牌对应的初始虚拟数据库实例。处理模块880用于在所述更新虚拟数据库实例中和所述初始虚拟数据库实例中分别处理所述查询请求。
在一种可能的实现方式中,处理模块880接收的所述数据处理请求包括写处理请求,处理模块880用于在所述更新虚拟数据库实例处于不可写状态的情况下,将所述写处理请求写入磁盘队列。
在一种可能的实现方式中,运算模块860还用于:在对所述待处理的表名进行一致性哈希运算获得待处理的虚拟令牌之前,根据所述待处理的库名,从多个虚拟数据库实例中确定至少一个备选虚拟数据库实例。确定模块870用于根据更新后的所述对应关系,从所述至少一个备选虚拟数据库实例中确定与所述待处理的虚拟令牌对应的更新虚拟数据库实例。
本申请实施例提供的该装置800,可执行前文方法实施例中所述的各方法,并实现前文方法实施例中所述的各方法的功能和有益效果,在此不再赘述。
图9示出执行本申请实施例提供的一种生成地图的方法的电子设备的硬件结构示意图,如图所示,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器901和存储器902,存储器902中可以存储有一个或一个以上存储应用程序或数据。其中,存储器902可以是短暂存储或持久存储。存储在存储器902的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对该电子设备中的一系列计算机可执行指令。更进一步地,处理器901可以设置为与存储器902通信,在该电子设备上执行存储器902中的一系列计算机可执行指令。该电子设备还可以包括一个或一个以上电源903,一个或一个以上有线或无线网络接口904,一个或一个以上输入输出接口905,一个或一个以上键盘906等。
在一个具体的实施例中,该电子设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现以下流程:获取数据库实例中虚拟数据库实例的初始个数;根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数,其中,所述虚拟数据库实例的初始个数等于2m个,m≥0,所述虚拟数据库实例的目标个数为所述初始个数的2n倍,n为正整数;根据所述虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系,所述虚拟令牌为0到2n-1之间的整数,对应于每个虚拟数据库实例的所述虚拟令牌的个数相同;以及根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据。
由此,执行本申请实施例提供的一种数据处理的方法的电子设备可执行前文方法实施例中所述的各方法,并实现前文方法实施例中所述的各方法的功能和有益效果,在此不再赘述。
本申请实施例的电子设备以多种形式存在,包括但不限于以下设备。
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(4)其他具有数据交互功能的电子装置。
进一步地,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令被处理器执行时实现以下流程:获取数据库实例中虚拟数据库实例的初始个数;根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数,其中,所述虚拟数据库实例的初始个数等于2m个,m≥0,所述虚拟数据库实例的目标个数为所述初始个数的2n倍,n为正整数;根据所述虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系,所述虚拟令牌为0到2n-1之间的整数,对应于每个虚拟数据库实例的所述虚拟令牌的个数相同;以及根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据。
由此,所述计算机可执行指令被处理器执行时能够执行前文方法实施例中所述的各方法,并实现前文方法实施例中所述的各方法的功能和有益效果,在此不再赘述。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种数据处理的方法,其特征在于,包括:
获取数据库实例中虚拟数据库实例的初始个数;
根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数;其中,所述虚拟数据库实例的初始个数等于2m个,m≥0,所述虚拟数据库实例的目标个数为所述初始个数的2n倍,n为正整数;
根据所述虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系,所述虚拟令牌为0到2n-1之间的整数,对应于每个虚拟数据库实例的所述虚拟令牌的个数相同;以及
根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据。
2.根据权利要求1所述的方法,其特征在于,所述更新虚拟令牌与虚拟数据库实例之间的对应关系,包括:
将取值相邻的所述虚拟令牌对应于不同的虚拟数据库实例。
3.根据权利要求1所述的方法,其特征在于,所述更新虚拟令牌与虚拟数据库实例之间的对应关系,包括:
根据所述虚拟令牌的取值大小,对所述虚拟令牌进行分组,其中,一个分组中的所述虚拟令牌个数与所述虚拟数据库实例的目标个数相同;
将所述虚拟令牌与虚拟数据库实例之间的对应关系更新为一个所述分组中的各虚拟令牌依次对应于不同的虚拟数据库实例。
4.根据权利要求1所述的方法,其特征在于,在更新虚拟令牌与虚拟数据库实例之间的对应关系之后,所述方法还包括:
接收数据处理请求,其中,所述数据处理请求中包含待处理的表名;
对所述待处理的表名进行一致性哈希运算获得待处理的虚拟令牌;
根据更新后的所述对应关系,确定与所述待处理的虚拟令牌对应的更新虚拟数据库实例;
对所述更新虚拟数据库实例中的对应数据进行数据处理。
5.根据权利要求4所述的方法,其特征在于,所述数据处理请求包括查询请求,在根据更新后的所述对应关系,确定与所述待处理的虚拟令牌对应的更新虚拟数据库实例之后,还包括:
根据更新前的虚拟令牌与虚拟数据库实例之间的对应关系,确定与所述待处理的虚拟令牌对应的初始虚拟数据库实例;
对所述更新虚拟数据库实例中的对应数据进行数据处理,包括:
在所述更新虚拟数据库实例中和所述初始虚拟数据库实例中分别处理所述查询请求。
6.根据权利要求4所述的方法,其特征在于,所述数据处理请求包括写处理请求,对所述更新虚拟数据库实例中的对应数据进行数据处理包括:
在所述更新虚拟数据库实例处于不可写状态的情况下,将所述写处理请求写入磁盘队列。
7.根据权利要求4所述的方法,其特征在于,所述数据处理请求中还包含待处理的库名,在对所述待处理的表名进行一致性哈希运算获得待处理的虚拟令牌之前,还包括:
根据所述待处理的库名,从多个虚拟数据库实例中确定至少一个备选虚拟数据库实例;
根据更新后的所述对应关系,确定与所述待处理的虚拟令牌对应的更新虚拟数据库实例,包括:
根据更新后的所述对应关系,从所述至少一个备选虚拟数据库实例中确定与所述待处理的虚拟令牌对应的更新虚拟数据库实例。
8.一种数据处理的装置,其特征在于,包括:
获取模块,用于获取数据库实例中虚拟数据库实例的初始个数;
配置模块,用于根据所述虚拟数据库实例的初始个数,配置所述虚拟数据库实例的目标个数,其中,所述虚拟数据库实例的初始个数等于2m个,m≥0,所述虚拟数据库实例的目标个数为所述初始个数的2n倍,n为正整数;
更新模块,用于根据所述虚拟数据库实例的目标个数,更新虚拟令牌与虚拟数据库实例之间的对应关系,所述虚拟令牌为0到2n-1之间的整数,对应于每个虚拟数据库实例的所述虚拟令牌的个数相同;以及
迁移模块,用于根据更新后的所述对应关系,基于所述虚拟令牌与表名之间的对应关系,迁移数据。
9.根据权利要求8所述的装置,其特征在于,所述更新模块用于:
将取值相邻的所述虚拟令牌对应于不同的虚拟数据库实例。
10.根据权利要求8所述的装置,其特征在于,所述更新模块用于:
根据所述虚拟令牌的取值大小,对所述虚拟令牌进行分组,其中,一个分组中的所述虚拟令牌个数与所述虚拟数据库实例的目标个数相同;
将所述虚拟令牌与虚拟数据库实例之间的对应关系更新为一个所述分组中的各虚拟令牌依次对应于不同的虚拟数据库实例。
11.根据权利要求8所述的装置,其特征在于,还包括:
接收模块,用于在更新虚拟令牌与虚拟数据库实例之间的对应关系之后,接收数据处理请求,其中,所述数据处理请求中包含待处理的表名;
运算模块,用于对所述待处理的表名进行一致性哈希运算获得待处理的虚拟令牌;
确定模块,用于根据更新后的所述对应关系,确定与所述待处理的虚拟令牌对应的更新虚拟数据库实例;
处理模块,用于对所述更新虚拟数据库实例中的对应数据进行数据处理。
12.根据权利要求11所述的装置,其特征在于,所述接收模块接收的所述数据处理请求包括查询请求,所述确定模块还用于:在根据更新后的所述对应关系,确定与所述待处理的虚拟令牌对应的更新虚拟数据库实例之后,根据更新前的虚拟令牌与虚拟数据库实例之间的对应关系,确定与所述待处理的虚拟令牌对应的初始虚拟数据库实例;
所述处理模块用于:在所述更新虚拟数据库实例中和所述初始虚拟数据库实例中分别处理所述查询请求。
13.根据权利要求11所述的装置,其特征在于,所述接收模块接收的所述数据处理请求包括写处理请求,所述处理模块用于:在所述更新虚拟数据库实例处于不可写状态的情况下,将所述写处理请求写入磁盘队列。
14.根据权利要求11所述的装置,其特征在于,所述接收模块接收的所述数据处理请求中还包含待处理的库名,所述运算模块还用于:在对所述待处理的表名进行一致性哈希运算获得待处理的虚拟令牌之前,根据所述待处理的库名,从多个虚拟数据库实例中确定至少一个备选虚拟数据库实例;
所述确定模块用于:根据更新后的所述对应关系,从所述至少一个备选虚拟数据库实例中确定与所述待处理的虚拟令牌对应的更新虚拟数据库实例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910353821.6A CN110059080B (zh) | 2019-04-29 | 2019-04-29 | 一种数据处理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910353821.6A CN110059080B (zh) | 2019-04-29 | 2019-04-29 | 一种数据处理的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110059080A true CN110059080A (zh) | 2019-07-26 |
CN110059080B CN110059080B (zh) | 2021-12-14 |
Family
ID=67321436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910353821.6A Active CN110059080B (zh) | 2019-04-29 | 2019-04-29 | 一种数据处理的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110059080B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309397A (zh) * | 2020-02-17 | 2020-06-19 | 北京达佳互联信息技术有限公司 | 数据分配方法、装置、服务器及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120324143A1 (en) * | 2011-06-15 | 2012-12-20 | Data Design Corporation | Methods and apparatus for data access by a reprogrammable circuit module |
US20130159251A1 (en) * | 2009-06-19 | 2013-06-20 | Rich Skrenta | Dedicating Disks to Reading or Writing |
KR20140049202A (ko) * | 2012-10-16 | 2014-04-25 | 케이티하이텔 주식회사 | 분산형 데이터베이스 관리 시스템 및 방법 |
CN104111924A (zh) * | 2013-04-16 | 2014-10-22 | 中国移动通信集团广东有限公司 | 一种数据库系统 |
CN106407308A (zh) * | 2016-08-31 | 2017-02-15 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库的扩容方法及装置 |
CN107633097A (zh) * | 2017-10-16 | 2018-01-26 | 马上消费金融股份有限公司 | 一种数据库表的动态扩容方法及系统 |
CN108600321A (zh) * | 2018-03-26 | 2018-09-28 | 中国科学院计算技术研究所 | 一种基于分布式内存云的图数据存储方法和系统 |
CN109408590A (zh) * | 2018-09-27 | 2019-03-01 | 青岛海信智能商用系统股份有限公司 | 分布式数据库的扩容方法、装置、设备及存储介质 |
-
2019
- 2019-04-29 CN CN201910353821.6A patent/CN110059080B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130159251A1 (en) * | 2009-06-19 | 2013-06-20 | Rich Skrenta | Dedicating Disks to Reading or Writing |
US20120324143A1 (en) * | 2011-06-15 | 2012-12-20 | Data Design Corporation | Methods and apparatus for data access by a reprogrammable circuit module |
KR20140049202A (ko) * | 2012-10-16 | 2014-04-25 | 케이티하이텔 주식회사 | 분산형 데이터베이스 관리 시스템 및 방법 |
CN104111924A (zh) * | 2013-04-16 | 2014-10-22 | 中国移动通信集团广东有限公司 | 一种数据库系统 |
CN106407308A (zh) * | 2016-08-31 | 2017-02-15 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库的扩容方法及装置 |
CN107633097A (zh) * | 2017-10-16 | 2018-01-26 | 马上消费金融股份有限公司 | 一种数据库表的动态扩容方法及系统 |
CN108600321A (zh) * | 2018-03-26 | 2018-09-28 | 中国科学院计算技术研究所 | 一种基于分布式内存云的图数据存储方法和系统 |
CN109408590A (zh) * | 2018-09-27 | 2019-03-01 | 青岛海信智能商用系统股份有限公司 | 分布式数据库的扩容方法、装置、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
DAVID KARGER 等: "Consistent hashing and random trees: distributed caching protocols for relieving hot spots on the World Wide Web", 《STOC"97: PROCEEDINGS OF THE TWENTY-NINTH ANNUAL ACM SYMPOSIUM ON THEORY OF COMPUTING》 * |
苏跃明 等: "基于分片一致性哈希负载均衡策略与应用", 《计算机技术与发展》 * |
黄荣: "网易分片中间件cetus扩容方案", 《HTTPS://MP.WEIXIN.QQ.COM/S?SRC=11&TIMESTAMP=1603162070&VER=2655&SIGNATURE=QVPXXCPG-V3KQ1PWS5HYO6MFVUXLCMPFNHCLRVVLX0GAR5F1RSZFCBIYUCK2ASS4LR5ZMCRMICSIIU*V-WC4AWRXHN6BRGIVNRPP-KLLONLU7MQXOSYMKN6V8JI76ENB&NEW=1》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309397A (zh) * | 2020-02-17 | 2020-06-19 | 北京达佳互联信息技术有限公司 | 数据分配方法、装置、服务器及存储介质 |
CN111309397B (zh) * | 2020-02-17 | 2024-01-09 | 北京达佳互联信息技术有限公司 | 数据分配方法、装置、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110059080B (zh) | 2021-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102567495B (zh) | 一种海量信息存储系统及实现方法 | |
CN101964820B (zh) | 一种保持数据一致性的方法及系统 | |
CN103020078B (zh) | 分布式实时数据库数据层次索引方法 | |
CN103440288A (zh) | 一种大数据存储方法及装置 | |
CN104410666B (zh) | 云计算下实现异构存储资源管理的方法及系统 | |
US20160140141A1 (en) | File lookup in a distributed file system | |
CN110362380A (zh) | 一种面向网络靶场的多目标优化虚拟机部署方法 | |
CN112132954B (zh) | 一种面向三维激光点云实体对象的分布式管理方法及系统 | |
CN103793493A (zh) | 一种处理车载终端海量数据的方法和系统 | |
CN103646051A (zh) | 一种基于列存储的大数据并行处理系统及方法 | |
CN101071434A (zh) | 一种分布式数据库系统中用户分布的方法、装置及系统 | |
CN109408590A (zh) | 分布式数据库的扩容方法、装置、设备及存储介质 | |
CN110134681A (zh) | 数据存储与查询方法、装置、计算机设备及存储介质 | |
CN111901385A (zh) | 一种云硬盘限速方法、系统、装置及计算机可读存储介质 | |
CN109189341B (zh) | 分布式存储系统的目录负载均衡方法、装置、设备及介质 | |
CN109150964B (zh) | 一种可迁移的数据管理方法及服务迁移方法 | |
CN108090125A (zh) | 一种非查询式的重复数据删除方法及装置 | |
CN101419600A (zh) | 基于面向对象文件系统的数据副本映射方法及装置 | |
CN106547646A (zh) | 一种数据备份及恢复方法、数据备份及恢复装置 | |
CN111274004B (zh) | 进程实例管理方法、装置及计算机存储介质 | |
CN108763323A (zh) | 基于资源集和大数据技术的气象格点文件应用方法 | |
CN109032511A (zh) | 一种数据存储方法、服务器及存储介质 | |
CN102420850A (zh) | 一种资源调度方法及系统 | |
CN107203437A (zh) | 防止内存数据丢失的方法、装置和系统 | |
CN110059080A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220715 Address after: No.16 and 17, unit 1, North District, Kailin center, No.51 Jinshui East Road, Zhengzhou area (Zhengdong), Henan pilot Free Trade Zone, Zhengzhou City, Henan Province, 450000 Patentee after: Zhengzhou Apas Technology Co.,Ltd. Address before: E301-27, building 1, No.1, hagongda Road, Tangjiawan Town, Zhuhai City, Guangdong Province Patentee before: ZHUHAI TIANYAN TECHNOLOGY Co.,Ltd. |