CN104484469A - 一种支持多hash map数据库集群系统不停机的扩容方法 - Google Patents

一种支持多hash map数据库集群系统不停机的扩容方法 Download PDF

Info

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
Application number
CN201410847870.2A
Other languages
English (en)
Other versions
CN104484469B (zh
Inventor
张绍勇
孔德生
武新
崔维力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TIANJIN NANKAI UNIVERSITY GENERAL DATA TECHNOLOGIES Co Ltd
Original Assignee
TIANJIN NANKAI UNIVERSITY GENERAL DATA TECHNOLOGIES Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TIANJIN NANKAI UNIVERSITY GENERAL DATA TECHNOLOGIES Co Ltd filed Critical TIANJIN NANKAI UNIVERSITY GENERAL DATA TECHNOLOGIES Co Ltd
Priority to CN201410847870.2A priority Critical patent/CN104484469B/zh
Publication of CN104484469A publication Critical patent/CN104484469A/zh
Application granted granted Critical
Publication of CN104484469B publication Critical patent/CN104484469B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support

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数据库集群系统不停机的扩容方法
技术领域
本发明创造涉及分布式数据库领域,具体涉及一种支持多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上。
CN201410847870.2A 2014-12-31 2014-12-31 一种支持多hash map数据库集群系统不停机的扩容方法 Active CN104484469B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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