Releases: matrixorigin/matrixone
MatrixOne-v0.8.0
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
- @zengyan1 made their first contribution at #8244
- @forsaken628 made their first contribution at #8728
- @gavinyue made their first contribution at #8825
- @gouhongshen made their first contribution at #9775
- @WitcherTheWhite made their first contribution at #9941
Full Changelog: v0.7.0...v0.8.0
matrixone-v0.7.0
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
- @sourcelliu made their first contribution in #6747
- @iceTTTT made their first contribution in #7201
- @chrisxu333 made their first contribution in #6968
- @songjiayang made their first contribution in #7450
- @dr-lab made their first contribution in #7647
- @arjunsk made their first contribution in #7849
- @Morranto made their first contribution in #7471
Full Changelog
matrixone-v0.6.0
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
- @lokax made their first contribution in #4186
- @triump2020 made their first contribution in #4414
- @Abirdcfly made their first contribution in #4450
- @yjw1268 made their first contribution in #4472
- @Juneezee made their first contribution in #4609
- @ZoranPandovski made their first contribution in #4767
- @Toms1999 made their first contribution in #4778
- @xy2398437254 made their first contribution in #4927
- @goodMan-code made their first contribution in #5033
- @DanielZhangQD made their first contribution in #5140
- @taofengliu made their first contribution in #5349
- @TszKitLo40 made their first contribution in #5333
- @TheR1sing3un made their first contribution in #5352
- @qqIsAProgrammer made their first contribution in #5382
Full Changelog
matrixone-v0.5.1
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
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
matrixone-v0.4.0
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
- @BePPPower
- @JackTan25
- @Charlie17Li
- @domingozhang
- @Fungx
- @JasonPeng1310
- @jiajunhuang
- @NTH19
- @noneback
- @RinChanNOWWW
- @chaixuqing
- @Y7n05h
- @yuxubinchen
- @adlternative
- @ajian2002
- @bxiiiiii
- @coderzc
- @e11jah
- @fengttt
- @florashi181
- @hiyoyolumi
- @jinfuchiang
- @ouyuanning
- @qingxinhome
- @supermario1990
- @whileskies
- @xiw5
- @yclchuxue
- @ZtXavier
We appreciate your contribution! Welcome to MatrixOne community.
Full Changelog
matrixone-v0.3.0
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.
- broccoliSpicy(@broccoliSpicy)
- Chen Mingsong(@m-schen)
- hanfang (@aptend)
- O2 (@ikenchina)
- Jin Hai (@JinHai-CN)
- Jiang xinmeng (@jiangxinmeng1)
- Lin Junhong (@iamlinjunhong)
- Long Ran (@aunjgr)
- Nan Deng (@dengn)
- Otter(@WenhaoKong2001)
- Peng Zhen (@daviszhen)
- Qin Shuqi (@sukki37)
- Sundy Li(@sundy-li)
- Shen JiangWei(@LeftHandCold)
- Jian Wang(@jianwan0214)
- Wan Hanbo(@wanhanbo )
- Xu Peng (@XuPeng-SH)
- Yan Wenze(@nnsgmsone)
- Yuesheng Li(@reusee)
- Zilong Zhou (@zzl200012)
- Zhang Yingfeng (@yingfeng)
New Contributors
- @wanhanbo made their first contribution in #1600
- @ikenchina made their first contribution in #1685
- @sundy-li made their first contribution in #1704
- @WenhaoKong2001 made their first contribution in #1838
We appreciate your contribution! Welcome to MatrixOne community.
Full Changelog
matrixone-v0.2.0
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.
- BingLin Chang (@decster)
- Chen Mingsong(@m-schen)
- Nan Deng (@dengn)
- Jin Hai (@JinHai-CN)
- Jiang xinmeng (@jiangxinmeng1)
- Li Yang (@lignay)
- Lin Junhong (@iamlinjunhong)
- lni (@lni)
- Long Ran (@aunjgr)
- Peng Zhen (@daviszhen)
- Qin Shuqi (@sukki37)
- Shen JiangWei(@LeftHandCold)
- Jian Wang(@jianwan0214)
- broccoliSpicy(@broccoliSpicy)
- Ryan Wang(@wanglei4687)
- Xiong Jingjuan (@anitajjx)
- Xu Peng (@XuPeng-SH)
- Yan Wenze(@nnsgmsone)
- Yuesheng Li(@reusee)
- Zilong Zhou (@zzl200012)
- Zhang Yingfeng (@yingfeng)
matrixone-v0.1.0
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)
- Chen Mingsong(@m-schen)
- Jin Hai (@JinHai-CN)
- Jiang xinmeng (@jiangxinmeng1)
- Li Yang (@lignay)
- Lin Junhong (@iamlinjunhong)
- lni (@lni)
- Long Ran (@aunjgr)
- Peng Zhen (@daviszhen)
- Qin Shuqi (@sukki37)
- Shen JiangWei(@LeftHandCold)
- Wei Ziran (@w-zr)
- Xiong Jingjuan (@anitajjx)
- Xu Peng (@XuPeng-SH)
- Yan Wenze(@nnsgmsone)
- Zilong Zhou (@zzl200012)
- Zhang Yingfeng (@yingfeng)