Skip to content

Releases: matrixorigin/matrixone

MatrixOne-v1.1.3

16 Apr 16:14
14c4496
Compare
Choose a tag to compare

Release date: April 16, 2024
MatrixOne version: v1.1.3

Compared with the previous v1.1.2, v1.1.3 doesn't introduce any new features but only focuses on bug fixes.

Bugfix

  • Resolved data integrity issues caused by orphaned transactions #15452 .
  • Fixed potential transaction leak issues #15505 .
  • Addressed issues related to system tables #15331 #15332 .
  • Rectified problems associated with the lockable #15402 .

What's Changed

Full Changelog: v1.1.2...v1.1.3

MatrixOne-v1.1.2

02 Apr 10:11
1519f8e
Compare
Choose a tag to compare

Release date: April 02, 2024
MatrixOne version: v1.1.2

Compared with the previous v1.1.1, v1.1.2 doesn't introduce any new features but focuses on some improvements and bug fixes.

Improvements

Bugfix

  • Fixed data accuracy issues #14653;
  • Fixed transaction commit WW and DUP issues #15034, #15123, #15145;
    For additional bug fixes, please refer to the "What's Changed" section for more details.

What's Changed

Read more

MatrixOne-v1.1.1

04 Feb 08:16
9d61683
Compare
Choose a tag to compare

Release date: February 04, 2024
MatrixOne version: v1.1.1

Compared with the previous v1.1.0, v1.1.1 doesn't introduce any new features but focuses on some improvements and bug fixes.

Improvements

  • Improved stability by fixing bugs related to lock service and proxy.
  • Enhanced forward compatibility.
  • Optimized MySQL compatibility.
  • Improved the accuracy of runtime resource consumption statistics.

What's Changed

Read more

MatrixOne-v1.1.0

02 Jan 12:34
94a7724
Compare
Choose a tag to compare

We are excited to announce MatrixOne 1.1.0 release!

MatrixOne is a hyper-converged cloud-native database. It is designed to provide a cloud-native, high-performance, highly scalable, MySQL-compatible HTAP database. MatrixOne enables users to handle mixed workloads such as transactions, analytics, time-series, and streaming processing through a one-stop data processing solution.

What's New in v1.1.0?

Vector Data Type

These features enable users to quickly build AI applications, such as RAG applications based on large language models (LLMs). Unlike specialized vector databases, MatrixOne is a general database highly compatible with MySQL, enabling users to get started quickly without additional learning barriers. It also integrates structured and vector data processing for building AI applications.

  • Implemented vecf32 (float32) and vecf64 (float64) type.
  • Support for basic binary operators: +,-,*,/.
  • Support for comparison operators: =, !=, >, >=, <, <=.
  • Support for unary functions: sqrt,abs,cast.
  • Support for vector functions: summation,l1_norm,l2_norm,vector_dims,inner_product,cosine_similarity.
  • Support for aggregate function: count.

Time Series

  • Support for streaming loading with LOAD INTO INLINE, surpassing INSERT INTO in performance.
  • Support for time-series tables with timestamps as primary keys, and support for any dimension/metric columns.
  • Support sliding window for downsampling queries over different time periods.
  • Support for interpolation with various interpolation methods.

Kafka Connector(beta)

  • Support for creating dynamic and append-only table with CREATE DYNAMIC TABLE.
  • Support for configuring external data sources with CREATE SOURCE.
  • Support for Kafka topic integration with JSON or protobuf format.

User Defined Functions(beta)

  • Support for creating Python-based UDF

Other New Features

DDL Statements

  • Support for insert on duplicate key ignore.
  • Support for create or replace view.
  • Support for alter sequence.
  • Support for Key, hash partition pruning capabilities (beta).
  • Support for List/List column, Range/Range Columns partition storage capabilities (beta).

Indexes and Constraints

  • Full support of secondary indexes for dynamic query acceleration.

Built-in Functions

  • Added SAMPLE sampling function.
  • Added CONVERT_TZ time zone conversion function.
  • Added SHA2 encryption function.
  • Added Encode/Decode encoding and decoding functions.

Security

  • Support for managing path permissions for select into through creating Stage.

Tools

  • mo_dump tool (logical backup)
    • Starting from this iteration, modump is managed in a separate repo (https://github.com/matrixorigin/mo_dump).
    • Supports exporting DDLs separately.
    • Supports exporting multiple databases and tables.
  • mo_backup tool (physical backup)
    • Supports file systems and object storage as storage media for backup and restoration.
  • mo_ctl_standalone Tool
    • Supports automatic data backup.
    • Supports automatic log table data cleaning.
    • Supports converting data files from CSV format to insert or load data inline format.
    • Supports automatic docker image building.
    • Supports docker mode for standalone deployment.
  • mo_ctl_distributed Tool
    • Supports one-click installation and uninstallation of distributed clusters.
    • Supports start/stop, upgrade/rollback operations for matrixone clusters.
    • Supports installing matrixone clusters in different k8s clusters.
  • mo_operator tool
    • Supports configuring custom S3 certificates.
    • Supports backup and recovery, and management of backup data for matrixone clusters via API.
    • Supports setting optimized Go GC strategies automatically for matrixone clusters.
    • Supports enabling Python UDF for matrixone clusters.
    • Supports integration of matrixone on Kubernetes with Prometheus.

MySQL Compatibility

  • Remove hundreds of MySQL-incompatible reserved keywords.

Known Issues

  • Memory leak occasionally happens and may lead to an OOM error.
  • Occasional system hung under high concurrency workload.
  • Kafka connector works only in a standlone deployment.
  • Secondary Index doesn't apply for IN queries.

New Contributors

Full Changelog: v1.0.0...v1.1.0

MatrixOne-v1.0.2

23 Dec 09:44
8081e05
Compare
Choose a tag to compare

Release date: December 23, 2023
MatrixOne version: v1.0.2
Compared with the previous v1.0.1, v1.0.2 introduces a few features/improvements but the focus was primarily on bug fixes.

Improvements

  • Support transitivity of equalities: #13596

Bugfix

  • Fix some reserved keywords bugs: #13561
  • Fix PrefecthDelete bug: #13590
  • Fix blob related bug: #13593
  • Fix mo_ctl merge hung: #13601
  • Fix the issue of incorrectly pushing down runtime filters during left join: #13661
  • Fix a bug where the package partition never considers the constant vector: #13607
  • Ignore invalid symlink in local fs list: #13675
  • Fixed the issue of an abnormal interruption during flush: #13696, #13706, #13708
  • Fixed the issue where executing SHOW SUBSCRIPTIONS; fails in certain special scenarios: #13656, #13599
  • Fix the bug where DirtyBlocks removes the wrong block: #13647

Features

  • Support lcase, ucase: #13686

MatrixOne-v1.0.1

16 Dec 08:22
b104e66
Compare
Choose a tag to compare

Release date: December 16, 2023

MatrixOne version: v1.0.1

Compared with the previous v1.0.0, v1.0.1 introduces a few features but the focus was primarily on improvements and bug fixes.

Improvements

Bugfix

  • Fixed some MySQL compatibility issues #12753, #13330
  • Resolved an issue with incorrect calculation of FileService cache size #12729
  • Fixed some system hung issues #12777, #13004, #13227
  • Modified prefetch strategy to reduce memory usage #12827
  • Corrected create/drop account issues #12841, #12863, #13130, #13343
  • Resolved show processlist issue #12834
  • Fixed the issue of a large number of SQL queries accumulating #12899, #12923
  • Fixed some rpc bugs #12884
  • Fixed go routine leak #13312
  • Fixed some lock bugs #13082, #13346
  • Fixed the continuous FATAL issue in CN #13047
  • Fixed an error in the maximum data packet length calculation #13112
  • Fixed incorrect routing issue #13103
  • Fixed unexcepted ckp stopped bug #13308
  • Resolved the issue of abnormal display of transaction DDL execution results #13440
  • Fixed blob type encoding bug #13507
  • Fixed non-reserved keyword collation #13501

Features

  • Support lower(), upper(), locate() #13442

MatrixOne-v1.0.0

14 Nov 03:13
6d1f96e
Compare
Choose a tag to compare

Release date: November 13, 2023

MatrixOne version: v1.0.0

Compared with the previous v1.0.0-RC2, v1.0.0 doesn't introduce any new features but focuses on some improvements and bug fixes.

Improvements

Bugfix

MatrixOne-v1.0.0-RC2

24 Oct 10:43
04a8a19
Compare
Choose a tag to compare

Release date: October 24, 2023

MatrixOne version: v1.0.0-RC2

Compared with the previous v1.0.0-RC1, v1.0.0-RC2 doesn't introduce any new features but focuses on some improvements and bug fixes.

Improvements

Bugfix

MatrixOne-v1.0.0-RC1

14 Sep 15:01
Compare
Choose a tag to compare

We are thrilled to announce the release of MatrixOne 1.0.0-RC1! This milestone marks we have basically achieved the initial design goal of the MatrixOne open-source project. Cheers!

MatrixOne 1.0.0-RC1 Review

MatrixOne is designed to provide a unified and scalable database management solution for transactional, analytical and streaming workloads and powers a wide range of applications. In general, MatrixOne 1.0.0-RC1 has delivered a cloud-native architecture with separated storage and computing, presenting a fully-functional database with high performance queries and elastic scaling with familiar relational SQL. The OLTP and OLAP performance of MatrixOne has also reached the industry's average level, meanwhile MatrixOne provides an experimental function of Stream table and Kafka connector for streaming processing.

SQL

  • Syntax: MatrixOne SQL syntax is highly compatible with MySQL 8.0.
  • DDL: Supports common DDL statements such as CREATE, ALTER, and DELETE databases, tables, views, and partitioned tables.
  • DML: Supports common DML statements including INSERT, UPDATE, DELETE, and data import/export statements.
  • Basic SQL query: Supports basic query capabilities such as grouping, deduplication, filtering, sorting, limiting, regular expressions, etc.
  • Advanced SQL query: Supports advanced query capabilities including views, subqueries, joins, unions, Common Table Expressions (CTE), window functions, prepared statements, etc.
  • Data Types: Supports data types including integer, floating-point, string, date/time, boolean, enum, binary, and JSON types.
  • Aggregate Functions: Supports common aggregate functions such as AVG, COUNT, MIN, MAX, SUM, etc.
  • System Functions and Operators: Supports common string, date/time, mathematical functions, and operators.
  • Indexes and Constraints: Supports primary keys, unique constraints, non-null constraints, foreign keys, auto-increment constraints, and secondary indexes.
  • Streaming: Supports the creation of streaming tables and integration with Kafka data sources.
  • Multi-tenancy: Supports the creation and management of internal tenants within the database.

Data Import and Export

  • Supports batch insert data using INSERT, LOAD DATA, SOURCE, etc.
  • Supports data export using SELECT INTO and modump methods.
  • Supports direct import from local files and object storage.

Transactions

  • Supports ACID (Atomicity, Consistency, Isolation, Durability) transaction properties.
  • Supports transaction initiation, commit, and rollback operations.
  • Supports both pessimistic and optimistic transactions, allowing users to switch between them.
  • Provides configuration options for isolation levels, including Snapshot Isolation and Read Committed.

Deployment

  • Supports both standalone and distributed deployment architectures.
  • Supports deployment through source code, binary packages, Docker, and Kubernetes.
  • Supports deployment on public cloud, private cloud, and physical machines.

Application Development

  • Supports native connectors for popular development languages such as Java, Python, and Golang, including JDBC, pymysql, go-sql-driver.
  • Supports common ORM frameworks for various languages such as MyBatis, Spring JPA, SQLAlchemy, GORM.
  • Supports popular MySQL management tools like Navicat, MySQL Workbench, DBeaver, HeidiSQL.
  • Provides a standalone and distributed command-line management tool named mo_ctl.
  • Includes comprehensive database logging and query recording capabilities, with the ability to integrate with visualization components like Grafana for real-time cluster monitoring.

Security and Privileges

  • Supports Transport Layer Security (TLS) encrypted connections.
  • Supports Role-Based Access Control (RBAC).

Backup and Restore

  • Supports logical backups using the modump tool.
  • Supports physical backups using the mobr tool.

MatrixOne Use Cases

Operational Analytics

As the data volume of common IT systems such as OA, ERP, CRM, etc., increases with business growth, traditional single-node databases may not meet their performance requirements. Many companies set up a separate analytical database system to meet the needs of important reporting requirements at month-end or quarter-end, or use sharding techniques to reduce query loads. An operational analytics system is one that allows you to make quick decisions based on the current operational system. MatrixOne can fulfill the requirements of both the business system and the analytical system with a single database, while providing powerful scalability that can seamlessly expand as the business grows.

Real-time Analytics

For typical OLAP (Online Analytical Processing) applications in business, such as dashboards and BI reports, massive data analysis is often required. When the data volume becomes significant, performance bottlenecks may arise, resulting in poor timeliness. MatrixOne offers fast data ingestion, powerful analytical performance and scalability, enabling accelerated processing of complex and large-scale SQL queries, achieving sub-second response times, and improving the agility of enterprise decision-making and analysis.

IoT Monitoring

With the widespread application of sensors and network technologies, various IoT devices generate massive amounts of data, such as manufacturing plant production lines, renewable energy vehicles, city surveillance cameras, and more. The scale of data can easily reach hundreds of terabytes or even petabytes. There is an increasing demand for enterprises to store and utilize this data. Traditional database solutions cannot handle the real-time data ingestion and processing required in such massive and large-scale scenarios. MatrixOne provides powerful capabilities for streaming data ingestion and processing, along with robust scalability to handle any workload and data volume, fully meeting the requirements of this scenario.

Fluctuating Web Applications

For internet-based web applications such as gaming, e-commerce, entertainment, social media, news, etc., where user numbers are large and business fluctuations are frequent and significant, substantial computing resources are often required to support business demands during peak events. MatrixOne, with its fully cloud-native architecture, offers exceptional scalability, automatically scaling up or down in response to changes in the business, thereby greatly reducing the operational complexity for users.

SaaS Applications

SaaS applications have experienced explosive growth in recent years. In SaaS application development, a multi-tenant model needs to be considered. Traditional solutions often involve either shared database instances for multiple tenants or dedicated database instances for each tenant, facing a trade-off between management costs and isolation. MatrixOne comes with built-in multi-tenancy capabilities, providing natural workload isolation between tenants and independent scalability. It also offers centralized management capabilities, effectively addressing cost, ease of management, and isolation requirements, making it the ideal choice for SaaS applications.

Quick Start

Docker

docker pull matrixorigin/matrixone:1.0.0-rc1

To get started with MatrixOne 1.0.0-rc1, please visit our official website at https://docs.matrixorigin.cn/en. You can find detailed documentation, installation instructions, and tutorials to help you explore the features and capabilities of MatrixOne. Additionally, our community forums are available for any questions, discussions, or feedback you may have.

What's changed from 0.8 to 1.0

From 0.8 to 1.0, we mainly developed some new functions and improve usability for production-level deployment.

Key New Features

Physical Backup(Enterprise Edition)

In this version, we have introduced the physical backup feature, allowing users to easily backup and restore databases. Now, you can effortlessly create snapshots of your database and restore to previous states when needed, ensuring data integrity and reliability.

Stream Computing

As the final piece of the HSTAP architecture puzzle, we have completed the framework design for stream computing. In this iteration, we have added the ability to create streaming tables and implemented a Kafka connector to meet the streaming data ingestion needs of various time-series scenarios.

Recursive CTE

Recursive CTE (Common Table Expression) is a feature that allows for repeatedly executing an initial CTE to return subsets of data until the complete result set is obtained. The implementation in this iteration enables users to easily handle hierarchical data and build more complex and flexible queries using recursive queries.

Key Improvements

MySQL DDL Compatibility

We have further improved MatrixOne's compatibility with MySQL, enabling better support for MySQL table creation statements. Now, users can seamlessly migrate existing MySQL applications to MatrixOne without modifying existing table creation statements.

Session Migration during Scaling

We have added the capability to migrate sessions seamlessly during distributed instance scaling operations. Users can easily adjust the capacity of MatrixOne without impacting existing sessions and business operations.

Simplified System Configuration

We have significantly simplified the startup configuration options for both single-node and distributed versions, allowing users to quickly and easily start the database.

mo_ctl Tool

We have optimized the functionality of the mo_ctl maintenance tool for both single-node and distributed setups, providing more powerful and user-friendly maintenance capabilities. Now, you can effortlessly deploy, upgrade, scale, and perform o...

Read more

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