The openGauss core is built on the basis of the PostgreSQL object-relational database management system. Its functionality has been enhanced to meet enterprise-level challenges.
Conceptually openGauss is a multipurpose database: row storage in it allows you to support services with intensive data updates, column storage speeds up the execution of analytical tasks, and the in-memory engine increases throughput when solving problems that are sensitive to response time. The solution is being deployed both in containers and on physical servers with x86-64 or Kunpeng processors developed by Huawei.
The official launch of the first version of openGauss took place on July 1, 2020. And already in the middle of autumn, 1.0.1 was released, which included more than twenty improvements.
In its current implementation, openGauss has a wide range of remarkable features. First of all, this is support for multi-core architecture with controlled concurrency. It should also be noted intelligent parameter tuning, diagnostics of slow SQL, multidimensional self-monitoring of performance and online prediction of SQL execution, which greatly simplifies O&M.
The performance metrics of openGauss are worthy of mention. Specifically, the system performs up to 1.5 million tpmC on two 64-core Kunpeng processors, and takes less than 10 seconds to fail over on a node failure.
Let’s briefly outline the features of openGauss that determine its benefits.
- High availability. The logging features – WALs (write-ahead logs) – provide hot backup and recovery capabilities. The gs_basebackup utility allows you to make a full database backup, including a compressed one. In the PostgreSQL world, the question is incremental backup remains open, so companies have to independently solve this problem in each specific case. The new version 1.0.1 supports the functionality of incremental backups when the GUC parameter enable_cbm_tracking is enabled (and then the database will track changes to the data pages).
The disaster resistance of openGauss is solved by organizing Standby on a remote site, and data synchronization is possible in synchronous and asynchronous modes. The current release of the DBMS supports up to four replicas at the physical layer.
- High performance. In openGauss, a table, including its indexes, can be placed entirely in memory. This is possible thanks to Memory-Optimized Tables (MOT), a high-performance OLTP engine for processing data in memory. MOT supports row-based tables, and all openGauss functionality is available, including transactions and fault tolerance.
The features of the MOT implementation and the results of its testing for TPC-C performance are given in separate document…
It is also necessary to mention the possibility of creating Materialized View – a slice of data with pre-calculated indicators (aggregates) is stored at the level of database tables, significantly speeding up the execution of analytical tasks.
- Controllability Significantly improved with automatic performance reporting (WDR). To enable this feature, simply set the enable_wdr_snapshot = on parameter and specify the number of retention days for the wdr_snapshot_retention_days parameter. Further, the database engine will automatically save snapshots with performance metrics, including slow SQL. WDR allows you to generate performance reports between specified time periods (snapshots) in HTML or PDF format.
- Flexibility. Integration with external data sources is implemented through Foreign Data Wrappers (FDW). The current release supports integration with Oracle, MySQL, openGauss.
Global Temporary Tables (GTT) deserves special attention. The object itself is created in the database once, then GTT is used repeatedly to store intermediate results of transactions or sessions. The data in the temporary table is visible only for the current session, regardless of the transaction commit. The data is lost after disconnecting-ending the session. It is an indispensable functionality for ETL or reporting systems.
Recall that Huawei is a platinum partner for open source software developers Linux, Apache and Openstack, as well as a strategic member of the Eclipse Foundation. We are actively involved in projects to create Open Source solutions, including:
- Linux distribution openEuler;
- framework for deep learning tasks MindSpore;
- an intelligent platform for ensuring the autonomy of open data SODA;
- big data storage format Apache CarbonData;
- microservice platforms Apache ServiceComb;
- framework for edge computing CNCF KubeEdge;
- high-performance batch process control system CNCF Volcano…
We will be glad to answer your questions in the comments!