MatrixOne v23.1.0.0-RC1 Release Notes
We are thrilled to announce the release of MatrixOne v23.1.0.0-RC1 on 2023/8/24!
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
, andDELETE
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
andmodump
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
This documentation site also provides detailed architecture instructions, installation guides, and development tutorials to help you explore the features and capabilities of MatrixOne here.
Additionally, our GitHub and 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 other maintenance operations using the distributed mo_ctl tool (Enterprise Edition).
Other Features
- Add
Replace
for DDL - Add column modification for
Alter Table
- Add
Create Stage
statement, simplify Data Import/Export process - Add
Show Processlist
for checking system status - Add
enum
data type - Add
Year
data type - Add
To_Days
/To_Seconds
system functions - Improve
Group by
behavior by alias support
Known Issues
- Secondary Key doesn't improve any performance.
- Memory leak occasionally happens and may lead to an OOM error.
- DN is a single point of failure for distributed version.
- Occasional system hung under high concurrency workload.
Full Changelog
https://github.com/matrixorigin/matrixone/compare/v0.8.0...v1.0.0-rc1