MatrixOne v0.8.0 发布报告
热烈祝贺 MatrixOne 的 v0.8.0 版本于 2023 年 6 月 30 日正式发布!
在历经四个月的深度研发之后,MatrixOne 在性能、扩展性和可用性方面实现了显著提升。此次更新的亮点在于 Proxy 模块的引入,它使得 MatrixOne 能够准确地将各类 SQL 请求和负载类型与相应的 CN 组进行关联,从而在租户隔离、读写分离、事务处理(TP)/分析处理(AP)负载分离等关键功能上取得了显著提升。值得一提的是,这次发布的 0.8.0 版本是 MatrixOne 在全面公开发布前的最后一个版本,同时也作为 MatrixOne 产品的公测 Beta 版,我们诚挚邀请各位用户和开发者下载试用,期待你们的反馈和建议。为了这一里程碑式的进步,让我们共同举杯庆祝!
Docker
- 通用镜像:
docker pull matrixorigin/matrixone:0.8.0
- 如果你使用的是中国大陆的网络,你可以拉取阿里云上的 MatrixOne 镜像:
docker pull registry.cn-shanghai.aliyuncs.com/matrixorigin/matrixone:0.8.0
重点关注
性能提升
- OLTP 性能:MatrixOne 在点查、插入等常见 OLTP 场景中性能提升数倍,达到 MySQL 单机版本中的性能。
- OLAP 性能:MatrixOne 进一步提升 OLAP 性能,在 TPCH 等常见 OLAP 的 Benchmark 中已经可以对齐行业领先 OLAP 数据库水平。
- 扩展性:MatrixOne 实现 CN 计算节点秒级扩容,且扩容后 OLTP 及 OLAP 的性能基本线性增长。
可用性提升
- 数据格式向后兼容性:从 0.8.0 版本开始,MatrixOne 的所有后续版本都将与 0.8.0 版本的底层数据存储格式保持兼容。在进行版本升级时,你无需删除旧的数据目录或重新导入数据。
- 简化的部署和运维工具:本次迭代提供了极简化的部署及运维命令行工具
mo_ctl
,帮助用户快速检查基础硬件环境,初始化配置及一键安装部署。不论是单机版本还是分布式版本用户都不再需要通过复杂的 Linux 及 K8s 原生命令来进行部署及运维。 - 提升 MySQL 兼容性:增加了与 MySQL 兼容的大小写模式,并提供了从 MySQL 到 MatrixOne 的 SQL 转换工具。同时,MatrixOne 补充了大量
information_schema
库的表结构,大大降低了从 MySQL 进行迁移的适配工作量。 - 悲观事务支持:为了更好地适应当前 OLTP 类应用事务的使用习惯,MatrixOne 增加了悲观事务的支持。此外,MatrixOne 还支持 SI 和 RC 隔离级别。你无需针对乐观事务可能出现的冲突设置重试机制。同时,MatrixOne 也增加了对
Select for update
命令的支持。
最新特性
- 新增窗口函数
RANK()
,ROW_NUMBER()
和DENSE_RANK()
。 - 新增
BINARY
类型和相关函数。 - 新增发布订阅功能。
- 新增
PUBLISH
/SUBSCRIBE
函数。 - 支持
INSERT...ON DUPLICATE KEY UPDATE
语句。 - 新增
Sequence
。 - 新增
ALTER TABLE
。 - 支持多层外键。
- 新增
RAND()
函数。 - 新增全局参数持久化功能。
- 支持通过修改密码,提升账户安全防护。
- 实现了部分
Partition By
分区表功能。
仍存在的已知问题
- 0.8.0 之前的版本数据格式不兼容,无法直接升级。
- 次级索引未实现加速查询。
- 内存泄漏偶发,可能导致系统内存溢出。
- 工作负载隔离标签当前仅支持 JDBC。
- 分布式版本中 TN 存在单点风险。
- 高并发负载下偶发系统卡住。
- 悲观事务仍存在一些较大的问题。
贡献者们
欢迎新加入的贡献者
- @zengyan1
- @forsaken628
- @gavinyue
- @gouhongshen
- @WitcherTheWhite
我们感谢您的贡献,欢迎来到 MatrixOne 社区!
更详细的更新日志
https://github.com/matrixorigin/matrixone/compare/v0.7.0…v0.8.0