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

  • 通用镜像:
  1. docker pull matrixorigin/matrixone:0.8.0
  • 如果你使用的是中国大陆的网络,你可以拉取阿里云上的 MatrixOne 镜像:
  1. 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