Skip to content

Releases: matrixorigin/matrixone

MatrixOne-v0.8.0

05 Jul 15:48
3bd05cb
Compare
Choose a tag to compare

We are excited to announce MatrixOne 0.8.0 release. After four months' development, MatrixOne completed its architecture design with Proxy module, which ensures workload and tenant isolation. MatrixOne has also made much improvement with its OLTP and OLAP performance, along with its scalability, stability and user experience. This is also a Beta release, open for developers for testing and feedback. Cheers!

Docker

docker pull matrixorigin/matrixone:0.8.0

Key Points

Performance

-OLTP performance: 3-7x improvement, reaching MySQL performance in standalone version.
-OLAP performance: SSB and TPCH performance align with Snowflake and Clickhouse.
-Scalability: archiving near-linear performance growth with CN horizontal scaling.

Improved Usability

-Backward compatibility of data storage format.
-Deployment and administration tool for both standalone and distributed version.
-Improved MySQL compatibility in case sensitivity, information_schema and DDL statements.
-Read committed with pessimistic locking implemented in transaction mode. (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:

-0.8.0 data format is not compatible with the previous versions.
-Secondary Key doesn't improve any performance.
-Memory leak occasionally happens and may lead to an OOM error.
-Workload isolation is only supported by JDBC.
-DN is a single point of failure for distributed version.
-Occasional system hung under high concurrency workload.
-Pessimistic transaction has a few fatal bugs remaining.

New Contributors

Full Changelog: v0.7.0...v0.8.0

matrixone-v0.7.0

23 Feb 05:45
6d4bd17
Compare
Choose a tag to compare

We are excited to announce MatrixOne 0.7.0 release. MatrixOne has made much progress with its stability and performance in this release, along with an increase in MySQL compatibility and many new features. Cheers!

Docker

docker pull matrixorigin/matrixone:0.7.0

Features

-Support foreign key
-Support adding "cluster by" in DDL statements
-Add a MYSQL_COMPATBILITY_MODE to manage MySQL-compatible behaviors
-Improve Unique Index behavior
-Support to load data from the client machine
-Support Alter View
-Add query_result() function to get saved query results
-Support account suspending
-Support system table sharing to accounts
-Add aggregation function: group_concat
-Add built-in functions: format, replace, curdate, field, substring_index

Known Issues:

-0.7.0 data format is not compatible with the previous versions.
-Transactional performance doesn't compete with mature DBMS products.
-Secondary Key doesn't improve any performance.
-Only support up to 100GB benchmark testing.
-Out of memory(OOM) error or context deadline will occur after 5 hours of frequent testing.
-Query as count(*) performance is unsatisfactory.
-Loading several GB tables in distributed cluster will result in OOM error.

Contributors

This release includes 656 commits by 43 authors.

New Contributors

Full Changelog

v0.6.0...v0.7.0

matrixone-v0.6.0

29 Nov 09:51
Compare
Choose a tag to compare

We are excited to announce MatrixOne 0.6.0 release. In this release, MatrixOne has upgraded to a disaggregated compute and storage architecture, with a cloud native HTAP engine and many new features. Cheers!

Docker

docker pull matrixorigin/matrixone:0.6.0

Features

  • Support distributed ACID transaction with a Snapshot Isolation level.
  • Support TEXT, BLOB, TIME, JSON data type.
  • Support multi-tenancy with account, user and role.
  • Support VIEW.
  • Support Java, Python, Golang connector and Mybatis, Spring JPA, SQLAlchemy ORM connection.
  • Support import CSV and JSON data from local file system and cloud S3 storage.
  • Implemented a MatrixOne dedicated backup tool modump.
  • Support composite primary key, unique key and auto-increment constraint.
  • Add system_metrics database in the catalog to monitor instance status.
  • Add system database in the catalog to record user statements and system logs.
  • Support timezone.
  • Support TLS encrypted connection.
  • Support pre-compilation statements PREPARE, EXECUTE, DEALLOCATE.
  • Support EXPLAIN ANALYZE.
  • Support UNION, UNION ALL, INTERSECT, MINUS operators.
  • Support TEMPORARY TABLE.
  • Support EXTERNAL TABLE.
  • Support PARTITION BY.
  • Add many system variables and tables to maintain MySQL compatibility.
  • Add many new JSON, Datetime functions.

Known Issues:

  • 0.6.0 data format is not compatible with the previous versions.
  • Transactional performance doesn't compete with mature DBMS products.
  • Composite Primary Key, Unique Key and Secondary Key doesn't improve any performance #6028 .
  • Insert/update into select having more than 100MB data will fail in a distributed setting #6780.
  • Execute load data in a loop may cause out of memory #6793.
  • Data race happens in a distributed setting #6855, #6926.
  • Background jobs have a low probability causing user transaction being aborted due to r-w conflict #6049.
  • Insert file into BLOB type might fail #6302.

Contributors

This release includes 1520 commits by 97 authors.

New Contributors

Full Changelog

v0.5.1...v0.6.0

matrixone-v0.5.1

19 Aug 02:34
Compare
Choose a tag to compare

This release resolved some log replaying and storage GC issues.

Docker

docker pull matrixorigin/matrixone:0.5.1

Bugs

These bugs are fixed by PRs below.

These bugs lead to some stability issues of a MatrixOne instance.
An upgrade from 0.5.0 to 0.5.1 only requires to replace the mo-server binary file.

matrixone-v0.5.0

17 Jul 12:41
Compare
Choose a tag to compare

We are excited to announce MatrixOne 0.5.0 release. In this release, MatrixOne has a stand-alone columnar storage engine which can support HTAP workloads. Cheers!

Docker

docker pull matrixorigin/matrixone:0.5.0

Features

  • Support ACID transaction with a Snapshot Isolation level.
  • Support UPDATE, DELETE and INSERT INTO ... SELECT ... statement.
  • Support BOOL and Timestamp data type.
  • Support LEFT / RIGHT / OUTER / NATURAL JOIN.
  • Support Having expression.
  • Support subquery.
  • Support Common Table Expression.
  • Support CASE ... WHEN expression.
  • Support Interval expression.
  • Support Explain plan tree.
  • Support new aggregate function: any_value
  • Lots of new functions are supported.

Known issues

  • Hotfix on 0.5.0 may cause data format incompatable.
  • 'Too many open files' error might be issued when user insert/update/delete data or create/drop table frequently. User need to increase the 'max open files' to resolve the issue.
  • Running 1GB TPCH benchmark test with memory less than 64GB may result in an out of memory error.
  • Loading large size of CSV file than 100GB might lead to system hanging. #3858
  • Mixed TP and AP work loads running for a long time, might cause system panic. #3947 #3961

Contributors

This release includes 811 commits by 73 authors.

New Contributors

We appreciate your contribution! Welcome to MatrixOne community.

Full Changelog

v0.4.0...v0.5.0

matrixone-v0.4.0

05 May 06:44
aefc440
Compare
Choose a tag to compare

We are excited to announce MatrixOne 0.4.0 release. Cheers!

Docker

docker pull matrixorigin/matrixone:0.4.0

Features

  • Support inner join with equality operator.
  • Support subquery within from clause.
  • Support decimal data type.
  • Support following builtin functions:
    • Mathematical: Abs, Log, Ln, Ceil, Exp, Power, Pi, Sin, Sinh, Cos, ACos, Tan, ATan, Cot
    • Datetime: Month, Weekday, Date, DayOfYear
    • String: Space, Reverse, Substring, Ltrim, Rtrim, StartsWith, EndsWith, Lpad, Rpad, Empty, LengthUTF8
  • Support following aggregate functions:
    • Bit_and, Bit_or, Bit_xor, Stddev_pop, Var

Known issues

  • For continuous table creation actions in a script, the parameter of pre-allocated-group-num should be set to a bigger value such in cluster scenarios. Otherwise, "no available raft group" may be notified during tables creation sequence.

Contributors

This release includes 259 commits by 50 authors.

New Contributors

We appreciate your contribution! Welcome to MatrixOne community.

Full Changelog

v0.3.0...v0.4.0

matrixone-v0.3.0

10 Mar 04:38
56fcd3f
Compare
Choose a tag to compare

We are excited to announce MatrixOne 0.3.0 release. Cheers!

Docker

docker pull matrixorigin/matrixone:0.3.0

Features

  • Exports data into CSV file.
  • Introduces parallel execution and improve performance for projection query.
  • Introduces IN operator and allows you to specify multiple values in a WHERE clause.
  • Support NULLABLE column in group by expression.
  • Introduces new functions: round and floor.
  • Introduces a Chaos Testing framework for distributed system.

Known issues

  • For continuous table creation actions in a script, the parameter of pre-allocated-group-num should be set to a bigger value such in cluster scenarios. Otherwise, "no available raft group" may be notified during tables creation sequence.

Contributors

This release includes 157 commits by 21 authors.

New Contributors

We appreciate your contribution! Welcome to MatrixOne community.

Full Changelog

v0.2.0...v0.3.0

matrixone-v0.2.0

06 Jan 03:43
c22aa58
Compare
Choose a tag to compare

We are excited to announce MatrixOne 0.2.0 release. Cheers!

Docker

docker pull matrixorigin/matrixone:0.2.0

Features

  • Support automatic rebalancing for the built-in AOE columnar storage engine.
  • Introduce new SQL parser.
  • Introduce factorized SQL execution engine which is the fastest MPP in Golang.
  • Support CREATE / DROP INDEX.
  • Support PRIMARY KEY in CREATE TABLE.
  • Support more data types for SQL binary operators.
  • Support equi join with group by or aggregation statements.
  • Support new types of DATE and DATETIME.

Known issues

  • For continuous table creation actions in a script, the parameter of pre-allocated-group-num should be set to a bigger value such in cluster scenarios. Otherwise, "no available raft group" may be notified during tables creation sequence.

Contributors

This release includes 243 commits by 21 authors.

matrixone-v0.1.0

24 Oct 08:29
b509ed0
Compare
Choose a tag to compare

We are excited to announce the first release of MatrixOne 0.1.0 on 2021/10/24. Cheers!

Docker

docker pull matrixorigin/matrixone:0.1.0

Features

SQL

Following SQL statements are supported in this release.

DDL

  • CREATE / DROP DATABASE
  • CREATE / DROP TABLE

DML

  • INSERT
  • LOAD DATA
  • SELECT
    • WHERE
    • GROUP BY
    • ORDER BY
    • LIMIT, OFFSET
  • SHOW
    • DATABASES
    • TABLES
  • USE

Data Types

  • TINYINT / SMALLINT / INT / BIGINT, SIGNED / UNSIGNED
  • FLOAT / DOUBLE
  • CHAR / VARCHAR

Operators

  • >, >=, <, <=, <>, !=, =
  • BETWEEN … AND …, NOT BETWEEN … AND …
  • AND, &&, OR, ||
  • +, -, *, /, %, MOD, DIV, NEG
  • CAST

Aggregation Functions

  • COUNT
  • SUM
  • AVG
  • MAX
  • MIN

Database Engine

  • MySQL dialect is supported.
  • Build-in Append only columnar engine(AOE) has been supported as the first fusion database engine.
  • Real-time analytical queries are supported.
  • Vectorized query execution engine, based on MPP solution, is introduced.
  • Part of the expression execution has been vectorized through SIMD instructions.
  • Distributed AOE with strong consistency guaranteed by RAFT has been supported.
  • The performance of replicated state machine has been greatly improved through the unique design of reusing RAFT log as well as Write-Ahead log without any redundancy.

Contributors

This release includes 453 commits by 16 authors. Special thanks to the first author: Yan Wenze (@nnsgmsone)