【TDengine】MNode、VNode、QNode、SNode 各自的职责是什么?
TDengine 3.4.x 核心组件深度剖析:MNode、VNode、QNode、SNode 职责详解问题原文:“MNode、VNode、QNode、SNode 各自的职责是什么?”解析范围:本文将对 TDengine 3.4.x 版本中的四大核心逻辑节点——MNode(管理节点)、VNode(虚拟存储节点)、QNode(查询计算节点)、SNode(流计算节点)进行逐个拆解。我们将从其设计动机、核心职责、内部实现机制、源码路径、配置项、运维命令到生产最佳实践,进行全方位、原理级的阐述,并以金融行情 tick 数据处理为贯穿始终的真实业务场景。引言:一场由“职责不清”引发的 P0 级事故在某大型券商的量化交易系统中,TDengine 集群被用于存储和分析每秒数百万条的股票行情数据(tick data)。一次看似平常的架构升级后,整个集群的写入吞吐量骤降 80%,同时SELECT LAST(*)查询延迟从毫秒级飙升至秒级。紧急排查发现,根本原因在于新部署的服务器上,所有 dnode 均被错误地配置为承载 vnode 和 qnode,而 mnode 的副本数仅为 1。当一个复杂的多表 JOIN 查询压垮了某个 dnode 上的 qnode 时,该 dnode 的 CPU 被打满,连带影响了其上的 vnode 写入性能,