提升企业级数据处理效率!3.0 系列版本的四个集群优化点详解

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 Tair(兼容Redis),内存型 2GB
简介: 为了帮助企业更好地进行大数据处理,我们在此前 TDengine 3.x 系列版本中进行了几项与集群相关的优化和新功能开发,本文将对这几项重要优化进行详细阐述。

为了帮助企业更好地进行大数据处理,我们在此前 TDengine 3.x 系列版本中进行了几项与集群相关的优化和新功能开发,以提升集群的稳定性和在异常情况下的恢复能力。这些优化包括 clusterID 隔离、leader rebalance、raft learner 和 restore dnode。本文将对这几项重要优化进行详细阐述,以解答企业在此领域的疑问,并帮助大家更好地应对相关挑战。

clusterID 隔离

  1. 问题
  • firstEp 节点挂掉后,磁盘挂载错误,挂载了一个空白磁盘启动,或者 firstEp 数据被意外删除;
  • firstEp 再次重启。严重点是这个出错的节点,导致其他节点也无法工作,整个集群都挂掉,集群失去了高可用特性。
  1. 造成的后果

firstEp 节点在无数据的情况下重新启动,相当于新创建了一个集群,它重新初始化为一个新集群(重新生成了 clusterid),但此时原集群(旧的 clusterId)中的其它 N-1 个节点仍然向它们所保存的 firstEp 发送心跳,而收到心跳消息的 firstEp 已经是一个新的集群了,所以会拒绝心跳消息,返回节点不存在,要求心跳发送方下线,这些节点收到下线通知后会主动下线,直接导致原集群中的所有节点都不可用

  1. 解决办法

为节点心跳、raft 心跳增加对 clusterid 的判断,即对 clusterid 进行隔离,让具有不同 clusterid 的节点可以独立运行。这种解决办法可以应对节点已经在空白数据上重启的情况。

  1. 解决后的效果

在出现磁盘故障后,firstEp 节点启动后,会形成两个集群,一个是 firstEp 节点形成的单节点新集群,另一个是所有其他节点保持旧 clusterid 的旧集群。两个集群可以独立且互不干扰的正常运行。

RAFT Leader Rebalance(TDengine Enterprise 企业版)

  1. 问题

比较常见的使用场景,在滚动升级后,所有的 leader 都被赶到一个节点上,整个集群严重失衡

  1. 解决办法

增加 balance vgroup leader; 的 SQL 命令,由 DBA 人工触发集群再平衡,该命令会依次顺序对每个 vgroup 强制重新选举 RAFT leader。因为选举是随机的,所以我们可以通过选举让 leader 迁移到其他的节点上。

  1. 解决后的效果

选举理论上随机选出 leader,导致 leader 散开的结果。理论上会均匀,实际上不会绝对均匀。

Raft Learner

  1. 问题

在副本变更时(create mnode, alter db replia),如果存量数据(元数据或时序数据)量比较大时,相应操作会执行很长时间,要等待存量数据同步完成后命令才能执行完成,并且在此期间会阻塞数据写入

  1. 解决办法

在 Leader/Follower/Candidate 之外引入第四种 Raft 角色——Raft learner。Raft Learner 只同步数据不参与选主,也不参与数据写入时的一致性协议。当 Raft Learner 的数据同步进度被追上后才会变身为 Follower,成为 Raft 集群的一部分。这样命令虽然执行很长时间,但不会阻塞写入

  1. 受影响的命令

Create mnode on dnode id;

ALTER DATABASE power replica 3;
Create mnode on dnode id;ALTER DATABASE power replica 3;

  1. 解决后的效果

副本变更时,不会再阻塞写入。相应的命令执行可以很快返回。

Restore dnode(TDengine Enterprise 企业版)

  1. 问题

数据盘出现问题,重新挂载新数据盘,这个节点上所有数据目录都丢失

  1. 解决办法

增加命令:

restore dnode <dnode_id>;# 恢复dnode上的mnode,所有vnode和qnode

restore mnode on dnode <dnode_id>;# 恢复dnode上的mnode

restore vnode on dnode <dnode_id> ;# 恢复dnode上的所有vnode

restore qnode on dnode <dnode_id>;# 恢复dnode上的qnode

该命令,从 mnode 读取节点中关于 mndoe、vnode、qnode 的信息,按照这些在节点重建 mnode、vnode、qnode,在重建结束后,会开始从其他副本复制数据。

  1. 解决后的效果

按照原有的 taos.cfg 的配置启动 taosd,该节点会自动加入群,并且 dnode 显示为 ready,即 online 状态。在节点变为 online 后,通过命令可恢复全部 mnode、vnode、qnode,也可以分别恢复。

  1. 功能限制

该功能是基于已有的复制功能的恢复,不是灾难恢复或者备份恢复,所以对于 mnode 和 vnode 来说,使用该命令一定是还存在其他 mnode 和 vnode 的其他副本。该命令不能修复数据目录中个别文件的损坏或者丢失,是整体的恢复一个 mnode 或者 vnode。

写在最后

通过本文,相信大家已经初步了解了上述几项功能优化。如果你对这些功能有进一步的了解需求,或者希望进一步讨论在应用中遇到的问题,欢迎与我们专业的解决方案架构师直接沟通。

目录
相关文章
|
15天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
51 1
|
28天前
|
存储 数据管理 数据处理
提升数据处理效率:TDengine S3 的最佳实践与应用
在当今数据驱动的时代,如何高效地存储与处理海量数据成为了企业面临的一大挑战。为了解决这一问题,我们在 TDengine 3.2.2.0 首次发布了企业级功能 S3 存储。这一功能经历多个版本的迭代与完善后,逐渐发展成为一个全面和高效的解决方案。
34 0
|
3月前
|
缓存 运维 监控
打造稳定高效的数据引擎:数据库服务器运维最佳实践全解析
打造稳定高效的数据引擎:数据库服务器运维最佳实践全解析
|
4月前
|
监控 数据挖掘 大数据
阿里云开源利器:DataX3.0——高效稳定的离线数据同步解决方案
对于需要集成多个数据源进行大数据分析的场景,DataX3.0同样提供了有力的支持。企业可以使用DataX将多个数据源的数据集成到一个统一的数据存储系统中,以便进行后续的数据分析和挖掘工作。这种集成能力有助于提升数据分析的效率和准确性,为企业决策提供有力支持。
|
3月前
|
Serverless Cloud Native 关系型数据库
Serverless集群资源随业务负载动态弹降特性的重点评测
Serverless集群资源随业务负载动态弹降特性的重点评测
|
6月前
|
存储 监控 Kubernetes
构建高效稳定的云原生日志监控系统
【5月更文挑战第26天】 随着微服务架构和容器化技术的普及,传统的日志监控方法面临重大挑战。本文将探讨如何构建一个既高效又稳定的云原生日志监控系统,该系统旨在提供实时的日志分析能力,同时保证系统的高可用性和可扩展性。我们将讨论利用现代技术栈如Fluentd、Elasticsearch和Kibana(EFK栈)来搭建日志收集、存储和可视化的解决方案,并深入探讨如何通过容器编排工具如Kubernetes来实现日志服务的自动伸缩和故障恢复。此外,我们还将介绍一些最佳实践,帮助运维团队在保持系统性能的同时,降低资源消耗和运营成本。
|
6月前
|
存储 SQL 分布式计算
TiDB整体架构概览:构建高效分布式数据库的关键设计
【2月更文挑战第26天】本文旨在全面概述TiDB的整体架构,深入剖析其关键组件和功能,从而帮助读者理解TiDB如何构建高效、稳定的分布式数据库。我们将探讨TiDB的计算层、存储层以及其他核心组件,并解释这些组件是如何协同工作以实现卓越的性能和扩展性的。通过本文,读者将能够深入了解TiDB的整体架构,为后续的学习和实践奠定坚实基础。
|
11月前
|
关系型数据库 Serverless OLAP
构建高效数据流转的 ETL 系统:数据库 + Serverless 函数计算的最佳实践
构建高效数据流转的 ETL 系统:数据库 + Serverless 函数计算的最佳实践
79788 2
|
6月前
|
人工智能 关系型数据库 MySQL
Apache Doris 2.0.0 版本正式发布:盲测性能 10 倍提升,更统一多样的极速分析体验
亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于 2023 年 8 月 11 日正式发布,有超过 275 位贡献者为 Apache Doris 提交了超过 4100 个优化与修复。