版本发布历史

6.8.4 发布介绍

发布时间:2026-10-08


增强与改进

  • 优化器新增 SAOP 改写并默认生效:IN 列表等标量数组条件会被自动改写、合并,减少重复计算;如遇问题可通过 mx_enable_saop_rewriter 关闭。
  • 默认启用共享 CTE(gp_cte_sharing),无需再显式打开。
  • 共享 CTE 在启用并行模式(enable_parallel_mode)时可以生成并行计划;排查问题时可打开 mx_debug_cte_replan 输出重规划调试信息,或用 mx_cte_force_parallel 跳过代价检查、优先采用并行计划(仅对可并行的查询生效)。
  • 共享 CTE 内部只是简单表扫描时,即使开启 gp_cte_sharing 也不再共享物化,而是各自直接扫描基表,避免额外开销。
  • 扫描复制表的子查询在满足条件时(如不包含易变函数、没有 LIMIT),执行计划中不再需要广播数据,减少开销。
  • 对结果随行号单调变化的窗口函数(如 row_number()),支持提前中止与分两阶段执行,减少无效的中间数据。
  • 优化多表关联时等价类的构建速度。
  • 优化 LIMIT + DISTINCT 使用 HashAgg 时的计划生成与代价计算。
  • MARS3 新增 text、varchar、char 类型的 pattern 操作符类,LIKE 前缀查询可以使用索引,ON CONFLICT 也可显式指定对应操作符类;同时修正了索引构建时的排序问题与 DESC 索引的 min/max 统计,参见 MARS3 索引。
  • 优化 MARS3 顺序扫描的资源占用,降低宽表查询的初始化开销与内存占用。
  • MARS3 可通过 EXPLAIN ANALYZE VERBOSE 输出执行各阶段的耗时统计,便于定位性能瓶颈。
  • 提升 MARS3 判断数据可见性(MVCC)的效率。
  • mxnumeric 在计划阶段完成精度推导,提升查询性能。
  • 表达式计算或类型转换失败时,报错信息补充列名上下文;字符、位串长度超限与 smallint 转换溢出会给出具体异常值,便于定位问题。
  • 对 MARS3 表使用原生 TID Scan 时,报错会明确说明该扫描方式不受支持。
  • MatrixGate Transfer 模式单表迁移时按字段名自动映射,源表与目标表字段顺序不必保持一致,参见 单表迁移工具 mxgate。
  • MatrixGate 扫描 Kafka JSON 时不再重复解析原始数据,提升处理性能;Kafka consumer group 支持配置多个成员(member),参见 MatrixGate 参数。
  • MatrixGate 支持重置 Kafka 消费位点,MXUI 数据流页面也可重设点位,参见 重设 Kafka 消费点位。
  • MatrixGate 与 MXUI 的 Kafka 数据流支持 DisablePAFXFAST 参数,参见 Kafka SSL 加密连接。
  • MXUI 新增灾备集群状态展示。
  • MXUI 数据流支持创建非分区表:创建时无需选择时间列,使用 INSERT 模式时设备 ID 列也改为可选;同时简化了自动映射生成的字段名,参见 Kafka 接入。
  • MXUI 数据流支持保存 Kafka 配置信息,便于后续快速复用,参见 Kafka 接入。
  • MXUI 数据流任务支持启动和停止,参见 Kafka 数据流的管理操作。
  • MXUI 数据流场景隐藏不支持的操作按钮。
  • MXUI 资源组模块自动检测集群节点支持的资源组版本,参见 资源组管理。
  • MXUI 自动调优卡片调整:如需跳过自动优化,只能通过「跳过」按钮进行。
  • MXUI 完善 HAProxy 检查机制,Standby MXUI 上的 License 操作可以正确转发至 Master 节点。
  • MXTool 设置内核参数 vm.min_free_kbytes 时,不再使用固定值,改为按机器总内存的 5% 自动计算。

问题修复

  • 修复若干已知问题

系统变量和选项变更

系统变量 / 选项 修改类型 描述
mx_enable_saop_rewriter 新增 默认值 on
控制 SAOP 自动改写;设为 off 时不再改写 IN 列表等标量数组条件。
gp_cte_sharing 变更默认值 默认值改为 on,共享 CTE 默认启用。
mx_cte_force_parallel 新增 默认关闭
跳过代价检查,倾向于为共享 CTE 生成并行计划,仅对原理上能够并行的查询生效。
mx_debug_cte_replan 新增 默认关闭
打印共享 CTE 重规划的调试信息。

6.8.2 发布介绍

发布时间:2026-07-03


增强与改进

  • Dispatcher 优化内部连接建立过程,减少 SSL 与 GSS 检查引入的非必要延迟。
  • mxv 优化大量重复表达式场景的执行性能。
  • mxv 类型化编码器新增对任意类型的支持。
  • MARS3 DefaultBrin 支持 DynamicSeqScan。
  • MARS3 优化顺序输出、MARS3 BRIN 与 MARS3 btree 的代价估算,并将估算模型调整为以 stripe/range 为单元。
  • MARS3 优化 RangePage 与 RangeDescPage 访问路径,通过引用 RangePage 和本地缓存 RangeDescPage handle 减少执行开销。
  • Planner 允许复制表默认参与并行计划评估,使存在复制表时其他表仍有机会生成 parallel hash join 等并行计划。
  • Planner 支持基于流式聚合的 SetOp 子计划提前去重,并支持生成 UNION 并行计划。
  • Planner 优化 UNION、INTERSECT、EXCEPT 的 Motion 生成策略,仅在必要时添加 Motion 节点。
  • Planner 支持将 HAVING 子句中的 OR 条件下推到扫描节点以提前过滤。
  • Planner 支持在共享 CTE 内部 Append 子节点下添加 Motion 节点,以支持并行执行。
  • Planner 支持合并 CTE 引用过滤条件,并通过 OR 组合下推到共享扫描。
  • Planner 在共享 CTE 重规划时支持将下推 OR 条件转换为 ANY 表达式,以改善行数估计。
  • Planner 支持在 OR 条件下拉取 EXISTS/NOT EXISTS 子链接,并以左外连接执行。
  • Planner 支持将表达式子链接 EXPR_SUBLINK 上拉为 JOIN 或左外连接执行。
  • Domino 流处理支持在一个流中同时执行 join 和 agg。
  • Domino 流处理删除双流 left join 中的冗余列;该变更与既有 left join 流表不兼容,升级后需 drop 并重建相关流表。
  • PXF 与 pxf_fdw 支持 Iceberg v2 表的 HadoopCatalog。
  • MXUI 新增 Pre-Install 步骤,支持在添加节点页面输入 IP、匹配对应主机 hostname 并同步 hosts 文件。
  • MXUI Pre-Install 步骤支持为 mxadmin 用户配置 sudo 权限、关闭主机 SELinux,并检查非预期 iptables 规则。
  • MXUI 安装界面支持展示添加节点阶段的详细错误信息,便于定位失败原因。
  • MXUI 数据表页面新增索引信息查看功能,支持展示索引名称、类型和大小。
  • MXUI 巡检项新增 postgresql.auto.conf 非预期配置和 iptables 非预期规则检查。
  • MXUI 调整邮件服务器配置校验逻辑,未启用 AUTH 时不再校验用户名。
  • MXUI 添加 mirror 时,如存在多个可用硬盘,会提示修改默认 plan。
  • MatrixGate 数据接入服务支持 Kafka SSL 加密连接,参见 MatrixGate Kafka 加密连接(SSL)配置说明。
  • MXUI 数据流支持配置 Kafka SSL 认证。
  • MXCtl 调整 kafka_catalog 表结构,创建表时 id 列类型由 int 变更为 bigint。
  • MXStart 支持配置 wrapper,在保持原有启动流程不变的前提下,为 postmaster 启动过程提供自定义扩展能力。
  • Etcd 升级到 v3.5.32,以解决已知 CVE。
  • 容灾 / 高可用支持主备集群来回切换。
  • 容灾 / 高可用采用新的 DR 设计,支持备份集群 primary - mirror 部署、切换、恢复和重建,参见 YMatrix 6.8 灾难恢复使用指南。
  • MXTool 增加 OOM 现场采集能力。
  • MXTool 新增 mxtool init numa-wrapper 命令,用于根据当前集群拓扑自动生成 NUMA Wrapper 脚本和 NUMA 映射配置,并部署到各节点,参见 YMatrix NUMA Node 绑定启动。

问题修复

  • 修复若干已知问题

系统变量和选项变更

系统变量 / 选项 修改类型 描述
compresstype=auto 新增 MARS3 新增 auto 压缩选项,使用类型化编码器(arraycodec)。
MARS3 btree auto 压缩 变更默认行为 MARS3 btree 默认启用 auto 压缩。
rowstore TOAST 压缩 变更默认行为 MARS3 默认关闭 rowstore TOAST 压缩。
mars3.enable_btree_inorderscan 新增 新增 MARS3 btree in-order scan 控制 GUC,默认值为 off。

6.8.1 发布介绍

发布时间:2026-05-25


增强与改进

  • mxv:优化 DELETE WHERE IN 大列表场景下的执行计划生成时间。
  • fastdd:优化外部参数下推能力,提升相关场景下的查询执行效率。
  • Optimizer:优化 EXISTS 搭配 SubPlan 场景下的执行效率。
  • mars3:支持 DIMS 语法,参见 MARS3 DIMS 维度列声明。
  • mars3:支持 diskquota 插件。
  • mars3:在 EXPLAIN VERBOSE 输出中增加 default brin 相关显示。
  • pxf_fdw:调整代码组织方式,改为以 git submodule 方式管理,便于独立维护与版本管理。
  • Domino:优化 XLog 保留回调函数在密集执行 VACUUM FREEZE 场景下的执行效率。
  • Matrixgate:优化内部性能统计组件 load_metric 的 goroutine 使用方式,降低运行时资源开销。
  • Matrixgate:引入 automaxprocs,当用户未显式设置 GOMAXPROCS 时,Matrixgate 会自动设置合理值,提升 CPU 资源使用效率。
  • Matrixgate:增强日志信息,在 set slot 相关日志中增加表名,便于问题定位与运维排查。
  • Matrixgate:优化 fasthttp 内部 flush chunk 逻辑,提升 HTTP 传输效率。
  • Matrixgate:优化内存使用,底层使用固定大小切片作为 buffer,减少内存分配与波动。
  • Matrixgate:新增参数 http-segmented-body,用于控制是否启用内存优化,默认启用。设置为 false 时,将回退到旧版 Matrixgate 的内存分配方式。
  • Matrixgate:新增参数 http-segment-size-kb,用于指定底层单个 slice 的大小,默认值为 1024KB。
  • Matrixgate:新增参数 write-buffer-size,用于指定 Matrixgate 到 segment 传输时单个 buffer 的大小。

问题修复

  • 修复若干已知问题

6.8.0 发布介绍

发布时间:2026-04-10


新版本特性

增强与改进

  • 向量化执行器默认开启工作文件压缩功能以提升 OLAP 性能
  • 优化了向量化执行器 VHashAgg 的性能
  • 优化了向量化执行器 case when 表达式的性能
  • Planner 添加了 right anti semi join (not in) 的支持
  • Planner 在部分情况下支持并行执行 right semi join
  • planner 优化了 HashAgg 用于带 limit 的 distinct 求值
  • MARS3 存储引擎 history 快照支持 definitlydead 优化
  • 优化了 MARS3 在 UniquMode 模式下,Compact 和 Scanner 内存过高的问题
  • 新增了 Domino 流计算中在没有流只有 decoder 的节点上正确保留 snapshot 文件的能力
  • VHashAgg 只使用单分区 HashMap
  • mxshift 中 DDL 不再迁移 temp sequence
  • mxnumeric 扩展升级至 0.3,改进了类型转换功能的性能与正确性,参见 mxnumeric 使用手册
  • matrixts 中 timebucket_auto 支持了自动按时间桶排序返回
  • MatrixUI 支持了创建流表模版
  • MatrixUI 默认关闭了 pprof 端口,可以通过页面打开
  • SOA 服务组件默认不暴露 pprof 地址,可以通过 sudo kill -USR2 -p <pid_of_soa_program> 发信号方式临时打开与关闭

问题修复

  • 修复若干已知问题

系统变量变更

系统变量 修改类型 描述
gp_workfile_compression 变更默认值 默认值由 off 变成了 on
gp_interconnect_type 变更默认值 默认值由 udpifc 变成了 tunnel
enable_dynamic_seqscan 新增 默认值 on
Planner 优化器支持 DynamicSeqScan 扫描分区表,在不启用 ORCA 的情况下也能利用 DynamicSeqScan 对分区表进行高效扫描。
mx_enable_motion_runtime_filter 新增 默认值 on
开启时,VMotion 接收端在收到行数据后,会直接用 Bloom Filter 过滤不满足条件的行,减少向上层节点传递的数据量。

6.7.1 发布介绍

发布时间:2026-02-24


增强与改进

  • License:将默认证书有效期从 14 天改为 30 天
  • MatrixUI 新增健康检监测规则,当磁盘可用率低于一定阈值,将数据库设置为只读。默认状态下不开启(文档)
  • MatrixUI 支持了安装后进行自动调优
  • MatrixUI 支持了资源组管理,可以在 UI 管理资源组
  • 支持了新的 IC 类型 tunnel (文档)
  • 简化和增强了向量化 vtle 的去重能力
  • 向量化 VDynamicSeqScan 支持了 runtime filter
  • domino v2 支持了 segment set 功能
  • 在使用 rule 改写时,引入尝试合并等价类
  • vhashjoin 支持 full out join
  • DEP (Dynamic Partition Elimination): partition selector node 完全支持并行执行
  • PXF 增加可下推的类型
  • PXF 组件新增 clean_nul 配置选项,用于控制是否清理 0x00 字节,其中 replace 模式在 SELECT查询中通过 REPLACE() 函数清理,filter 模式在 PXF 解析列数据时直接清理
  • 集成 PXF/FDW 到 matrixdb/gpcontrib/pxf_fdw 中
  • 优化错误提示机制,在报错信息上下文中包含列信息和值信息

缺陷修复

  • 修复若干已知问题

6.7.0 发布介绍

发布时间:2025-12-31


增强与改进

  • 增加了 pg_audit 插件功能(文档)
  • 增加了 postgres_anonymizer 插件功能(文档)
  • 增强了内存用量调试机制
  • VSort 修改为 Push & Pop 模型以及替换为 Sorter v2
  • 优化了 VHashJoin 内表带有大量负载列时生成结果的性能
  • 支持了 expand 单个分区
  • mars3 支持了在 drop/truncate table 时终止持锁阻塞的 compact 任务
  • 放宽了 domino 流计算中 join 流唯一索引中列的顺序限制以及考虑等价关系
  • domino 允许 left join 流中引用右表的表达式目标
  • domino 允许了双流 join 使用不等值连接
  • MXUI 增加控制 PPROF 路由挂载的开关
  • MXUI 移除了 Dashboard 页面的错误日志卡片,替换为健康监测卡片
  • MXUI 修改了 Dashboard 页面的集群信息卡片,使其呈现更多集群信息
  • 优化器/执行器 支持了 Right Anti Join / Right Semi Join 功能,但尚不兼容 Parallel Mode
  • pg_rewind 支持了 mars3 表的增量修复

缺陷修复

  • 修复若干已知问题

6.6.1 发布介绍

发布时间:2025-11-17


增强与改进

  • split 分区增加了 trigger function 清理和报错时需手动清理的提示
  • mars3 新增了一个事务可见性检查优化
  • 标量顺序扫描增加了 RowRemoveFilter 信息
  • 优化了向量化执行引擎中大量 by-reference 负载列时向量化排序性能
  • Cylinder 在执行 apm 任务前,增加了自动创建 dblink 扩展的功能

缺陷修复

  • 修复若干已知问题

6.6.0 发布介绍

发布时间:2025-11-10


增强与改进

  • mars3 支持了 default-brin(文档)
  • 优化了 mars3 single 模式下的 xlog 大小
  • mars3 支持了并发 alter table split partition,split 的同时支持并发的读和写(暂时不支持 aoco 表,stream 流表,且父表带有 trigger 的情况)
  • 新增了修改 master/standby 端口的工具 mxchangeport(文档)
  • mxv 优化了归并算法的数据平铺操作, 可提升 vsort, vmergeappend, vmotion 的性能
  • mxv 优化了 vmotion 对 interconnect 接口的访问性能
  • mxv 优化了 vhashagg 在多分组键时的性能表现
  • mxv 优化了 partition 很小时的 VWindowAgg 性能
  • mxv 优化了 vhashagg 在大内存配额时的性能表现

缺陷修复

  • 修复若干已知问题

6.5.1 发布介绍

发布时间:2025-10-10


增强与改进

  • 支持了集群内所有机器自动时间同步
  • TDE 支持了 rotate master key
  • 新增检查集群内所有机器的数据库软件版本是否一致的命令行工具
  • 为计算 shared_buffers、max_connections 和 gp_vmem_protect_limit 的逻辑添加了日志
  • 优化了内容等宽的指针类型数据的反序列化操作
  • 优化了 vmotion 与 OFFSET 从句配合使用时的接收性能
  • 优化了 vmotion 因发送粒度过小导致的性能下降问题
  • 优化了 VSort 内存超量使用问题及返回结果的粒度控制
  • 优化了 vhashjoin 返回结果的粒度控制
  • 优化了带有比较大的 in list 时,orca plan 耗时过长的问题
  • orca 实现了对 mxnumeric 类型的比较及结果行数预估的适配
  • executor 通过 hash 算法优化 SAOP,并完成 orca 适配
  • sf 支持了 mxnumeric 类型的 InFilter
  • InFilter 支持了 not in
  • 向量化 fallback DatumInFilter 使用 hash 优化
  • 优化复制表生成并行扫描路径(Parallel Scan Path)的逻辑,避免不必要的数据移动

缺陷修复

  • 修复若干已知问题

6.5.0 发布介绍

发布时间:2025-09-01


新版本特性

  • MatrixUI 新增数据库启停可视化功能(文档)
  • YMatrix 新增透明数据加密(TDE),支持本地文件系统和 KMS 系统管理两种方式(文档)
  • 新增 mxnumeric 扩展,实现了 pg numeric 类型的高性能替代品
  • 将默认部署的 collate 从 en_US.UTF-8 改为 C
  • pg_basebackup 将 page checksum 检查默认关闭

增强与改进

  • OpenSSL 支持使用 MemoryContext 管理 openssl 依赖库使用的内存
  • Domino 流计算增加了 DROP STREAM ... CASCADE 语句,支持通过该语法级联删除多个流
  • Domino 流计算增加了双流 LEFT JOIN
  • 移除了 mars3 中非必要的计算 page checksum 的代码
  • planner 支持了满足特定条件时通过把 left join 的 limit 下推提升性能
  • default on update 支持了 statement_timestamp() 函数
  • 优化了 mxvector 数据处理粒度
  • 实现了 mxvector 的原生 bpchar 支持
  • mxvector 支持了 dynamic index / indexonly / bitmap scan
  • 新增了 GUC default_null_ordering, 用来控制 null 值的默认比较行为
  • mxnumeric: 优化了 AvgState 序列化能力
  • mars3 支持了 btree inorder scan
  • mars3 支持了增量 analyzedb 与增量 mxbackup
  • mars3 放松了unique mode 创建 btree 索引时的顺序限制
  • mars3 支持了 unique mode 场景下的 delete 操作
  • mars3 新增提供 mars3.default_storage_options, mars3.default_btree_options 两个GUC,用于指定默认的 mars3 存储参数

缺陷修复

  • 修复若干已知问题

6.4.11 发布介绍

发布时间:2026-07-03


问题修复

  • 修复若干已知问题

6.4.10 发布介绍

发布时间:2026-05-25


增强与改进

  • fastdd:优化外部参数下推能力,提升相关场景下的查询执行效率。
  • pxf_fdw:调整代码组织方式,改为以 git submodule 方式管理,便于独立维护与版本管理。
  • Matrixgate:优化内部性能统计组件 load_metric 的 goroutine 使用方式,降低运行时资源开销。
  • Matrixgate:引入 automaxprocs,当用户未显式设置 GOMAXPROCS 时,Matrixgate 会自动设置合理值,提升 CPU 资源使用效率。
  • Matrixgate:增强日志信息,在 set slot 相关日志中增加表名,便于问题定位与运维排查。
  • Matrixgate:优化 fasthttp 内部 flush chunk 逻辑,提升 HTTP 传输效率。
  • Matrixgate:优化内存使用,底层使用固定大小切片作为 buffer,减少内存分配与波动。
  • Matrixgate:新增参数 http-segmented-body,用于控制是否启用内存优化,默认启用。设置为 false 时,将回退到旧版 Matrixgate 的内存分配方式。
  • Matrixgate:新增参数 http-segment-size-kb,用于指定底层单个 slice 的大小,默认值为 1024KB。
  • Matrixgate:新增参数 write-buffer-size,用于指定 Matrixgate 到 segment 传输时单个 buffer 的大小。

问题修复

  • 修复若干已知问题

6.4.9 发布介绍

发布时间:2026-04-15


增强与改进

  • 新增了对 mars3 history 快照中 definitelydead 的支持,用于优化快照处理。
  • SOA 服务组件默认不再暴露 pprof 地址,可通过 sudo kill -USR2 -p <pid_of_soa_program> 信号临时开启或关闭。
  • supervisor 升级内部依赖 github.com/cilium/ebpf 以应对潜在安全风险(PR25)。
  • MatrixUI 默认关闭 pprof 端口,并新增控制 pprof 路由挂载的开关。
  • Domino 在仅含 decoder 无流的节点上可正确保留 snapshot 文件。
  • 禁用了使用 mxinitstandby 删除 preferred_role=m 的主节点的操作,迁移 master 节点应使用 mxmoveseg,以避免误操作导致难以恢复。
  • mxshift DDL 迁移不再迁移 temp sequence。

问题修复

  • 修复若干已知问题

6.4.8 发布介绍

发布时间:2026-02-24

缺陷修复

  • 修复若干已知问题

6.4.7 发布介绍

发布时间:2026-01-09


缺陷修复

  • 修复若干已知问题

6.4.6 发布介绍

发布时间:2025-12-15


增强与改进

  • 增加了 pg_audit 插件功能(文档)
  • 增加了 postgres_anonymizer 插件功能(文档)
  • 增强了内存用量调试机制
  • mars3 支持了在 drop/truncate table 时终止持锁阻塞的 compact 任务

缺陷修复

  • 修复若干已知问题

6.4.5 发布介绍

发布时间:2025-11-20


缺陷修复

  • 修复若干已知问题

6.4.4 发布介绍

发布时间:2025-11-10


增强与改进

  • 降低了 domino worker 退出时的日志级别(原来是 FATAL: terminating connection due to administrator command)

缺陷修复

  • 修复若干已知问题

6.4.3 发布介绍

发布时间:2025-10-10


增强与改进

  • 为计算 shared_buffers、max_connections 和 gp_vmem_protect_limit 的逻辑添加了日志
  • 优化复制表生成并行扫描路径(Parallel Scan Path)的逻辑,避免不必要的数据移动

缺陷修复

  • 修复若干已知问题

6.4.2 发布介绍

发布日期:2025-09-01


增强与改进

  • 移除了 mars3 中非必要的计算 page checksum 的代码

缺陷修复

  • 修复若干已知问题

6.4.1 发布介绍

发布日期:2025-08-01


增强与改进

  • License:新部署集群的免费使用期限从 3天 延长到 14 天
  • mxinitstandby:加入删除当前 standby 的功能 (文档)
  • 从本版本开始,数据库升级后会自动升级 matrixmgr 扩展,无需再手动升级
  • Domino:改善了调度模块引起的流延迟的情况
  • 新增 orca 支持 mars3 索引
  • 支持了两阶段 distinct 操作
  • 加固了 relcache 内存安全使用
  • 集群初始化默认关闭 autofreeze
  • 增强了 mars3 的 analyze 逻辑,采用基于行的采样
  • 新增了 mars3 在分区表上的 drop index 的功能

缺陷修复

  • 修复若干已知问题

6.4.0 发布介绍

发布日期:2025-06-26


新版本特性

  • License 管理功能全新升级
  • 新增支持 Centos9 操作系统
  • 新增支持 Cgroup V2
  • Resource Group 新增支持 IO_LIMIT 功能
  • MatrixUI 新增磁盘空间监控,包括 dashboard 热力图、4 个磁盘告警、拓扑页面显示 Util
  • MatrixUI 支持显示 QE 上的查询阻塞关系
  • 默认使用 Domino v2 流计算创建流(文档)
  • 增量在线备份支持在集群发生 failover/recover 时正常恢复(文档)
  • 新增 mx_eager_memory_release 开关,积极降低空闲进程的内存占用(默认关闭)
  • 支持通过 ALTER TABLE ... SET TABLESPACE 语句迁移 mars3 表数据
  • 支持了复制表的并行扫描(默认关闭)
  • 默认打开了对系统表和非系统表的 auto-vacuum 功能
  • golang 及工具链升级至 1.24 版本

增强与改进

  • 确定了 Domino v2 的 TLog 格式,实现 buffered 读写,显著提升磁盘 IO 性能
  • 改造 mxstop 为流式执行并输出进度信息。
  • 增量在线备份支持了部分 tablespace 功能 (文档)
  • mars3 支持了 roi 索引
  • mars3 支持了自动转换 btree/brin 到 mars3_btree/mars3_brin 索引
  • mars3 的默认 relfile version 调整为 v1
  • mars3 分区表支持了 drop index
  • mars3 支持了共享 zstd context 以进一步提高压缩效率
  • orca 中禁用了 mars3 表上的 dynamic bitmap scan
  • 支持了修改 primary key 时索引类型为 mars3_btree 的情况
  • mxrule 支持了根据 distincts 个数判断是否投影的能力

缺陷修复

  • 修复若干已知问题

6.3.0 发布介绍

发布日期:2025-04-18


新功能发布

  • 支持 mxaddmirrors 非平衡部署方案 (文档)
  • 支持图形化页面的 addmirror 功能(文档)
  • 支持增量冷备份和恢复功能(文档)
  • mxstate 系列增强,增加 -s 、-p -H 等参数
  • mxstart 新增进度可视化功能,增加了 -C 和 -P 参数
  • 库内流升级至 v2 版本(截止到 failover 部分,默认仍然 v1)
  • mxui 中 MatrixGate 列表集成了删除任务功能
  • Matrixshift 迁移 DDL 新增支持 USING、WITH、ECODING 属性
  • 支持递归给分区表创建扩展统计信息
  • 支持应用 ndistinct 扩展统计信息预估复合条件/索引的结果集数据量的能力

增强与改进

  • 在系统 OOM 时,replication 服务不会首先 OOM 崩溃
  • 升级 ETCD 到 3.5.x 并通过疲劳测试验证
  • Golang toolchain 升级到 1.23.7
  • 升级 go-common-libs & matrixapis,清理 CVE
  • mxbox 重构数据库连接层
  • pgvector 升级至 v0.8.0

缺陷修复

  • 修复若干已知问题

6.2.4 发布介绍

发布日期:2025-03-03


增强与改进

  1. 优化器
    • 优化了 ROI 逻辑,当从 ROI 找不到对应的分区时放弃优化时不生成dummy plan
  2. 工具
    • 优化了 mxstart 启动节点之前 probing all segments 的成功率

错误修复

  • 修复若干已知问题

6.2.3 发布介绍

发布日期:2025-02-24


增强与改进

  1. mxbox
    • 优化了 etcd 中关于集群状态的冗余信息,减轻对 etcd 服务的写入和更新压力,增强集群稳定性
    • 扩充了 mxbox client deployer get-cluster-service 命令行工具的功能,除了可以显示当前活跃的 cluster/shard 服务地址,也可以显示待机中的非活跃高可用服务的信息。同时增加一个必选参数 --service-name,取值为 cluster 或 shard
    • 将 SOA 服务发现的信息缓存在 deployer 服务中,其他服务通过访问 deployer 的 API 接口来获取服务发现结果,降低了对 etcd 直接访问的压力,改善了大规模集群下的操作稳定性
    • 高可用服务进程 cluster/shard/replication/deployer 会更积极地释放物理内存到操作系统,降低内存占用
    • 当 mxstart/mxstop 操作时,如果集群规模很大,现在会分批执行 shard/replication 的启动,以避免所有服务并发启动对 etcd 形成瞬时的超高负载,增强了操作稳定性
    • 当某个 shard 下的 primary/mirror 都发生宕机时,现在会让 gp_segment_configuration 中保留最后一个 primary 角色的节点的状态为 UP,以确保数据库重启时能够仍然能启动成功
    • mxrecover 工具增加了 -s 选项,可以指定要恢复的 shard
    • mxstate 工具增加了 -e 选项,用于输出处于非正常状态下的 segment 信息
  2. 灾难恢复
    • 在 subscriber 进程的配置文件里删除了 restore_point_creation_interval_minute,增加了 restore_point_creation_interval (必选)参数,用户可以自行配置同步间隔
    • mxaddmirrors plan 现在支持对非平衡部署的集群生成 mirror 节点分布。建议对非平衡部署的集群使用自定义分布时,应经由人工审核并调整为最合理的 mirror 布置方案后使用
    • 改变了 mxaddmirror 自定义配置的使用方式。用户需要先 mxaddmirrors init,然后再 mxaddmirrors config --init-file <path_to_file> 来生成 config 模版。现在即使对于非平衡部署的集群,按照新的使用方式,也可以生成合理的配置方案
    • 对于非平衡部署的集群,mxinitstandby 允许将 standby 添加到一台没有部署 segment 节点的空白物理机上
    • 对于非平衡部署的集群,mxaddmirror 允许在自定义配置方式下,将 mirror 添加到一台没有部署 segment 节点的空白物理机上

错误修复

  • 修复若干已知问题

6.2.2 发布介绍

发布日期:2025-01-10


增强与改进

  1. MatrixShift
    • 如果配置文件没有指定任何迁移动作,只打开 verify 功能时,对一个非 mxshift 迁移过来的数据库新增报错提示
    • 当配置文件的 scope 段落里,存在重复的表或者父表和某些子表同时出现在 table-list 中时,新增自动去除重复的表且报出 warn 警告的能力
  2. MatrixGate
    • mxgate 到 segment 节点之间的数据传输调整为默认不启用压缩,以节省更多的内存资源。原默认值为启用压缩
    • transfer 模式下,允许 mirror 节点为 Down 状态时迁移数据
  3. mxbox
    • 当 mxrecover 在跳过某些 shard 时,新增跳过原因输出
    • 用 mxrecover 对集群进行 rebalance 操作时,可通过添加 CHECKPOINT 缩短该操作带来的数据库停机时间,同时可通过增加 --skip-checkpoint 参数跳过此行为
    • 用 mxrecover 对集群进行 rebalance 操作时,改进了该命令在控制台的输出内容格式
    • mxrecover 增加 --prepare-timeout 参数。在 mxrecover 启动时,可通过 etcd 采集集群状态信息的超时情况, 默认为 1 分钟
  4. mxctl
    • 当安装部署时,mxctl setup collect 命令会检查 localhost 是否可以被解析为一个本地 loopback 地址,如果不能则报错

错误修复

  • 修复若干已知问题

6.2.1 发布介绍

发布日期:2024-12-20


增强与改进

  1. mxbox
    • mxstart 的默认超时时间从1分钟增加到5分钟。仍然支持用户用 -t 参数自定义超时时间。
    • 支持用户自定义 postmaster 进程启动时的环境变量。
    • 当集群出现 double failure 时,允许通过重启数据库启动最近的 primary 节点,而不是启动失败。
    • 提升了 supervisor 服务和 etcd 进程的 max open files 数,解决了在超大规模集群下 etcd 服务频发 too many open files 错误的问题。(#6ca5293dcd0)
    • 新部署集群时,在 supervisor 的服务配置里删除了 etcd 服务的 --enable-pprof 参数,使得 etcd 的服务更稳定,cpu 占比更低。

错误修复

  • 修复若干已知问题

6.2.0 发布介绍

发布日期:2024-12-09


增强与改进

  1. MatrixUI
    • 安装部署或者扩容新机器时,会主动检查 /etc/ssh/sshd_config 中是否含有 AllowUsers/AllowGroups/DenyUsers/DenyGroups 等可能会导致安装过程中集群内主机 ssh 互信操作失败的配置项目,并给出具体的错误信息和修改提示
  2. MatrixShift
    • 对配置文件引入更严格的检查,错误的配置项会在 mxshift 启动时报错并提示。例如 disable-connector = true 应该写在 [scope] 段落中,但错误的写在其他段落中,mxshift 启动时会报错并提醒
  3. mxbox
    • moveseg / initstandby 工具可以检测 --add 子命令添加的主机是否已经在物理机集群里,并给出错误信息
    • 主机重启或首次运行 YMatrix 集群时,能够自动创建资源组 cgroup 依赖的相关路径

错误修复

  • 修复若干已知问题

6.1.1 发布介绍

发布日期:2024-11-19


增强与改进

  1. MatrixGate
    • mxgate 优化:支持将 segments 连接超时作为可配置的 GUC
  2. MatrixShift
    • mxshift 优化:/tmp 没有权限时使用 data dir
  3. mxbox
    • 支持自定义非平衡部署
  4. MatrixUI(文档)
    • 支持自定义非平衡部署的 UI

6.1.0 发布介绍

发布日期:2024-10-31


增强与改进

  1. MatrixShift

    • mxshift 优化:从 gp6 数据迁移能够跳过 external table
    • mxshift 优化:compresstype 从 zlib 自动映射为 zstd 时,compresslevel 强制置为 1
  2. 灾难恢复

    • 删除了 subscriber 配置文件中无用的配置项 slot
    • 调整了日志中的内容

错误修复

  • 修复若干已知问题

6.0.0 发布介绍

发布日期:2024-10-11


新特性发布

  1. 新增流计算功能(文档)
    • 支持扩维计算,聚集计算,多级流计算,双流关联计算等(文档)
    • 支持多种配置和管理能力(文档)

2. 流批一体架构

  • 数据库融合流处理和批处理优势,支持实时数据和历史数据的并行处理。
  1. 新增灾难恢复集群(文档)
    • 支持跨数据中心的数据传输与同步
    • 支持灾难恢复集群的运行状态监控。
    • 支持手动将备份集群切换为服务集群,可将应用全部切换至此集群进行业务正常运行。
    • 此灾难恢复集群的容灾指标如下:
      • RPO(Recovery Point Objective,恢复点目标) 用户可以指定一个相对合适的值以便在不影响源集群性能的情况下将此目标设置到分钟级。
      • RTO(Recovery Time Objective,恢复时间目标) 支持数据库热备实现,RTO 可达秒级~分钟级。

性能增强

  1. TP 性能增强

    • 新增支持 Blocksize 8K,可配置数据块(block)为 8KB,大幅提升小数据量事务处理性能。
  2. MARS3 存储引擎增强

    • 新增支持 unique key,upsert,row-level lock 能力。
  3. 向量化引擎增强

    • 新增支持 Window Function 向量化。

已知问题

  1. 分区较多时,查询会触发数据库 OOM。

  2. 在 KILL QUERY 的场景下,recovering 过程可能会出现 crash 问题。