What is RadonDB?

RadonDB is a cloud-native database based on MySQL. It’s architected to fully distributed cluster that delivering unlimited scalability (scale-out), capacity and performance. It supports distributed transaction capability for high data consistency, and leverage MySQL as storage engine with trusted data reliability. RadonDB is compatible with MySQL protocol, at mean time supports automatic table sharding, that simplifying the maintenance and opera-tion workflow.

Features

Automatic Table Sharding

Automatically sharding (partition) across nodes that minimizing the complexity of maintenance and operation.

Distributed Transaction

Support distributed transaction across shards (partitions) that securing Atomicity, Consistency, Isolation, Durability (ACID) for whole transactrion process.

Connection Thread Pool:

Presetting a set of connected threads that can be leveraged to accelerate the efficiency of connection between SQL cluster and storage nodes; supporting automatic reconnection and thread reuse.

Auditing and Logging:

Can be enabled for auditing and logging the SQL query operation in multiple dimensions: query event time, operations statement type, consuming time, etc; all these functions help to secure the operation safety and data compliance; the auditing log is able to be set in multiple modes for high flexibility: read (SQL) only, write only, or read/write simultaneously.

Architecture

RadonDB is a new generation of distributed relational database based on MySQL, we call it MyNewSQL. It was designed to create a database that capable to satisfy the requirement of large-scale transaction workload with high availability and reliability. RadonDB is architected to two independent cluster layers: SQL Layer and Transaction Layer, and the following guide show the detail of the inner-workings:
Image

SQL supported

On SQL syntax level, RadonDB Fully compatible with MySQL. All of the SQL features RadonDB supports can be viewed here:Radonsqlsurported

Image

SQL parser, planner, executor

After your SQL node receives a SQL request from a mysql client via proxy, RadonDB parses the statement, creates a query plan, and then executes the plan.

  • Parsing

    Received queries are parsed by sqlparser (which describes the supported syntax by mysql) and generated Abstract Syntax Trees (AST).

  • Planning

    With the AST, RadonDB begins planning the query's execution by generating a tree of planNodes. This step also includes steps analyzing the client's SQL statements against the expected AST expressions, which include things like type checking.
    You can see the a query plan generates using EXPLAIN(At this stage we only use EXPLAIN to analysis Table distribution).

  • Executing

    Executing an Executor in a storage layer in Parallel with a Distributed Execution Plan.

Image

SQL with Transaction

The SQL node is stateless, but in order to guarantee transaction Snapshot Isolation, it is currently a write-multiple-read mode.

Image

Distributed transaction

RadonDB supported distributed transaction capability. If one of the nodes that carrier distributed executors failed to execute, then the rest nodes will be rolled back, in order to guarantees the atomicity of operating across nodes and makes the database in a consistent state.

Image

Isolation Levels

RadonDB achieved the level of SI (Snapshot Isolation) at the level of consistency. As long as a distributed transaction has not commit, or if some of the partitions have committed, the operation is invisible to other transactions.

Image

Transaction with SQL Layer

The SQL node is stateless, but in order to guarantee transaction Snapshot Isolation, it is currently a write-multiple-read mode.

Yunify Technologies Inc.