CN102930062A - 一种数据库快速水平扩展的方法 - Google Patents
一种数据库快速水平扩展的方法 Download PDFInfo
- Publication number
- CN102930062A CN102930062A CN2012105061040A CN201210506104A CN102930062A CN 102930062 A CN102930062 A CN 102930062A CN 2012105061040 A CN2012105061040 A CN 2012105061040A CN 201210506104 A CN201210506104 A CN 201210506104A CN 102930062 A CN102930062 A CN 102930062A
- Authority
- CN
- China
- Prior art keywords
- database
- database instance
- data
- instance
- storage
- 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 23
- 238000003860 storage Methods 0.000 claims abstract description 43
- 238000012544 monitoring process Methods 0.000 claims abstract description 21
- 230000015654 memory Effects 0.000 claims abstract description 16
- 230000009471 action Effects 0.000 claims abstract description 7
- 230000001965 increasing effect Effects 0.000 claims abstract description 7
- 238000005520 cutting process Methods 0.000 claims description 28
- 238000013500 data storage Methods 0.000 claims description 8
- 230000015572 biosynthetic process Effects 0.000 claims description 7
- 238000003780 insertion Methods 0.000 claims description 2
- 230000037431 insertion Effects 0.000 claims description 2
- 238000013508 migration Methods 0.000 abstract description 9
- 230000005012 migration Effects 0.000 abstract description 9
- 230000011218 segmentation Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 208000034423 Delivery Diseases 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000007858 starting material Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库快速水平扩展的方法,属于数据迁移储存领域。其步骤为:监控***对现有数据库磁盘存储空间进行监测,当磁盘容量到达设定的存储容量阈值,则触发增加硬件存储的动作,为数据迁移做硬件环境的准备。路由协议根据当前待***的主键ID与目前数据库实例数N取模,将待***的行数路由到指定的数据库中,当超过预设的存储数目阈值时触发对数据库进入切分的动作,将指定数据迁移入新的数据库,完成数据库快速水平扩展。本发明可用于磁盘数据库或内存数据库,方法易用简洁,避免传统数据库水平扩展造成的热点分布不均的问题;此外,由于每次切分的数据迁移规模小,提高扩容的速度。综上所述,整体构架满足高可用性、高可靠性、高速、高效等要求。
Description
技术领域
本发明涉及一种数据库扩展存储容量的方法,尤其涉及针对企业级数据库数据存储量不断增长的需求进行数据库快速水平扩展的方法。
背景技术
随着互联网的飞速发展,应用数据量及访问量快速增长,对于传统企业IT构架体系,磁盘数据库存储数据面临大并发、高数据量传输的巨大压力。为了应对大数据的趋势,提高数据库容量的可扩展性,扩展方案的选择尤为关键。
现有技术通过单个数据库的磁盘增加来实现数据增长存储问题,解决***的可扩展性。通常有两种方案:垂直可伸缩性(Vertical scalability)就是对单个一台服务器添加更多的内存和CPU,也叫做纵向扩展(scale up);水平可伸缩性(Horizontal scalability)就是添加多台内存和CPU配置相近的服务器,依靠多部服务器、存储协同运算,借负载平衡及容错等功能来提高运算能力及可靠度,也叫水平扩展(scale out)。
纵向扩展主要通过增加服务器的CPU、内存、通道及其他设备扩展硬件,每加一个节点,性能和容量同时增长,不影响原有使用,操作简便。水平扩展存储主要通过一定的分布式算法将一个个独立的低成本存储节点组成一个大而强的集群,通过更改软件设置的数据库选择算法,在停机后将原有数据库的部分数据迁移到新增加的数据库上实现扩展。
纵向扩展构架需要增加高性能的硬件,通常大型服务器的成本要比普通小型机昂贵;其次,整个存储***前端处理能力和后端磁盘数量可以不断扩展,但是升级扩展到一定程度,会产生前端控制器无法扩展的性能瓶颈。
水平扩展存储***架构必须重新规划存储网络架构,因此需要搭配厂商的***整合服务,来整合现有的存储资源,会有大规模的数据迁移,停机时间较长等问题,对于在线服务要求较高的场景并不适用。
发明内容
发明要解决的技术问题
针对纵向扩展存在的缺陷以及水平扩展停机时间长,数据迁移算法复杂,本发明提供一种数据库快速水平扩展的方法,能够减少扩展数据库存储空间的停机时间,避免大规模的数据迁移,达到提高数据库扩容效率、数据库访问效率的目的。同时在整个扩展方案中监测模块,可以更好的达到实时监控的目的,并提供可视、友好的操作。
技术方案
一种数据库快速水平扩展的方法提供了硬件与软件的整体方案,构架示意图如图1所示,本方法以硬件监控为基础,提供友好的界面操作,给用户提供直观、简洁的工作环境。通过数据库硬件容量监控模块,在整个数据库***容量不足时,能提前发出预警,在***操作界面显示提示,用户可通过解决方案设置选择增加硬件环境的参数。通过本发明,可以使***新添加硬件存储空间时,原有的数据能快速以表为单位迁入新的数据库,按需分配新旧数据,避免部分数据因大规模访问造成的局部数据堵塞问题,其包括如下步骤:
步骤一:部署监控模块根据监控模块监测的数据,若数据库磁盘存储空间已经达到存储容量阈值,则准备新增数据库环境,监控模块示意图如图2所示,目的是为水平扩展准备硬件环境。当数据库内部存储条目到达路由模块设定的存储数目阈值后,采用本方法,每个数据库实例占用一个磁盘空间,每次新增数据库实例需要新增加硬盘空间。
步骤二:扩展的分割算法具体如下:路由中保存了当前数据库记录总行数,路由协议根据当前待***的主键ID对目前数据库实例数N取模运算,将待***的行数路由到指定的数据库中。
设数据库实例的存储数目阈值为Y条信息,N为数据库实例数目, n为数据库的水平切分次数,数据库的切分因子为α,则N、n、α之间应当满足关系:N=αn,设N个数据库实例依次为DB0,DB1,.. DBi,… DBN-1。
当数据库未进行切分前,所有的***请求都路由到现存仅有的数据库实例1,而数据库切分后(n>0),路由协议中的算法公式如下:(其中j为每个数据库存储数据数目,i为数据库个数):
根据监控模块的存储容量阀值,当数据库的数据量达到存储容量阀值时,监控模块就会发送一条告警信息,用户在收到告警信息时预先准备硬件环境,一旦数据库的主键ID超过数据库存储数目阀值,路由模块发指令就会使预先设置的规则引导数据库进入切分状态。队列是一种数据结构,它满足最先***的元素将是最先被删除的元素;反之最后***的元素将是最后被删除的元素。主键:作为表中行的唯一标识的关键字。
对原始数据库实例中的表,水平分割为数据库实例中结构相同的α个表即表0、表1…表α-1(α为自然数),表结构相同,数据存储规则,按照主键ID对α取余后的值分配相应存储在每个表中,即对主键ID取余值为0的数据存储在表0,取余值为1的存储在表1, 取余值为α-1的数据存储在表α-1。路由指网络信息从信源到信宿的路径;路由协议指网络信息从信源根据某一规则到信宿;数据库实例指数据库后台进程和数据库文件的集合。
步骤三:当数据库内部存储条目到达路由模块设定比如存储数目阈值后,采用本方法,每个数据库实例占用一个磁盘空间,每次新增数据库实例需要新占用硬盘空间。
当单个数据库实例中的数据存储达到数据库实例的存储数目阈值Y条时,此时表0、表1和表α-1的数据均为Y/α条,需对数据库进行扩展,增加数据库实例个数为α,数据库实例0为原数据库实例,新增加的数据库实例为数据库实例1…数据库实例α-1。将数据库实例0中的表1整体搬迁到数据库实例1中,将数据库实例0中的表α-1整体搬迁到数据库实例α-1中,搬迁完成后在数据库实例0中新增表0_1…表0_α-1,数据库实例1中新增表1_1…表1_α-1,在数据库实例α-1中增加表α-1_1…表α-1_α-1,动作完成后数据存储规则需要做变化,对于数据库实例0、数据库实例1数据库实例α-1的选择上需要按照主键ID对α取余进行,即主键ID对α取余值为0的存储在数据库实例0,主键ID对α取余值为1的数据存储在数据库实例1中, 主键ID对α取余值为α-1的数据存储在数据库实例α-1中。选择完数据库实例后,表的选择也需要修改,对于主键ID值小于Y的数据表的选择依旧是主键ID对α取余表名保持不变,对于大于Y的数据则存储在新增的表中,表名的规则是“表名+主键ID对α取余后的余数+‘_实例个数取α的对数’”。
继续按照上述规则,当数据库实例0、数据库实例1和数据库实例α-1的数据存储达到已设定存储数目阀值Y条时,继续增加数据库实例。数据库实例水平扩展的规律为:数据库实例个数为α的n次方个,每次扩展n的值需加1。数据库实例中表的迁移规则为:将数据库实例中的原新增加表移动n位,移动完成后依次在各个数据库实例中添加新的表,表名规则为“表名+主键ID对α取余后的余数+‘_实例个数取α的对数’”。
整个过程为一个数据库事务,包括以下几个步骤:
1)数据库进入切分状态;
2)n自增,n++;
3)每一个数据库都切分成之前的α倍,直到数据库切分完成;
4)数据库进入未切分状态,当数据库实例的数据存储达到已设定的存储数目阀值Y条时,继续增加数据库实例从步骤一开始进行下一次切分动作。
在以上动作过程中,如果有数据库***请求时,***队列会暂时将其放入队列中,直到数据库切分完成再执行队列中的请求,流程图如图3所示。
有益效果
本发明的技术方案可用于磁盘数据库或内存数据库,提供可视化的操作界面,方便用户进行监控、管理,通过监控模块,实现对***的实时数据收集、信息获取,根据业务具体需求制定灵活的***配置解决方案;新增硬件使得数据库容量扩展后,利用数据库快速水平扩展的方法,可以不影响原有数据的切分规则,且算法易用简洁,避免传统数据库水平扩展造成的热点分布不均的问题,并且能大幅度提高数据库集群的访问效率;此外,由于每次切分的数据迁移规模小,在此条件下需要的迁移时间缩短,提高了数据库扩容的速度。综上所述,整体构架满足高可用性、高可靠性、高速、高效等要求。
在利用了快速水平扩展方式后的生产效率有明显的提升,如果只是在原数据库实例下以添加磁盘存储数量和处理器个数只能暂时满足需要,一旦达到数据库软件处理事务的极限时便不再有效,如某数据库的并发处理线程数为250,当数据库的数据总量越来越大,***用户越来越多就意味着并发访问数据库的线程越来越多,那么当达到数据库的限制时再多加硬件也不会对数据库的性能有很大的提升了,当使用本发明以后,各个实例都是分开处理数据的,针对每个数据库实例都会有个最佳的数据量,使每个数据库都充分发挥自身的能力满负荷运行,可以为***用户提供最好的性能体验。
根据上述原理对该方案进行实际的数据库性能测试,测试硬件信息如下:
服务器:FUJITSU PRIMERGY RX300 S6
CPU内核:6个CPU×2.8GHz
处理器类型:Intel(R) Xeon(R)CPU X5660 2.8GHz
内存大小:32G
硬盘大小:500G
测试软件环境如下:
操作***:Windows Server 2008 数据库:Oracle 10.2.0
测试工具:apache-jmeter-2.6
实例个数不变,将数据分割到两个相同的表中。
实例个数变化。
由上述数据可见,在数据量达到一定级别后对数据库进行水平切分可以显著提高数据的处理效率。
附图说明
图1为数据库快速水平扩展***构架图;
图2为监控模块流程图;
图3数据切分流程图;
图4数据库初始***构架图;
图5为实施例中一次扩展示意图;
图6为实施例中二次扩展示意图;
图7为实施例中三次扩展示意图;
图8为实施例中扩展流程示意图。
具体实施方式
当数据库每个节点达到容量上限,通过数据的迁移和路由规则的改变实现数据库扩展。数据库水平扩展算法可以快速定位数据,减少等待时间。对于业务随时间不断增长的企业,通过数据库水平扩展能有效的提高***的工作速度和吞吐量,实现各种数据库的海量数据存储。
实施例1
步骤一:部署监控模块,如图4为数据库初始***构架图所示,监控模块与路由模块分别部署在硬件机器上,这里使用的硬件监控软件为开源的Open Hardware Monitor,通过网络实时收集数据库集群信息,当硬件容量达到已设定的存储容量阈值,则监控软件模块提示管理员准备增加硬件环境,为下一步数据切分做准备。
步骤二:由上一步已经准备好了硬件环境,当路由模块的计数器达到预先设定的存储数目阈值,则准备切分。实施根据数据库水平扩展原理,现取切分因子α=2。
数据库实例0中现存2张表,表0和表1存储的数据的规则为主键ID对2取模,当数据库实例中的数据量达到配置的存储容量阀值时触发监控告警,这时候就需要对该数据库实例进行水平扩展时,扩展只需要新建数据库实例1,并将表1移动到数据库实例1中即可,如果将公式中的切分因子α变为3,也是可以的,当切分因子为3时,那么数据库实例0中的切分规则就是主键ID对3取模后的值,新建数据库实例也需要同时新建3个并将实例0中的表1和表2分别移动到数据库实例1中和数据库实例2中,但是这样就多了几步操作,再往后续扩展的话操作也会越来越繁琐,会生产环境实现快速扩展有影响。
根据上述实施情况,选择数据库切分因子α=2,具体扩展方法如下:
1、初始状态切分次数n=0,此时数据库实例个数N=αn=20=1,该数据库中有两个表,两个表的数据结构一致,即表的列名称,列名称对应的数据类型都一致。
此时只有一个数据库实例,所以分库规则DRule :“数据库实例0”
分表规则TRule:“tableName”+“ID %2”,即该数据库实例的数据存储会按照对主键ID的值取余,余数为0的数据存放在表0中余数为1的数据存放在表1中。如图5所示。
步骤三:这里假设数据库实例0的存储数目阈值是Y条数据,那么在数据库实例0中的表0和表1的最大数据量各自分别为Y/2条数据,当数据库实例0达到容量限制时即数据库实例0的数据量达到Y条时,根据扩容规则,第一次扩容为n=1,即数据库实例总数为N=21=2,即增加一个数据库数据库实例1,将表1移入数据库实例1,移入后数据库实例0和数据库实例1的数据量现在都为Y/2,为了有效利用数据库资源充分发挥数据库的使用效率,在原数据库实例0和新增的数据库实例1上都需要增加新的相同类型的表,如图6所示:
增加数据库实例1后的分库规则DRule:“Datebase”+“ID % 2”,增加后的数据库分库规则为对主键ID取余,余数为0的数据存储在数据库实例0中,余数为1的数据存储在数据库实例1中。
增加数据库实例1后的分表规则TRule:现有数据分表规则不变,仍为“tableName”+“ID % 2”,即ID值在Y以内的数据分表规则仍然为“tableName”+“ID % 2”获取表名称,新增的数据即ID值大于Y的数据分表规则:“tableName”+“ID % 2”+“_1”,这样新来的大于Y的数据就可以均匀分配到表0_1和表1_1中去。
当数据库实例0与数据库实例1达到存储数目阈值Y限制时,即总数据达到Y*2条,增加数据库实例,总数据库实例个数为N=22=4,将表0_1、表1_1表分别移入数据库实例2与数据库实例3,所有数据库实例新增“表”+“ID%4”+“_2”,即表0_2、表1_2、表2_2、表3_2,新增数据根据路由规则选择存储的表,如图7所示:
此时数据库实例的分库规则DRule:“Datebase”+“ID % 4”,即数据库数据的存储规则按照ID的值分为4部分,ID对4取余值为0的数据存储在数据库实例0中,ID对4取余值为1的数据存储在数据库实例1中,ID对4取余值为2的数据存储数据库实例2中,ID对4取余值为3的数据存储在数据库实例3中。
此时的数据库分表规则TRule:现有数据分表规则不变,即数据在Y以内的数据继续存储在表0和表1中规则为:“tableName”+“ID % 2”,Y<ID<Y*2的数据存储在步骤二新增的表中,它们的存储规则为:“tableName”+“ID % 2”+“_1”,ID>Y*2的数据按照新规则存储,即新增数据分表规则:“表”+“ID % 4”+“_2”,即Y*2以后的数据平均分配到了数据库实例0到数据库实例3中。
当步骤三的数据库容量达到上限即数据量达到Y*αn=Y*22=Y*4,那么依旧可以按照上述规则进一步的添加数据库实例进入阶段四,以满足数据存储需要。如图8所示:
上述实施例中使用java编程方式说明数据库快速水平扩展方法具体操作。
import java.sql.Connection;
import java.sql.DriverManager;
public class Route {
/*******************************
* 专用字段 *
******************************/
private String dbName_prefix = null;//数据库实例名的前缀
private String tableName_prefix = null;//表名的前缀
private Configure configure = null;//配置属性对象,可以根据该对象获取与数据库连接的url
/***********************************************
* 外部可访问的构造程序 *
* 用来构造特定的数据库的可扩展对象 *
***********************************************/
public Route(Configure configure,String dbName_prefix,String tableName_prefix) throws Exception {
this.configure = configure;
this.dbName_prefix = dbName_prefix;
this.tableName_prefix = tableName_prefix;
}
/*****************************************************************
* 根据dbCount,id,dataRange获取特定数据库的连接对象 *
*****************************************************************/
public Connection doRoute(int dbCount, int id, int dataRange)
throws Exception {
//针对文档说明对实例个数为1,2,4的情况编码说明。
if (dbCount != 1 && dbCount != 2 && dbCount != 4) {
throw new IllegalArgumentException(
"dbcount parameter error,dbCount in [1,2,4]:" + dbCount);
}
String dbName = getDbName(dbCount, id, dataRange);//根据数据库实例的个数,//id值的大小和增加数据库时的数据库id最大值,//取增加后数据库后的数据库实例名称
String url = configure.getJdbcURLByDbName(dbName);//根据实例名称获取与对应数据库实例的url
return DriverManager.getConnection(url);//返回数据库连接对象
}
/********************************************************
* 根据dbCount,id,dbRange获取特定数据库的连接对象 *
********************************************************/
public String getDbName(int dbCount, int id, int dataRange)
throws Exception {
//示例代码只针对对数据库实例个数为[1,2,4]的情况,4个以上的变化规则与代码中表示的规则一致。
if (dbCount != 1 && dbCount != 2 && dbCount != 4) {
throw new IllegalArgumentException(
"dbcount parameter error,dbCount in [1,2,4]:" + dbCount);
}
String dbName_temp = "";
if (dbCount == 1) {
dbName_temp = dbName_prefix + 0;
} else if (dbCount == 2) {
dbName_temp = dbName_prefix + (id % 2);
} else {
if (id < dataRange) {
if (id < dataRange / 2) {
dbName_temp = dbName_prefix + (id % 2);
} else {
dbName_temp = dbName_prefix + ((id % 2) + 2);
}
} else if (id < dataRange * 2) {
dbName_temp = dbName_prefix + (id % 4);
} else {
throw new IllegalArgumentException("id outof range[ id ]:" + id);
}
}
return dbName_temp;
}
public String getTableName(int dbCount, int id, int dataRange)
throws Exception {
if (dbCount != 1 && dbCount != 2 && dbCount != 4) {
throw new IllegalArgumentException(
"dbcount parameter error,dbCount in [1,2,4]:" + dbCount);
}
String tableName = "";
if (dbCount == 1) {
tableName = tableName_prefix + (id % 2);
} else if (dbCount == 2) {
if (id < dataRange / 2) {
tableName = tableName_prefix + (id % 2);
} else if (id < dataRange) {
tableName = tableName_prefix + (id % 2) + "_1";
} else {
throw new IllegalArgumentException("id outof range["
+ dataRange + "]:" + id);
}
} else {
if (id < dataRange) {
if (id < dataRange / 2) {
tableName = tableName_prefix + (id % 2);
} else {
tableName = tableName_prefix + (id % 2) + "_1";
}
} else if (id < dataRange * 2) {
tableName = tableName_prefix + (id % 4) + "_2";
} else {
throw new IllegalArgumentException("id out of range. id:" + id);
}
}
return tableName;
}
}
通过使用本实施例,对原数据库进行水平扩展使得数据库的整体总容量由1千万上升到了2千万,容量得到了双倍的提升,扩展后的数据库总体执行效率也得到了60%左右的提升。
Claims (3)
1.一种数据库快速水平扩展的方法,包括如下步骤:
步骤一: 部署监控模块,根据监控模块监测的数据,若数据库磁盘存储空间已经达到存储容量阈值,则准备新增数据库存储空间,目的是为水平扩展准备硬件环境;
步骤二:水平扩展的路由数据中保存了当前数据库记录总行数,路由协议根据当前待***的主键ID对目前数据库实例数N取模运算,将待***的记录行数路由到指定的数据库实例中,数据库实例存储数目阈值为Y条信息,目前数据库实例数N,数据库的水平切分次数n,数据库的切分因子α, N、n、α之间满足N=αn, N个数据库实例依次为DB0,DB1,.. DBi,… DBN-1,
当数据库未进行切分前,所有的***请求根据路由协议都路由到现存仅有的数据库实例1,而数据库切分后,路由协议中的算法公式如下:
当数据库内部存储条目到达设定的存储数目阈值后,每个数据库实例占用一个磁盘空间,每次新增数据库实例需要新增加硬盘空间,一旦数据库的主键ID超过Y*αn,就会使预先设置的规则引导数据库进入切分状态;在以上动作过程中,如果发生数据库***请求时,***队列会暂时将其放入队列中,直到数据库切分完成再执行队列中的请求;
步骤三: 当单个数据库实例中的记录总数达到数据库实例的存储数目阈值Y条时,此时表0、表1和表α-1的数据均为Y/α条,需对数据库进行扩展,增加数据库实例个数为α,数据库实例0为原数据库实例,新增加的数据库实例为数据库实例1…数据库实例α-1,将数据库实例0中的表1整体搬迁到数据库实例1中,将数据库实例0中的表α-1整体搬迁到数据库实例α-1中,搬迁完成后在数据库实例0中新增表0_1…表0_α-1,数据库实例1中新增表1_1…表1_α-1,在数据库实例α-1中增加表α-1_1…表α-1_α-1,动作完成后数据存储规则需要做变化,对于数据库实例0、数据库实例1和数据库实例α-1的选择上需要按照主键ID对α取余进行,主键ID对α取余值为0的存储在数据库实例0,主键ID对α取余值为1的数据存储在数据库实例1中, 主键ID对α取余值为α-1的数据存储在数据库实例α-1中;选择完数据库实例后,表的选择也需要修改,对于主键ID值小于Y的数据表的选择依旧是主键ID值对α取余表名保持不变,对于大于Y的数据则存储在新增的表中,表名的规则是“表名+主键ID对α取余后的余数+‘_实例个数取α的对数’”;
继续按照上述规则,当数据库实例0、数据库实例1和数据库实例α-1的数据存储达到已设定的存储数目阀值Y条时,继续增加数据库实例从步骤一开始进行下一次切分动作。
2.根据权利要求1数据库快速水平扩展的方法,其特征在于,所述步骤1中当数据库内部存储条目到达设定的存储容量阈值后,每个数据库实例占用一个磁盘空间,每次新增数据库实例需要新增加硬盘空间。
3.根据权利要求1或2数据库快速水平扩展的方法,其特征在于,所述步骤2中数据库的切分因子α为2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210506104.0A CN102930062B (zh) | 2012-11-30 | 2012-11-30 | 一种数据库快速水平扩展的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210506104.0A CN102930062B (zh) | 2012-11-30 | 2012-11-30 | 一种数据库快速水平扩展的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102930062A true CN102930062A (zh) | 2013-02-13 |
CN102930062B CN102930062B (zh) | 2016-04-13 |
Family
ID=47644859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210506104.0A Expired - Fee Related CN102930062B (zh) | 2012-11-30 | 2012-11-30 | 一种数据库快速水平扩展的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102930062B (zh) |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598459A (zh) * | 2013-10-30 | 2015-05-06 | 阿里巴巴集团控股有限公司 | 数据库处理、数据访问方法及*** |
CN105069109A (zh) * | 2015-08-07 | 2015-11-18 | 北京思特奇信息技术股份有限公司 | 一种分布式数据库扩容的方法和*** |
CN105095417A (zh) * | 2015-07-13 | 2015-11-25 | 小米科技有限责任公司 | 存储业务数据的方法、装置及数据库节点 |
CN105589937A (zh) * | 2015-12-14 | 2016-05-18 | 江苏鼎峰信息技术有限公司 | 一种分布式数据库存储架构*** |
CN105760510A (zh) * | 2016-02-24 | 2016-07-13 | 浪潮通用软件有限公司 | 一种软件业务***的数据库横向扩展方法 |
CN105760553A (zh) * | 2016-03-25 | 2016-07-13 | 北京奇虎科技有限公司 | 数据管理方法和装置 |
CN105989015A (zh) * | 2015-01-28 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种数据库扩容方法和装置以及访问数据库的方法和装置 |
CN106527995A (zh) * | 2016-11-22 | 2017-03-22 | 青海师范大学 | 一种i/o均衡的数据扩容迁移方法 |
CN106959951A (zh) * | 2016-01-08 | 2017-07-18 | 北京国双科技有限公司 | 数据库的处理方法和装置 |
CN107066463A (zh) * | 2016-10-28 | 2017-08-18 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和服务器 |
CN107229688A (zh) * | 2017-05-12 | 2017-10-03 | 上海前隆金融信息服务有限公司 | 一种数据库水平分库分表方法及***、服务器 |
CN107766459A (zh) * | 2017-09-27 | 2018-03-06 | 天翼电子商务有限公司 | 一种高性能及高可用性的分表方法及其*** |
CN107870981A (zh) * | 2017-09-30 | 2018-04-03 | 平安科技(深圳)有限公司 | 电子装置、数据表归档处理的方法及存储介质 |
CN108282522A (zh) * | 2018-01-15 | 2018-07-13 | 吉浦斯信息咨询(深圳)有限公司 | 基于动态路由的数据存储访问方法及*** |
CN108710621A (zh) * | 2018-03-12 | 2018-10-26 | 广东睿江云计算股份有限公司 | 一种基于ceph实现MySQL数据库水平扩展的方法 |
CN109213825A (zh) * | 2017-06-29 | 2019-01-15 | 北京微影时代科技有限公司 | 一种数据库扩容方法及装置 |
CN109271376A (zh) * | 2018-11-30 | 2019-01-25 | 北京锐安科技有限公司 | 数据库升级方法、装置、设备及存储介质 |
CN109656709A (zh) * | 2017-10-12 | 2019-04-19 | 北京京东尚科信息技术有限公司 | 一种Codis集群扩容的方法和装置 |
CN111061737A (zh) * | 2019-12-12 | 2020-04-24 | 税友软件集团股份有限公司 | 一种分布式数据库快速扩容装置 |
CN111125114A (zh) * | 2019-12-25 | 2020-05-08 | 中国建设银行股份有限公司 | 数据库横向扩展、数据表访问方法及装置 |
CN111400273A (zh) * | 2019-11-19 | 2020-07-10 | 杭州海康威视***技术有限公司 | 数据库扩容方法、装置、电子设备及机器可读存储介质 |
CN111813772A (zh) * | 2019-04-12 | 2020-10-23 | 阿里巴巴集团控股有限公司 | 数据处理方法以及装置 |
WO2020215799A1 (zh) * | 2019-04-24 | 2020-10-29 | 深圳先进技术研究院 | 基于日志分析的MongoDB数据迁移监控方法及装置 |
CN112685390A (zh) * | 2021-03-22 | 2021-04-20 | 阿里云计算有限公司 | 数据库实例管理方法及装置、计算设备 |
CN114625738A (zh) * | 2022-03-18 | 2022-06-14 | 四川新网银行股份有限公司 | 一种数据动态分布方法、分布***及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783577B (zh) * | 2019-01-05 | 2021-10-08 | 咪付(广西)网络技术有限公司 | 一种基于策略的云端数据库弹性伸缩方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908075A (zh) * | 2010-08-17 | 2010-12-08 | 上海云数信息科技有限公司 | 基于sql的并行计算***及方法 |
CN102262626A (zh) * | 2010-05-24 | 2011-11-30 | 阿里巴巴集团控股有限公司 | 一种数据库存储数据的方法及装置 |
-
2012
- 2012-11-30 CN CN201210506104.0A patent/CN102930062B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262626A (zh) * | 2010-05-24 | 2011-11-30 | 阿里巴巴集团控股有限公司 | 一种数据库存储数据的方法及装置 |
CN101908075A (zh) * | 2010-08-17 | 2010-12-08 | 上海云数信息科技有限公司 | 基于sql的并行计算***及方法 |
Non-Patent Citations (1)
Title |
---|
杨颖等: "《基于范围分割数据的负载平衡算法的研究》", 《计算机应用研究》 * |
Cited By (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598459A (zh) * | 2013-10-30 | 2015-05-06 | 阿里巴巴集团控股有限公司 | 数据库处理、数据访问方法及*** |
CN104598459B (zh) * | 2013-10-30 | 2019-01-15 | 阿里巴巴集团控股有限公司 | 数据库处理、数据访问方法及*** |
CN105989015A (zh) * | 2015-01-28 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种数据库扩容方法和装置以及访问数据库的方法和装置 |
CN105989015B (zh) * | 2015-01-28 | 2021-01-29 | 创新先进技术有限公司 | 一种数据库扩容方法和装置以及访问数据库的方法和装置 |
CN105095417A (zh) * | 2015-07-13 | 2015-11-25 | 小米科技有限责任公司 | 存储业务数据的方法、装置及数据库节点 |
CN105069109B (zh) * | 2015-08-07 | 2018-04-03 | 北京思特奇信息技术股份有限公司 | 一种分布式数据库扩容的方法和*** |
CN105069109A (zh) * | 2015-08-07 | 2015-11-18 | 北京思特奇信息技术股份有限公司 | 一种分布式数据库扩容的方法和*** |
CN105589937A (zh) * | 2015-12-14 | 2016-05-18 | 江苏鼎峰信息技术有限公司 | 一种分布式数据库存储架构*** |
CN106959951A (zh) * | 2016-01-08 | 2017-07-18 | 北京国双科技有限公司 | 数据库的处理方法和装置 |
CN105760510A (zh) * | 2016-02-24 | 2016-07-13 | 浪潮通用软件有限公司 | 一种软件业务***的数据库横向扩展方法 |
CN105760553A (zh) * | 2016-03-25 | 2016-07-13 | 北京奇虎科技有限公司 | 数据管理方法和装置 |
CN107066463A (zh) * | 2016-10-28 | 2017-08-18 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和服务器 |
CN106527995B (zh) * | 2016-11-22 | 2019-03-29 | 青海师范大学 | 一种i/o均衡的数据扩容迁移方法 |
CN106527995A (zh) * | 2016-11-22 | 2017-03-22 | 青海师范大学 | 一种i/o均衡的数据扩容迁移方法 |
CN107229688A (zh) * | 2017-05-12 | 2017-10-03 | 上海前隆金融信息服务有限公司 | 一种数据库水平分库分表方法及***、服务器 |
CN109213825A (zh) * | 2017-06-29 | 2019-01-15 | 北京微影时代科技有限公司 | 一种数据库扩容方法及装置 |
CN107766459A (zh) * | 2017-09-27 | 2018-03-06 | 天翼电子商务有限公司 | 一种高性能及高可用性的分表方法及其*** |
CN107766459B (zh) * | 2017-09-27 | 2021-03-02 | 天翼商业保理有限公司 | 一种分表方法及其*** |
CN107870981A (zh) * | 2017-09-30 | 2018-04-03 | 平安科技(深圳)有限公司 | 电子装置、数据表归档处理的方法及存储介质 |
CN107870981B (zh) * | 2017-09-30 | 2021-10-22 | 平安科技(深圳)有限公司 | 电子装置、数据表归档处理的方法及存储介质 |
CN109656709A (zh) * | 2017-10-12 | 2019-04-19 | 北京京东尚科信息技术有限公司 | 一种Codis集群扩容的方法和装置 |
CN108282522B (zh) * | 2018-01-15 | 2021-01-08 | 吉浦斯信息咨询(深圳)有限公司 | 基于动态路由的数据存储访问方法及*** |
CN108282522A (zh) * | 2018-01-15 | 2018-07-13 | 吉浦斯信息咨询(深圳)有限公司 | 基于动态路由的数据存储访问方法及*** |
CN108710621A (zh) * | 2018-03-12 | 2018-10-26 | 广东睿江云计算股份有限公司 | 一种基于ceph实现MySQL数据库水平扩展的方法 |
CN109271376A (zh) * | 2018-11-30 | 2019-01-25 | 北京锐安科技有限公司 | 数据库升级方法、装置、设备及存储介质 |
CN111813772A (zh) * | 2019-04-12 | 2020-10-23 | 阿里巴巴集团控股有限公司 | 数据处理方法以及装置 |
CN111813772B (zh) * | 2019-04-12 | 2024-05-07 | 阿里巴巴集团控股有限公司 | 数据处理方法以及装置 |
WO2020215799A1 (zh) * | 2019-04-24 | 2020-10-29 | 深圳先进技术研究院 | 基于日志分析的MongoDB数据迁移监控方法及装置 |
CN111400273A (zh) * | 2019-11-19 | 2020-07-10 | 杭州海康威视***技术有限公司 | 数据库扩容方法、装置、电子设备及机器可读存储介质 |
CN111400273B (zh) * | 2019-11-19 | 2024-02-02 | 杭州海康威视***技术有限公司 | 数据库扩容方法、装置、电子设备及机器可读存储介质 |
CN111061737A (zh) * | 2019-12-12 | 2020-04-24 | 税友软件集团股份有限公司 | 一种分布式数据库快速扩容装置 |
CN111061737B (zh) * | 2019-12-12 | 2023-05-09 | 税友软件集团股份有限公司 | 一种分布式数据库快速扩容装置 |
CN111125114A (zh) * | 2019-12-25 | 2020-05-08 | 中国建设银行股份有限公司 | 数据库横向扩展、数据表访问方法及装置 |
CN111125114B (zh) * | 2019-12-25 | 2023-06-16 | 中国建设银行股份有限公司 | 数据库横向扩展、数据表访问方法及装置 |
CN112685390A (zh) * | 2021-03-22 | 2021-04-20 | 阿里云计算有限公司 | 数据库实例管理方法及装置、计算设备 |
CN112685390B (zh) * | 2021-03-22 | 2021-12-21 | 阿里云计算有限公司 | 数据库实例管理方法及装置、计算设备 |
CN114625738A (zh) * | 2022-03-18 | 2022-06-14 | 四川新网银行股份有限公司 | 一种数据动态分布方法、分布***及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102930062B (zh) | 2016-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102930062A (zh) | 一种数据库快速水平扩展的方法 | |
US11989186B2 (en) | Scalable architecture for a distributed time-series database | |
US11934409B2 (en) | Continuous functions in a time-series database | |
US8676951B2 (en) | Traffic reduction method for distributed key-value store | |
CN103678520B (zh) | 一种基于云计算的多维区间查询方法及其*** | |
US20200167355A1 (en) | Edge processing in a distributed time-series database | |
CN107145537B (zh) | 一种表格数据导入方法及*** | |
CN103995855B (zh) | 存储数据的方法和装置 | |
CN106126407A (zh) | 一种针对分布式存储***的性能监控调优***及方法 | |
CN109241159B (zh) | 一种数据立方体的分区查询方法、***及终端设备 | |
CN102541990A (zh) | 利用虚拟分区的数据库重新分布方法和*** | |
CN103345514A (zh) | 大数据环境下的流式数据处理方法 | |
CN103631924B (zh) | 一种分布式数据库平台的应用方法和*** | |
CN102279848A (zh) | 生成报表模板的方法与装置 | |
CN104111924A (zh) | 一种数据库*** | |
CN110147372A (zh) | 一种面向htap的分布式数据库智能混合存储方法 | |
CN104951462B (zh) | 用于管理数据库的方法和*** | |
CN105608228B (zh) | 一种高效的分布式的rdf数据存储方法 | |
US11409725B1 (en) | Multi-tenant partitioning in a time-series database | |
CN103593460A (zh) | 数据分级存储***和数据分级存储方法 | |
CN105677625A (zh) | 多层级汇总统计报表协同填报处理方法 | |
CN104731969A (zh) | 分布式环境下海量数据连接聚集查询方法、装置和*** | |
US8239417B2 (en) | System, method, and computer program product for accessing and manipulating remote datasets | |
CN110008289B (zh) | 一种关系数据库、电网模型数据存储及检索方法 | |
CN103365923A (zh) | 用于评估数据库的分区方案的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160413 |
|
CF01 | Termination of patent right due to non-payment of annual fee |