CN104484469A - 一种支持多hash map数据库集群系统不停机的扩容方法 - Google Patents
一种支持多hash map数据库集群系统不停机的扩容方法 Download PDFInfo
- Publication number
- CN104484469A CN104484469A CN201410847870.2A CN201410847870A CN104484469A CN 104484469 A CN104484469 A CN 104484469A CN 201410847870 A CN201410847870 A CN 201410847870A CN 104484469 A CN104484469 A CN 104484469A
- Authority
- CN
- China
- Prior art keywords
- hash map
- cluster
- hash
- current
- map
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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/214—Database migration support
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
本发明创造提供一种支持多hash map数据库集群系统不停机的扩容方法,包括以下步骤:S1.集群中的原表都绑定到现有的hash map上,现有的hash map命名为old hash map;S2.进行集群扩容时,执行产生新hash map的命令,集群产生新的hash map,并把该hash map设定为current hash map;S3.集群扩容后新创建的表自动绑定到current hash map上;S4.对原表和新表的任何操作将以current hash map为当前操作的hash map,基于old hash map的老表的原有的hash特性将丢失,需要按照current hash map进行数据动态重分布后参与和新表的运算。S5.迁移部分数据到新节点上,迁移完成后该表即可绑定到current hash map上。这种设计性能不衰减,数据过渡自然。
Description
技术领域
本发明创造涉及分布式数据库领域,具体涉及一种支持多hash map数据库集群系统不停机的扩容方法。
背景技术
在客户的业务场景中,当前集群满足不了用户的业务需求而需要对集群进行扩容时,需要在给定的时间窗口完成集群的扩容。传统意义的集群扩容主要技术为数据的搬移,通过将原有集群节点上的部分数据重分布到新加入的节点来完成扩容过程。根据数据量的大小,数据重分布的耗时在几小时到几天不等,并且在扩容过程中集群不允许DML与DDL操作,仅允许查询操作,这就为集群用户带来很大不便,特别是实时系统用户不允许集群停机时间过长。
发明内容
本发明创造要解决的是扩容过程不允许用户执行DML与DDL操作的问题。
为解决上述技术问题,本发明创造采用的技术方案是:一种支持多hash map数据库集群系统不停机的扩容方法,包括以下步骤:
S1.集群中的原表都绑定到现有的hash map上,现有的hash map命名为old hash map;
S2.进行集群扩容时,执行产生新hash map的命令,集群产生新的hash map,并把该hash map设定为current hash map;
S3.集群扩容后新创建的表自动绑定到current hash map上;
S4.对原表的任何操作将均使用old hash map,数据运算均在原有节点进行。对新表的任何操作将均使用current hash map,数据运算在所有的节点进 行。对原表和新表的任何操作将以current hash map为当前操作的hash map,基于old hash map的老表的原有的hash特性将丢失,需要按照current hash map进行数据动态重分布后参与和新表的运算。
S5.当数据自然老化后,基于old hash map的原表的数据将从集群中移除,当数据无法老化时,为了提高性能,迁移部分数据到新节点上,迁移完成后该表即可绑定到current hash map上。
进一步地,步骤S2包括以下步骤:
S21.发起生成hash map的命令;
S22.根据hash桶数以及集群总节点数生成包含hash key和nodeid对应的hash map;
S23.集群新生成的hash map设定为current hash map,作为集群的缺省hash map。
进一步地,步骤S22中生成hash map的公式为每个节点分配的hash key的总数=(集群hash桶数[65536]/物理节点总数)。
进一步地,每个节点分配的hash map的范围从0-65535中平均获取连续的一段hash key。
进一步地,步骤S5包括以下步骤:
S51.接受原表动态重分布操作的命令;
S52.获得集群old hash map和扩容时新产生的current hash map;
S53.在集群所有节点上创建中间临时表;
S54.集群原表按照current hash map动态重分布数据到所有节点上的中间临时表中;
S55.删除集群原表,中间临时表重命名为原表,并绑定在current hash map上。
本发明创造具有的优点和积极效果是:
性能不衰减:由于老的集群节点存储旧数据,对于原表的查询操作,原表的DML操作均在原集群节点上进行,性能与原有性能相当。新表的操作由于在集群扩容后的所有节点上,因此操作性能将得到提升。
数据过渡自然:老集群数据依据老化原则自然老化,集群扩容后新表将创建到所有的节点上,在老表的数据没有自然老化前,只基于老表,只基于新表,以及老表和新表的混合操作都自然支持。
附图说明
图1是集群扩容后产生current hash map的流程图;
图2是原表数据重分布到新节点操作的流程图。
具体实施方式
一种支持多hash map数据库集群系统不停机的扩容方法,包括以下步骤:
S1.集群中的原表都绑定到现有的hash map上,现有的hash map命名为old hash map;
S2.进行集群扩容时,执行产生新hash map的命令,集群产生新的hash map,并把该hash map设定为current hash map;
S3.集群扩容后新创建的表自动绑定到current hash map上;
S4.对原表的任何操作将均使用old hash map,数据运算均在原有节点进行。对新表的任何操作将均使用current hash map,数据运算在所有的节点进行。对原表和新表的任何操作将以current hash map为当前操作的hash map,基于old hash map的老表的原有的hash特性将丢失,需要按照current hash map进行数据动态重分布后参与和新表的运算;
S5.当数据自然老化后,基于old hash map的原表的数据将从集群中移除,当数据无法老化时,为了提高性能,迁移部分数据到新节点上,迁移完成后该表即可绑定到current hash map上。
步骤S2包括以下步骤:
S21.发起生成hash map的命令;
S22.根据hash桶数以及集群总节点数生成包含hash key和nodeid对应的hash map;
S23.集群新生成的hash map设定为current hash map,作为集群的缺省hash map。
步骤S22中生成hash map的公式为每个节点分配的hash key的总数=(集群hash桶数[65536]/物理节点总数)。
每个节点分配的hash map的范围从0-65535中平均获取连续的一段hash key。
步骤S5包括以下步骤:
S51.接受原表动态重分布操作的命令;
S52.获得集群old hash map和扩容时新产生的current hash map;
S53.在集群所有节点上创建中间临时表;
S54.集群原表按照current hash map动态重分布数据到所有节点上的中间临时表中;
S55.删除集群原表,中间临时表重命名为原表,并绑定在current hash map上。
以上对本发明创造的实施例进行了详细说明,但所述内容仅为本发明创造的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明创造范围所作的均等变化与改进等,均应仍归属于本专利涵盖范围之内。
Claims (5)
1.一种支持多hash map数据库集群系统不停机的扩容方法,其特征在于:包括以下步骤:
S1.集群中的原表都绑定到现有的hash map上,现有的hash map命名为old hash map;
S2.进行集群扩容时,执行产生新hash map的命令,集群产生新的hashmap,并把该hash map设定为current hash map;
S3.集群扩容后新创建的表自动绑定到current hash map上;
S4.对原表的任何操作将均使用old hash map,数据运算均在原有节点进行。对新表的任何操作将均使用current hash map,数据运算在所有的节点进行。对原表和新表的任何操作将以current hash map为当前操作的hash map,基于old hash map的老表的原有的hash特性将丢失,需要按照current hashmap进行数据动态重分布后参与和新表的运算。
S5.当数据自然老化后,基于old hash map的原表的数据将从集群中移除,当数据无法老化时,为了提高性能,迁移部分数据到新节点上,迁移完成后该表即可绑定到current hash map上。
2.根据权利要求1所述的一种支持多hash map数据库集群系统不停机的扩容方法,其特征在于:步骤S2包括以下步骤:
S21.发起生成hash map的命令;
S22.根据hash桶数以及集群总节点数生成包含hash key和nodeid对应的hash map;
S23.集群新生成的hash map设定为current hash map,作为集群的缺省hash map。
3.根据权利要求2所述的一种支持多hash map数据库集群系统不停机的扩容方法,其特征在于:步骤S22中生成hash map的公式为每个节点分配的hash key的总数=(集群hash桶数[65536]/物理节点总数)。
4.根据权利要求3所述的一种支持多hash map数据库集群系统不停机的扩容方法,其特征在于:每个节点分配的hash map的范围从0-65535中平均获取连续的一段hash key。
5.根据权利要求1所述的一种支持多hash map数据库集群系统不停机的扩容方法,其特征在于:步骤S5包括以下步骤:
S51.接受原表动态重分布操作的命令;
S52.获得集群old hash map和扩容时新产生的current hash map;
S53.在集群所有节点上创建中间临时表;
S54.集群原表按照current hash map动态重分布数据到所有节点上的中间临时表中;
S55.删除集群原表,中间临时表重命名为原表,并绑定在current hashmap上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410847870.2A CN104484469B (zh) | 2014-12-31 | 2014-12-31 | 一种支持多hash map数据库集群系统不停机的扩容方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410847870.2A CN104484469B (zh) | 2014-12-31 | 2014-12-31 | 一种支持多hash map数据库集群系统不停机的扩容方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104484469A true CN104484469A (zh) | 2015-04-01 |
CN104484469B CN104484469B (zh) | 2017-12-15 |
Family
ID=52759010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410847870.2A Active CN104484469B (zh) | 2014-12-31 | 2014-12-31 | 一种支持多hash map数据库集群系统不停机的扩容方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104484469B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260376A (zh) * | 2015-08-17 | 2016-01-20 | 北京京东尚科信息技术有限公司 | 用于集群节点缩扩的方法、设备和系统 |
CN105549909A (zh) * | 2015-12-12 | 2016-05-04 | 天津南大通用数据技术股份有限公司 | 一种集群序列类一致性信息持久化的优化方法 |
CN105991769A (zh) * | 2016-04-12 | 2016-10-05 | 上海帝联信息科技股份有限公司 | 数据迁移方法及装置、边缘节点服务器 |
CN106407308A (zh) * | 2016-08-31 | 2017-02-15 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库的扩容方法及装置 |
CN106776001A (zh) * | 2016-11-14 | 2017-05-31 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库集群数据的分布方法及装置 |
CN107295046A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种用户迁移的方法和设备 |
CN107786365A (zh) * | 2016-08-31 | 2018-03-09 | 北京金山云网络技术有限公司 | 一种集群扩容方法及装置 |
WO2018133662A1 (zh) * | 2017-01-18 | 2018-07-26 | 华为技术有限公司 | 一种数据重分布方法、装置及数据库集群 |
CN110532243A (zh) * | 2019-08-20 | 2019-12-03 | 上海艾融软件股份有限公司 | 数据处理方法、装置和电子设备 |
CN112379845A (zh) * | 2020-11-30 | 2021-02-19 | 深信服科技股份有限公司 | 一种集群扩容方法、装置、计算设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060402A (zh) * | 2006-04-21 | 2007-10-24 | 盛趣信息技术(上海)有限公司 | 基于Hash-map的多点缓存装置 |
CN102033938A (zh) * | 2010-12-10 | 2011-04-27 | 天津神舟通用数据技术有限公司 | 基于二级映射的集群动态扩展方法 |
CN102521297A (zh) * | 2011-11-30 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 无共享数据库集群中实现系统动态扩展的方法 |
US20130179395A1 (en) * | 2009-03-11 | 2013-07-11 | Sandor ABC Heman | Methods of operating a column-store database engine utilizing a positional delta tree update system |
-
2014
- 2014-12-31 CN CN201410847870.2A patent/CN104484469B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060402A (zh) * | 2006-04-21 | 2007-10-24 | 盛趣信息技术(上海)有限公司 | 基于Hash-map的多点缓存装置 |
US20130179395A1 (en) * | 2009-03-11 | 2013-07-11 | Sandor ABC Heman | Methods of operating a column-store database engine utilizing a positional delta tree update system |
CN102033938A (zh) * | 2010-12-10 | 2011-04-27 | 天津神舟通用数据技术有限公司 | 基于二级映射的集群动态扩展方法 |
CN102521297A (zh) * | 2011-11-30 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 无共享数据库集群中实现系统动态扩展的方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260376B (zh) * | 2015-08-17 | 2018-08-14 | 北京京东尚科信息技术有限公司 | 用于集群节点缩扩的方法、设备和系统 |
CN105260376A (zh) * | 2015-08-17 | 2016-01-20 | 北京京东尚科信息技术有限公司 | 用于集群节点缩扩的方法、设备和系统 |
CN105549909A (zh) * | 2015-12-12 | 2016-05-04 | 天津南大通用数据技术股份有限公司 | 一种集群序列类一致性信息持久化的优化方法 |
CN105549909B (zh) * | 2015-12-12 | 2019-03-12 | 天津南大通用数据技术股份有限公司 | 一种集群序列类一致性信息持久化的优化方法 |
CN107295046B (zh) * | 2016-03-31 | 2020-06-05 | 阿里巴巴集团控股有限公司 | 一种用户迁移的方法和设备 |
CN107295046A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种用户迁移的方法和设备 |
CN105991769B (zh) * | 2016-04-12 | 2019-04-16 | 上海帝联信息科技股份有限公司 | 数据迁移方法及装置、边缘节点服务器 |
CN105991769A (zh) * | 2016-04-12 | 2016-10-05 | 上海帝联信息科技股份有限公司 | 数据迁移方法及装置、边缘节点服务器 |
CN107786365A (zh) * | 2016-08-31 | 2018-03-09 | 北京金山云网络技术有限公司 | 一种集群扩容方法及装置 |
CN106407308A (zh) * | 2016-08-31 | 2017-02-15 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库的扩容方法及装置 |
CN106776001A (zh) * | 2016-11-14 | 2017-05-31 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库集群数据的分布方法及装置 |
WO2018133662A1 (zh) * | 2017-01-18 | 2018-07-26 | 华为技术有限公司 | 一种数据重分布方法、装置及数据库集群 |
US11726984B2 (en) | 2017-01-18 | 2023-08-15 | Huawei Technologies Co., Ltd. | Data redistribution method and apparatus, and database cluster |
CN110532243A (zh) * | 2019-08-20 | 2019-12-03 | 上海艾融软件股份有限公司 | 数据处理方法、装置和电子设备 |
CN112379845A (zh) * | 2020-11-30 | 2021-02-19 | 深信服科技股份有限公司 | 一种集群扩容方法、装置、计算设备及存储介质 |
CN112379845B (zh) * | 2020-11-30 | 2024-05-28 | 深信服科技股份有限公司 | 一种集群扩容方法、装置、计算设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104484469B (zh) | 2017-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104484469B (zh) | 一种支持多hash map数据库集群系统不停机的扩容方法 | |
CN106997378B (zh) | 基于Redis的数据库数据聚合同步的方法 | |
PH12019501156A1 (en) | Blockchain-based data processing method and device | |
US20170161297A1 (en) | Data synchronization in a storage network | |
CN102088489B (zh) | 一种分布式数据同步系统及方法 | |
WO2017067117A1 (zh) | 数据查询方法和装置 | |
CN108259562A (zh) | 一种基于多端点的数据同步方法及装置 | |
CN103198494B (zh) | 一种基于建筑外轮廓线及激光点云的建筑立面提取方法 | |
JP2016517051A5 (zh) | ||
CN102761540A (zh) | 数据压缩方法、装置、系统以及服务器 | |
CN103995854A (zh) | 一种设备跨版本升级方法和装置 | |
CN104239417A (zh) | 一种分布式数据库数据分片后动态调整方法及装置 | |
WO2016074370A1 (zh) | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 | |
US20160098494A1 (en) | Integration of analysis with multi-user cad | |
CN103729427A (zh) | 一种基于自定义多级流表增量更新的流表转换方法 | |
CN103942280A (zh) | 一种基于数据结构自动生成代码的方法 | |
CN105159974A (zh) | 一种跨数据源的web服务自动生成方法 | |
CN105138638A (zh) | 一种基于应用层的数据库分布方法 | |
CN103455967A (zh) | 一种图片特效在线化处理方法 | |
CN104899312A (zh) | 一种多层分类数据体系的数据更新方法 | |
CN105447105A (zh) | 基于NoSQL的分布式物联网数据的单字段区间索引查询方式 | |
WO2015124668A1 (en) | Tree-structure storage method for managing computation offloading data | |
CN106156044B (zh) | 数据库切换方法及装置 | |
CN104715051A (zh) | 一种面向电站系统异构数据融合的一体化处理方法 | |
CN105843631B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |