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

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

Info

Publication number
CN104484469B
CN104484469B CN201410847870.2A CN201410847870A CN104484469B CN 104484469 B CN104484469 B CN 104484469B CN 201410847870 A CN201410847870 A CN 201410847870A CN 104484469 B CN104484469 B CN 104484469B
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.)
Active
Application number
CN201410847870.2A
Other languages
English (en)
Other versions
CN104484469A (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 hashmap;
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对应的hashmap;
S23.集群新生成的hash map设定为current hash map,作为集群的缺省hashmap。
进一步地,步骤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 hashmap;
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对应的hashmap;
S23.集群新生成的hash map设定为current hash map,作为集群的缺省hashmap。
步骤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的命令,集群产生新的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上。
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 hash map上。
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 CN104484469A (zh) 2015-04-01
CN104484469B true 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)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260376B (zh) * 2015-08-17 2018-08-14 北京京东尚科信息技术有限公司 用于集群节点缩扩的方法、设备和***
CN105549909B (zh) * 2015-12-12 2019-03-12 天津南大通用数据技术股份有限公司 一种集群序列类一致性信息持久化的优化方法
CN107295046B (zh) * 2016-03-31 2020-06-05 阿里巴巴集团控股有限公司 一种用户迁移的方法和设备
CN105991769B (zh) * 2016-04-12 2019-04-16 上海帝联信息科技股份有限公司 数据迁移方法及装置、边缘节点服务器
CN107786365B (zh) * 2016-08-31 2020-06-19 北京金山云网络技术有限公司 一种集群扩容方法及装置
CN106407308A (zh) * 2016-08-31 2017-02-15 天津南大通用数据技术股份有限公司 一种分布式数据库的扩容方法及装置
CN106776001A (zh) * 2016-11-14 2017-05-31 天津南大通用数据技术股份有限公司 一种分布式数据库集群数据的分布方法及装置
CN108319623B (zh) 2017-01-18 2021-10-22 华为技术有限公司 一种数据重分布方法、装置及数据库集群
CN110532243A (zh) * 2019-08-20 2019-12-03 上海艾融软件股份有限公司 数据处理方法、装置和电子设备
CN112379845B (zh) * 2020-11-30 2024-05-28 深信服科技股份有限公司 一种集群扩容方法、装置、计算设备及存储介质

Citations (3)

* 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 北京人大金仓信息技术股份有限公司 无共享数据库集群中实现***动态扩展的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10152504B2 (en) * 2009-03-11 2018-12-11 Actian Netherlands B.V. Column-store database architecture utilizing positional delta tree update system and methods

Patent Citations (3)

* 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 北京人大金仓信息技术股份有限公司 无共享数据库集群中实现***动态扩展的方法

Also Published As

Publication number Publication date
CN104484469A (zh) 2015-04-01

Similar Documents

Publication Publication Date Title
CN104484469B (zh) 一种支持多hash map数据库集群***不停机的扩容方法
CN102088489B (zh) 一种分布式数据同步***及方法
CN103379138B (zh) 实现负载均衡的方法及***和灰度发布的方法及装置
CN102929989B (zh) 一种地理空间数据在云计算平台上的负载均衡方法
CN108259562A (zh) 一种基于多端点的数据同步方法及装置
CN104615657A (zh) 一种节点支持多数据分片的分布式集群的扩容和缩容方法
CN104317966A (zh) 一种用于电力大数据快速组合查询的动态索引方法
CN104239417A (zh) 一种分布式数据库数据分片后动态调整方法及装置
CN104298761B (zh) 一种异构软件***间主数据匹配的实现方法
JP2011170774A (ja) 決定木生成装置、決定木生成方法、及びプログラム
US20160098494A1 (en) Integration of analysis with multi-user cad
CN105740410A (zh) 一种基于Hbase二级索引的数据统计方法
CN108985444A (zh) 一种基于节点抑制的卷积神经网络剪枝方法
CN103729427A (zh) 一种基于自定义多级流表增量更新的流表转换方法
CN103944964A (zh) 一种分布式***及根据该***进行逐步扩容的方法
CN103617318A (zh) 一种配电自动化电网的建模方法
CN104836846A (zh) 一种基于sdn技术的能源互联通信网络架构***
CN103441988B (zh) 跨gis平台数据迁移方法
CN105138536B (zh) 基于有向超图的移动社交网络数据分片方法
CN105045879B (zh) 一种数据并行处理方法
CN104239204A (zh) 一种最小测试用例集的生成方法
CN107273443A (zh) 一种基于大数据模型元数据的混合索引方法
CN105303284A (zh) 一种服装大规模定制归号方法
CN104657797A (zh) 移动互联网电子政务平台***
Jiang et al. An asynchronous ADMM algorithm for distributed optimization with dynamic scheduling strategy

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