MatrixOne v0.8.0 Release Notes

We are excited to announce MatrixOne 0.8.0 release on 2023/6/30.

After four months of intensive development, MatrixOne has achieved significant performance, scalability, and usability enhancements. This update’s highlight is the Proxy module’s introduction, which accurately associates various SQL requests and load types with corresponding CN groups. This results in notable improvements in critical functions such as tenant isolation, read-write separation, and separation of transaction processing (TP) and analytical processing (AP) loads. Worth noting is that this 0.8.0 release is the final version of MatrixOne before its full public launch and also serves as the public Beta version of the MatrixOne product. We cordially invite all users and developers to download, test, and give feedback. Cheers!

Docker

  • General Image:
  1. docker pull matrixorigin/matrixone:0.8.0
  • If you are using the network in mainland China, you can pull the image on Alibaba Cloud:
  1. docker pull registry.cn-shanghai.aliyuncs.com/matrixorigin/matrixone:0.8.0

Key Points

Performance

  • OLTP Performance: In common OLTP scenarios such as point queries and insertions, MatrixOne’s performance has improved several times, reaching the performance level of MySQL in the standalone version.
  • OLAP Performance: MatrixOne has further improved its OLAP performance. Standard OLAP benchmarks such as TPCH are comparable to the performance of leading OLAP databases in the industry.
  • Scalability: MatrixOne implements second-level expansion of CN computing nodes, and after expansion, the performance of OLTP and OLAP increases linearly.

Improved Usability

  • Backward Compatibility of Data Format: Starting from version 0.8.0, all subsequent versions of MatrixOne will be compatible with the underlying data storage format of version 0.8.0. When upgrading the version, you no longer need to delete or re-import the old data directory.
  • Simplified Deployment and Administration Tools: This iteration provides a simplified deployment and administration command-line tool, mo_ctl, which helps users quickly check the basic hardware environment, initialize configurations, and perform one-click installation and deployment. Both standalone and distributed version users no longer need to use complex Linux and K8s native commands for deployment and maintenance.
  • Improved MySQL Compatibility: An upper and lower case mode compatible with MySQL has been added, and a tool for converting SQL from MySQL to MatrixOne is provided. Additionally, MatrixOne has added many table structures in the information_schema library, significantly reducing the adaptation work required for migration from MySQL.
  • Support for Pessimistic Transactions: To better adapt to the current OLTP application transaction usage habits, MatrixOne has added support for pessimistic transactions. Also, MatrixOne supports SI and RC isolation levels. There is no need to set a retry mechanism for potential conflicts arising from optimistic transactions. At the same time, MatrixOne has added support for the Select for update command. (Experimental)

Other Features

  • Support window function RANK(), ROW_NUMBER() and DENSE_RANK().
  • Support the BINARY type and related functions.
  • Support data sharing between tenants and PUBLISH/SUBSCRIBE functions.
  • Support INSERT...ON DUPLICATE KEY UPDATE statement.
  • Add Sequence and related statements.
  • Support ADD [COLUMN] | DROP [COLUMN] in the ALTER TABLE statement.
  • Support multi-layer foreign key.
  • Support RAND() built-in function.
  • Support setting global variables in configuration files.
  • Secure initial MatrixOne account by password replacement.
  • Several types of partitioning are supported. (Experimental)

Known Issues

  • Data formats of versions before 0.8.0 are incompatible and cannot be upgraded directly.
  • Secondary indexes have not been improved in any performance.
  • Occasional memory leaks may lead to system out-of-memory(OOM) errors.
  • Workload isolation tags are currently only supported in JDBC.
  • TN represents a single point of failure for distributed version.
  • Occasional system hang-ups under high-concurrency workloads.
  • Pessimistic transaction has a few fatal bugs remaining.

Contributors

New Contributors

  • @zengyan1
  • @forsaken628
  • @gavinyue
  • @gouhongshen
  • @WitcherTheWhite

We appreciate your contribution! Welcome to the MatrixOne community.

Full Changelog

https://github.com/matrixorigin/matrixone/compare/v0.7.0…v0.8.0