Release of the distributed DBMS TiDB 3.0

Available release of the distributed DBMS TiDB 3.0, developed under the influence of Google technologies Spanner and F1. TiDB belongs to the category of hybrid HTAP (Hybrid Transactional/Analytical Processing) systems, capable of both enabling real-time transaction processing (OLTP) and executing analytical query processing. The project is written in Go and is distributed under the Apache 2.0 license.

Features of TiDB:

  • Support for SQL and provision of a client interface compatible with the MySQL protocol, which simplifies the adaptation of existing applications written for MySQL to TiDB, as well as allowing the use of common client libraries. In addition to the MySQL protocol, it is possible to access the DBMS using a JSON-based API and a connector for Spark.
  • SQL features supported include indexes, aggregate functions, GROUP BY, ORDER BY, DISTINCT expressions, joins (LEFT JOIN / RIGHT JOIN / CROSS JOIN), views, window functions, and subqueries. The capabilities provided are sufficient for the operation of web applications with TiDB, such as PhpMyAdmin, Gogs and WordPress;
  • Ability to scale horizontally and ensure fault tolerance: storage size and computing power can be increased simply by adding new nodes. Data is distributed across nodes with redundancy, allowing continued operation in the event of node failures. Failures are automatically handled.
  • The system guarantees consistency and appears to client applications as a single large DBMS, despite the fact that data from multiple nodes is utilized to execute transactions.
  • Different backends can be used for physical data storage on nodes, such as local storage engines GoLevelDB and BoltDB, or a proprietary distributed storage engine. TiKV.
  • Ability for asynchronous schema changes, allowing columns and indexes to be added on the fly without stopping the processing of current operations.

Key innovations:

  • Performance improvements have been made. In the Sysbench 3.0 tests, it outperforms the 2.1 branch by 1.5 times for select and update operations, and by 4.5 times in the TPC-C test. Optimizations have touched on various types of queries, including subqueries like 'IN', 'DO', and 'NOT EXISTS', table merge operations (JOIN), index usage, and much more.
    Release of the distributed DBMS TiDB 3.0 Release of the distributed DBMS TiDB 3.0
  • A new storage engine, TiFlash, has been added, which enables higher performance for analytical tasks (OLAP) due to columnar storage. TiFlash complements the previously offered TiKV storage, which stores data in row format as key/value pairs and is more optimal for transaction processing tasks (OLTP). TiFlash works alongside TiKV, and data continues to be replicated in TiKV using the Raft protocol for consensus, but an additional replica is created for each Raft replication group, which is used in TiFlash. This approach allows for better resource separation between OLTP and OLAP tasks and makes transaction data instantly available for analytical queries.

    Release of the distributed DBMS TiDB 3.0
  • A distributed garbage collector has been implemented, significantly increasing garbage collection speed in large clusters and enhancing operational stability.
  • An experimental implementation of a role-based access control (RBAC) system has been added. The ability to set access rights for ANALYZE, USE, SET GLOBAL, and SHOW PROCESSLIST operations has also been provided.
  • The ability to use SQL expressions for selecting from the slow query log has been added.
  • A mechanism for quickly restoring deleted tables has been implemented, allowing for the recovery of accidentally deleted data.
  • The log format has been standardized.
  • Support for pessimistic locking mode has been added, making transaction processing more similar to MySQL.
  • Support for window functions (window functions or analytic functions) compatible with MySQL 8.0 has been added. Window functions allow calculations to be performed for each row of the query using other rows. Unlike aggregate functions, which collapse a grouped set of rows into a single row, window functions perform aggregation based on the content of a 'window' that includes one or more rows from the result set. Implemented window functions include:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK, and ROW_NUMBER;
  • Experimental support for views (VIEW) has been added;
  • The partitioning system has been improved, with the addition of the ability to distribute data across sections based on ranges of values or hashes;
  • A framework for developing plugins has been added, including prepared plugins for using an IP whitelist or maintaining an audit log;
  • Experimental support for the 'EXPLAIN ANALYZE' function for building the SQL query execution plan (SQL Plan Management) has been provided;
  • The next_row_id command has been added to obtain the identifier of the next row;
  • New built-in functions JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE, and NAME_CONST have been added.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster