TDengine 3.0.2.0 正式发布,性能、稳定性大幅提升

近日,TDengine 3.0.2.0 正式发布了。这是自今年 8 月份 TDengine 3.0 发布以来的第一个重要改进版本。

TDengine 3.0.2.0 正式发布,性能、稳定性大幅提升 - TDengine Database 时序数据库

TDengine 3.0 带来了几大核心特性,包括云原生架构、流式计算,还增强了数据订阅功能;更重要的是,3.0 系列版本开始提供了全平台支持,服务器/客户端均已支持 Linux、Windows 和 MacOS。

TDengine 3.0 是一款真正的云原生时序数据库(Time Series Database,TSDB)。它有几大亮点:

  • 可以支持 10 亿个设备、100 个节点
  • 支持存储与计算分离,引入了计算节点(QNode),并重构了整个计算引擎
  • 完善并优化了对消息队列、流式计算和缓存的支持,引入事件驱动的流式计算
  • 解决了困扰时序数据库的高基数问题

3.0 发布之后,大量用户下载试用,也提供了很多有价值的反馈。最近一段时间,研发团队引入各类内部优化共 455 个,包括提升系统稳定性,改进写入和查询性能,以及优化内存使用效率。为了保证系统质量,研发团队还开发了数千个功能、性能和稳定性测试用例。

经过诸多优化之后,TDengine 时序数据库的性能也得到了充分的提升和验证。

下面我们看一下到 3.0.2.0 版本为止,TDengine 3.0 提供的主要特性和增强:

  • 支持事件驱动的流式计算

支持用 SQL 语法创建流式计算,方便用户轻松实现较为复杂的业务逻辑

CREATE STREAM [IF NOT EXISTS] stream_name [stream_options] INTO stb_name AS subquery
stream_options: {
 TRIGGER    [AT_ONCE | WINDOW_CLOSE | MAX_DELAY time]
 WATERMARK   time
 IGNORE EXPIRED [0 | 1]
}
  • 为支持数据订阅,提供了一个全新的消息队列

基于 WAL 重新设计了数据订阅功能,具体应用可参考相关文档

  • 支持新的 SQL 查询语法,去掉了对一些查询语法的限制

具体变更可参考相关文档

  • 采用了 Raft 协议来保证分布式一致性,支持在 3 副本的情况下自动启用 Raft 协议
  • 添加了新的元数据库,用于记录集群中的所有元数据
  • 利用 B+ 树记录 vnode 中的元数据
  • 为快速检索标签数据,增加了倒排索引

除了功能方面,新版本也针对大量场景优化了写入和查询性能,以及启动和恢复速度,具体包括:

  • 优化了存在大量子表时的数据写入性能
  • 优化了 select count(*) 的性能
  • 专门优化了 avg、twa、last_row、first、interp 等大量函数的性能
  • 提供了一个实时数据库可配置的缓存,用来保存各种类型的最新数据
  • 优化了 show 命令,部分情况下可以提供更多信息
  • 提升系统启动速度
  • 改进了三副本情况下有节点宕机时的恢复速度

新版本还解决了一系列内存泄露问题和 bug。

详细信息,可以参考发布说明。欢迎广大用户下载使用,有任何使用问题,也欢迎及时联系我们,获得支持。