版本发布

5.1.3 发布介绍

发布日期:2023-09-25


错误修复

  1. MatrixGate:
    • 优化 zstd 压缩句柄的内存释放周期,减少 mxgated 进程内存占用。
    • 修复了当集群存在 Standby 节点时,MatrixGate 建立的数据库会话无法定期刷新的问题。

5.1.2 发布介绍

发布日期:2023-09-11


错误修复

  1. 存储引擎:
    • 修复 MARS3 表由于 L0 缓存层的数据并发写入异常,导致查询异常的问题(#6155)
  2. MatrixGate:
    • 修复数据表在自动分区过程中 MatrixGate 因内部超时未将任务恢复,导致无法继续入数的问题(#6165)

5.1.1 发布介绍

发布日期:2023-08-25


错误修复

  1. 存储引擎:
    • 修复 MARS3 存储引擎 uniquemode 模式下 redo log 的问题

5.1.0 发布介绍

发布日期:2023-08-22


特性发布

  1. 新增 MARS3 存储引擎(文档),其与 MARS2 相比:
    • 实现行列混存,写入数据行存落盘,大幅提升写入性能
    • 无需额外创建索引即可完成建表
    • 支持数据的更新与删除,支持增删列,支持 MVCC 机制
    • 不仅继承了 MARS2 时序场景下的性能优势,还增添了对 AP 和 TP 场景的支持
  2. 新增镜像实例迁移工具 mxmoveseg(文档):
    • 支持迁移任意一个当前为 Mirror 的数据库实例到其他服务器
    • 不支持迁移 Standby
  3. 数据迁移工具 mxshift 功能增强(文档):
    • 支持增量迁移:以表为单位,实现从 Greenplum 4.3.33/5/6 / YMatrix 集群并行迁移目标数据库中部分数据表的数据定义语言(DDL)及数据到新的 YMatrix 集群
    • 支持通过 [database.source.hostname-to-ip] 类别下的参数指定主机名对应的 IP 地址,以保障路由的准确性
    • 新增 install-dir 参数,以替换 gphome 参数
  4. MatrixGate 功能增强:
    • 支持在写入过程中立即执行插入的 DDL 修改指令(文档
    • 支持根据不同写入任务的负载自动调节连接数(文档
    • 支持以百分比数值量化源端数据的写入负载(文档
    • 支持限制批量数据加载的大小(文档
  5. 编码链压缩算法功能增强(文档):
    • 新增 Gorilla2、fds 算法
  6. 图形化界面升级(文档):
    • 新增自助巡检页面,支持通过勾选巡检选项自助制定巡检计划,并生成详细的巡检报告
  7. 国产平台 OpenEuler 20.03-22.03、超聚变(Fusion)22-23、麒麟信安 V3.3-3.5、龙晰(Anolis)OS 8、统信 V20(1060a/1060e)支持(企业版特性)(文档

错误修复

  1. 存储引擎:
    • 修复 AOCS 存储引擎在索引扫描时引发的崩溃问题
    • 修复 MARS2 存储引擎定义超过 32 个 minmax 索引导致的崩溃问题
  2. MatrixGate:
    • 修复 MatrixGate 在启动压缩时导致的内存超用问题
    • 修复 MatrixGate 在处理连接超时引发的内部逻辑错误问题
  3. MatrixManager:
    • 修复 MatrixMgr 由于长时间没有释放连接导致内存超用问题
  4. 执行引擎:
    • 修复 mxvector 在处理 NULL 值时由于没有对齐引发的崩溃问题
    • 修复并行模式下处理 InitPlan 引发的崩溃问题
    • 修复分区表下统计信息计算错误问题
  5. 工具:
    • 修复 mxaddmirrors 命令在处理 AO 存储上 checksum 引发的数据校验错误问题
    • 修复 mxshift 执行导出 DDL 操作时报错的问题

5.0.1 发布介绍

发布日期:2023-06-06


错误修复

  1. 执行引擎:
    • 修复了向量化窗口函数表达式计算导致的崩溃
    • 修复了滑动窗口函数处理分组逻辑导致的崩溃
  2. MatrixGate:
    • 修复了 MatrixGate 在锁住某个表时阻塞其他表入数的问题
  3. 高可用:
    • 改进了 Segment 节点的存活探测方法,提高了在高 I/O 负载下的稳定性

5.0.0 发布介绍

发布日期:2023-03-31


特性发布

  1. 全新数据库架构:

    • 基于 Raft 算法,实现集群主节点(Master)和和主节点备用节点(Standby)的故障自动转移(文档
    • 引入面向服务的架构,使集群的部署,运行和维护更加简单方便(文档
    • 新增集群管理工具:mxaddmirrors(文档)、mxdeletesystem(文档)、mxinitstandby(文档)、mxrecover(文档)、mxstart(文档)、mxstate(文档)、mxstop(文档
    • 支持为 etcd 集群部署监控(文档)
  2. 新增向量化执行引擎(文档):

    • 支持批处理:利用批处理的方式,可以有效减少函数调用等执行开销
    • 充分利用硬件及编译器能力:使用 CPU 缓存友好的算法,从而充分利用硬件以及编译器的优化能力,如生成 SIMD(Single Instruction, Multiple Data)指令
    • 支持多种算子:实现了 Scan、Sort、Aggregate、Join、Window Function、Sub Query、Limit、Motion 等算子,对于同一算子也有不同的算法实现,有效覆盖绝大部分查询场景,提升查询性能

    基于以上三点核心原理,相比面向行处理的传统执行引擎,向量化执行引擎可实现 1 到 2 个数量级的性能提升。

  3. 新增 Runtime Filter 查询性能优化技术(文档):

    • RuntimeFilter 是提升 YMatrix 执行引擎性能的关键技术之一,它 是指在优化器生成物理执行计划后,在执行引擎中估价时,动态构建的过滤器(Filter),区别于优化器预先规划的过滤器。
  4. MARS2 存储引擎性能大幅优化(文档):

    • 优化压缩策略,降低内存使用量
    • 优化分区表写入,降低内存使用量
    • 优化查询过滤效果,减少不必要的 I/O 消耗
    • 优化数据量估计,执行计划的选择更精准
    • 增强聚合能力,支持 uniquemode 和 IN 表达式
  5. 新增编码链压缩算法(文档):

    • 支持多种编码、压缩算法:支持 lz4,zstd,simple8b,doubledelta,gorilla,deltazigzag,floatint 等编码、压缩算法,可灵活组合以上算法,以充分提升压缩率
    • 支持列级或表级自定义压缩算法
    • 支持自适应编码
    • 配合向量化执行引擎使用提升数据压缩 / 解压速度:在 SSB 场景下解压速度是 LZ4 的 3 倍

    编码链压缩方案可大幅减小空间占用,降低成本。在新能源汽车场景,压缩率是使用 LZ4 压缩算法方案的 3.9 倍,在 TSBS(Time Series Benchmark Suite)场景,是 LZ4 的 2.7 倍。

  6. 存储诊断工具 Datainspect 升级(文档):

    • 增加新函数 desc_compress,可以对两种指定压缩算法进行对比择优
  7. MatrixGate 功能增强:

    • 在故障自动转移机制启动时,自动将服务切换到相应健康的备用节点(文档
    • 增加写入数据时的详细监控,方便发现问题时进行调试,可通过 -I 启动参数开启(文档)
    • 针对 stdin 加载场景做了一系列优化,数据加载性能相比 4.8.0 提升了一倍
  8. 新增平滑扩容功能(文档):

    • 支持不停机完成扩容任务
    • 支持自定义数据节点集合(Segment Set),实现对部分表的重分布(文档
    • 支持并行执行表数据重分布
    • 支持连接未重分布表与已重分布表
    • 支持图形化界面一键平滑扩容(文档)
  9. 数据迁移工具 mxshift 功能增强(文档):

    • 以数据库为单位,实现对数据表 DDL 的迁移,并且可选择是否只迁移 DDL
  10. 图形化界面升级:

    • 增加查询监控页面,支持自定义管理页面展示的慢查询信息,可一键终止慢查询(文档
    • 增加写入测试功能,一键体验 YMatrix 强大数据写入性能(文档
    • 增加查询测试功能,支持按照业务场景自定义查询测试方案,一键体验高并发场景下 YMatrix 强劲查询性能(文档
    • 部署页面全新升级,步骤更加简单(文档)
    • 扩容页面全新升级,增加平滑扩容功能,步骤更加轻便(文档)
    • 增加高可用状态检测功能(文档)
  11. 自动分区管理增加新策略 auto_partitioning_ex(文档):

    • 支持批量创建分区
    • 支持强制保留特定历史分区
    • 支持自定义自动分区操作时段