版本发布历史
5.0.0 发布介绍
-
全新数据库架构:
-
新增向量化执行引擎(文档):
- 支持批处理:利用批处理的方式,可以有效减少函数调用等执行开销
- 充分利用硬件及编译器能力:使用 CPU 缓存友好的算法,从而充分利用硬件以及编译器的优化能力,如生成 SIMD(Single Instruction, Multiple Data)指令
- 支持多种算子:实现了 Scan、Sort、Aggregate 等算子,对于同一算子也有不同的算法实现,有效覆盖绝大部分查询场景,提升查询性能
基于以上三点核心原理,相比面向行处理的传统执行引擎,向量化执行引擎可实现 1 到 2 个数量级的性能提升。
-
MARS2 存储引擎性能大幅优化,并修复已知 bug(文档):
- 优化压缩策略,降低内存使用量
- 优化分区表写入,降低内存使用量
- 优化查询过滤效果,减少不必要的 I/O 消耗
- 优化数据量估计,执行计划的选择更精准
- 增强聚合能力,支持 uniquemode 和 IN 表达式
- 修复 uniquemode 合并结果顺序问题
- 修复并行扫描快照对齐问题
- 修复一处内存泄漏
-
新增编码链压缩算法(文档):
- 支持多种编码、压缩算法:支持 lz4,zstd,simple8b,doubledelta,gorilla,deltazigzag,floatint 等编码、压缩算法,可灵活组合以上算法,以充分提升压缩率
- 支持按列自定义编码、压缩算法组合
- 配合向量化执行引擎使用提升数据压缩 / 解压速度:在 SSB 场景下解压速度是 LZ4 的 3 倍
编码链压缩方案可大幅减小空间占用,降低成本。在新能源汽车场景,压缩率是使用 LZ4 压缩算法方案的 3.9 倍,在 TSBS(Time Series Benchmark Suite)场景,是 LZ4 的 2.7 倍。
- 新增平滑扩容功能(文档):
- 支持不停机完成扩容任务
- 支持自定义数据节点集合(Segment Set),实现对部分表的重分布
- 支持并行执行表数据重分布
- 支持连接未重分布表与已重分布表
- 升级数据迁移工具 mxshift(文档):
- 支持全量迁移:以数据库为单位,实现从 Greenplum 5 / Greenplum 6/ YMatrix 集群并行迁移数据到新的 YMatrix 集群
- 支持反向迁移:从 YMatrix 到 Greenplum 5 / Greenplum 6 反向迁移
- 支持增量迁移:通过 WHERE 条件实现增量数据迁移
- 图形化界面升级:
4.8.1 发布介绍
特性发布
错误修复
- 存储引擎:
- MARS2 表参与 nestloop join 时,由于索引扫描参数传递不全导致结果错误。
- 资源组:
- 修复资源组在处理 SIGTERM 时产生操作崩溃的问题。
- 优化器:
- 修复 CTE 由于不支持并行执行产生操作崩溃的问题。
- 修复启动 ORCA 时不正确处理子计划计算的错误。
- 执行引擎:
- 修复 Share CTE 由于不正确处理 Direct Dispatch 产生操作卡死的问题。
4.8.0 发布介绍
特性发布
- MatrixGate 升级:
- 图形化界面新增:
- mxbackup 支持 S3 对象存储插件,将数据上传到 S3 对象存储(文档)
- mxshift 功能增强(文档)
- 新增日志采集及打包工具 mxpacklogs(文档)
- Ubuntu20 平台支持(文档)
- Grafana 监控项增强(文档)
- 修复已知 bug
错误修复
- 优化器:
- 修复 nestloop join 参数化路径计划中处理重复扫描产生的错误。
4.7.5 发布介绍
错误修复
- MatrixManager:
- 修复获取慢查询 SQL 实际执行时间不精确问题。
4.7.4 发布介绍
错误修复
- 优化器:
- 修复查询计划中 Redistribution Motion 的分布键包含 Param 时的错误。
4.7.3 发布介绍
错误修复
- 存储引擎:
- 修复镜像节点中的 MARS2 表处理 vacuum 时没有完全删除所需文件的问题。
4.7.2 发布介绍
错误修复
- 优化器:
- 修复 Redistribution Motion 执行时涉及常量值的错误问题。
4.7.1 发布介绍
错误修复
- MatrixManager:
- 修复 mxstat 错误保留快照时产生操作崩溃的问题。
4.7.0 发布介绍
特性发布
错误修复
- 执行引擎:
- 修复 Copy 没有正确处理 Interrupt 导致操作卡死的问题。
- 修复创建大量分区表时的内存溢出问题。
- 存储引擎:
- 修复 Master Only AOCS 表对应 relsize 估计不准问题。
- 工具:
- 修复 Analyze 没有正确处理特殊字符的问题。
- 优化器:
- 修复 Recursive CTE 在 Merge Join 下产生错误查询计划的问题。
4.6.1 发布介绍
- MatrixGate 升级:
- 对于 Kafka 接入的 JSON 数据, 支持使用 dml-template 参数自定义 JSON 至数据列的映射关系
- 新增 Kafka 身份认证机制。使用 SASL框架,目前支持 SCRAM 验证
- 修复已知 bug
4.6.0 发布介绍
- MARS2 存储引擎聚集查询性能大幅优化
- 图形化界面全面升级:
- MatrixGate 升级:
- Grafana 监控页面升级,支持 Prometheus 数据监控(文档)
- 国产化平台支持:银河麒麟 V10 操作系统 + ARM 平台支持
- 修复已知 bug
4.5.0 发布介绍
- MARS2 存储引擎隆重发布,UPSERT 场景优化显著,并且后台自动压缩,省去了转表过程(文档)
- 新增查询统计组件,可以用来统计查询使用时间和资源消耗(文档)
- MatrixGate 升级(文档):
- 支持任意列 timestamp 转换;
- 新增 watch 功能,可以查看 mxgate 写入数据的实时以及历史指标信息;
- UPSERT 支持 boolean 类型。
- mxbench 升级,用户可以灵活配置指标类型、采集频率、空值率、随机度等(文档)
- 新增滑动窗口流计算,流数据的实时分析与监控,并支持订阅发布(文档)
- Kubernetes 支持,可以在 k8s 上部署 MatrixDB 集群(文档)
4.4.0 发布介绍
- MatrixGate 升级(文档)
- UPSERT 支持去重
- 新增
--insert-timeout
和--request-timeout
参数来控制超时,防止高负载场景因资源耗尽导致雪崩
- Kafka 数据接入流程重新设计,支持 CSV 和 JSON 两种数据格式和映射关系设置(文档)
- 自动分区管理页面升级(文档)
INSERT INTO SELECT
语句支持并行扫描- Grafana 监控页面升级,监控面板拆分为系统面板和数据库面板,并增加了中文描述(文档)
- PXF 升级到 6.2.1,在大量小文件场景吞吐率有 2~5 倍提高
4.3.10 发布介绍
4.3.10 修复了如下 bug:
- segment crash 后 mirror 无法启动的问题
- 特定情况下 UDF 访问 catalog 导致 QD crash 的问题
- PXF 访问 Hive ORC 添加 filter crash 的问题
4.3.0 发布介绍
- 持续聚集隆重上线
- 持续聚集通过物化视图实时同步源表数据并做排序归并,使聚集查询更高效(参考文档)
- 空间数据类型支持
- 开发了增强版的 PostGIS 组件,可以完美支持空间数据类型的存储和计算(参考文档)
- MatrixGate升级
- 可视化数据表上线
- 管理页面里新增了可视化数据表版块,可以方便查看集群数据库与表的状态(参考文档)
- 自动分区图形化管理
- 分区表可以通过图形化界面设置模板和自动化分区管理策略(参考文档)
- MARS 存储引擎升级
- tag_id 支持数据类型在整型基础上新增了 text,varchar,name,numeric;并且支持多分组键,即用多个列作为 tag_id
- MARS 存储引擎支持 merge scan 操作,可以通过合并方式来对已有数据做更新
4.2.0 发布介绍
- MARS 引擎再优化
- 智能压缩算法上线,根据数据类型和特征判断是否启用压缩。使用新编码压缩后,存储占用空间下降 70%。
- 查询性能提升,基于时间戳排序的特定查询,时延下降千倍,从秒级降到“毫秒级”。
- 查询内存使用量大大的降低,
SELECT
语句,内存使用率下降 90%。
- MatrixGate 支持 UPSERT,适用于如下场景(使用方法请参考文档):
- 设备可能重复发送数据或更正错误时序数据
- 不同类别的指标数据分批发送,实现自动合并
- 冷热分级转换支持归并压缩:为方便用户在分区表做热转冷的数据转换,可以将多个分区表合并到一起。一来能降低分区管理的压力,也利于 DBA 进行维护。使用方法请参考文档
- 并行备份恢复“工具”首度公开亮相:YMatrix Database 隆重推出 mxbackup 和 mxrestore 两大工具,相比继承自 PostgreSQL 的 pg_dump 和 pg_restore,支持并行处理,备份恢复效率更高。使用方法请参考文档
4.1.0 发布介绍
- 新增 mxkv 用户自定义数据类型做 kv 存储,方便扩展附加字段,相比 JSON 类型性能更好
- 支持 Kafka 数据接入和图形化操作界面
- 提供分区自动化管理函数。用户可以自定义分区策略,后台进程自动完成分区管理
4.0.3 发布介绍
- 增加多机安装可视化部署
- 修复 MARS 增加分区的 bug
4.0.2 发布介绍
- MARS 压缩默认启用
- 升级后 supervisor.conf 平滑过渡
- gapfill 并行优化
4.0.1 发布介绍
- 修复 build_timeseries_table 时未对列名做转义的 bug
- MARS 引擎优化与 bug fix
4.0.0 发布介绍
YMatrix Database 4.0.0 已正式发布,新版包括如下新特性:
- MARS 引擎
MARS 引擎是自研的存储引擎。该引擎包含如下特性:
- 列式存储
- 数据编码和压缩
- 聚集下推优化
- 无索引扫描的优化
在时序场景中,适合存储历史冷数据,基于时间戳的聚集查询性能极高。
MARS 目前只支持插入,不支持更新和删除。
- 多节点自动化部署
在 YMatrix Database 3系统单节点自动化部署的基础上,实现了多节点自动化部署。包括:
- 添加集群节点
- 配置每个节点 Segment 数量
- 配置是否启用数据自动镜像
只用不到 5 分钟,即可部署好一个集群。
具体使用方法请参考YMatrix Database 4集群部署。
- 冷热分级存储 UDF 为方便用户为时序表建立分区、维护分区表、冷热数据转换,实现了关于创建分区模板、建立分区、替换冷热分区的一整套管理接口。
具体使用方法请参考冷热分级存储。
- time_bucket_gapfill 时序组件 MatrixTS 中,在 time_bucket 函数基础上,增加了 time_bucket_gapfill 函数。可以为缺失的时间间隔按照规则填充。
目前支持两种填充规则:
- locf:用聚合组中之前出现的值填充
- interpolate:对缺失的值做线性插值填充