All Projects → radondb → Radon

radondb / Radon

Licence: gpl-3.0
RadonDB is an open source, cloud-native MySQL database for building global, scalable cloud services

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Radon

Crate
CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of data in real-time.
Stars: ✭ 3,254 (+105.43%)
Mutual labels:  sql, olap, database, distributed-database
Manticoresearch
Database for search
Stars: ✭ 610 (-61.49%)
Mutual labels:  json, sql, full-text-search, database
Trino
Official repository of Trino, the distributed SQL query engine for big data, formerly known as PrestoSQL (https://trino.io)
Stars: ✭ 4,581 (+189.2%)
Mutual labels:  sql, database, distributed-database
Cockroach
CockroachDB - the open source, cloud-native distributed SQL database.
Stars: ✭ 22,700 (+1333.08%)
Mutual labels:  sql, database, distributed-database
Citus
Distributed PostgreSQL as an extension
Stars: ✭ 5,580 (+252.27%)
Mutual labels:  sql, database, distributed-database
Duckdb
DuckDB is an in-process SQL OLAP Database Management System
Stars: ✭ 4,014 (+153.41%)
Mutual labels:  sql, olap, database
Clickhouse
ClickHouse® is a free analytics DBMS for big data
Stars: ✭ 21,089 (+1231.38%)
Mutual labels:  sql, olap, distributed-database
Datafuse
Datafuse is a free Cloud-Native Analytics DBMS(Inspired by ClickHouse) implemented in Rust
Stars: ✭ 327 (-79.36%)
Mutual labels:  sql, olap, database
Tidb
TiDB is an open source distributed HTAP database compatible with the MySQL protocol
Stars: ✭ 29,871 (+1785.8%)
Mutual labels:  sql, database, distributed-database
Nano Sql
Universal database layer for the client, server & mobile devices. It's like Lego for databases.
Stars: ✭ 717 (-54.73%)
Mutual labels:  json, sql, database
Omniscidb
OmniSciDB (formerly MapD Core)
Stars: ✭ 2,601 (+64.2%)
Mutual labels:  sql, olap, database
Interference
opensource distributed database with base JPA implementation and event processing support
Stars: ✭ 57 (-96.4%)
Mutual labels:  sql, database, distributed-database
Shardingsphere
Build criterion and ecosystem above multi-model databases
Stars: ✭ 14,989 (+846.28%)
Mutual labels:  sql, database, distributed-database
Web Database Analytics
Web scrapping and related analytics using Python tools
Stars: ✭ 175 (-88.95%)
Mutual labels:  json, sql, database
Herddb
A JVM-embeddable Distributed Database
Stars: ✭ 192 (-87.88%)
Mutual labels:  sql, database, distributed-database
Bats
面向 OLTP、OLAP、批处理、流处理场景的大一统 SQL 引擎
Stars: ✭ 152 (-90.4%)
Mutual labels:  sql, olap, database
Scalardb
Universal transaction manager
Stars: ✭ 178 (-88.76%)
Mutual labels:  transaction, database, distributed-database
Yugabyte Db
The high-performance distributed SQL database for global, internet-scale apps.
Stars: ✭ 5,890 (+271.84%)
Mutual labels:  sql, database, distributed-database
Rqlite
The lightweight, distributed relational database built on SQLite
Stars: ✭ 9,147 (+477.46%)
Mutual labels:  sql, database, distributed-database
Eventql
Distributed "massively parallel" SQL query engine
Stars: ✭ 1,121 (-29.23%)
Mutual labels:  sql, database, distributed-database

Build Status Go Report Card codecov.io

OverView

RadonDB is an open source, Cloud-native MySQL database for unlimited scalability and performance.

What is RadonDB?

RadonDB is a cloud-native database based on MySQL, and architected in fully distributed cluster that enable unlimited scalability (scale-out), capacity and performance. It supported distributed transaction that ensure high data consistency, and leveraged MySQL as storage engine for trusted data reliability. RadonDB is compatible with MySQL protocol, and sup-porting automatic table sharding as well as batch of automation feature for simplifying the maintenance and operation workflow.

Features

  • Automatic Sharding
  • Auditing and Logging
  • Parallel Execution: Parallel Query, Parallel DML and Parallel DDL
  • Parallel CHECKSUM TABLE: Gives same results as MySQL
  • Distributed Transaction: Snapshot Isolation
  • Distributed Joins: Sort-Merge Join, Nested-Loop Join
  • Distributed Full Text Search
  • Multi Tenant by Database
  • Prepared SQL Statement
  • JSON

Documentation

For guidance on installation, deployment, and administration, see our Documentation.

Architecture

Overview

RadonDB is a new generation of distributed relational database (MyNewSQL) based on MySQL. It was designed to create the open-source database our developers would want to use: one that has features such as financial high availability、 large-capacity database、automatic plane split table、 scalable and strong consistency, this guide sets out to detail the inner-workings of the radon process as a means of explanation.

SQL Layer

SQL support

On SQL syntax level, RadonDB Fully compatible with MySQL.You can view all of the SQL features RadonDB supports here radon_sql_statements_manual

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.

                                                                +---------------+
                                                    x---------->|node1_Executor |
                            +--------------------+  x           +---------------+
                            |      SQL Node      |  x
                            |--------------------|  x
+-------------+             |     sqlparser      |  x           +---------------+
|    query    |+----------->|                    |--x---------->|node2_Executor |
+-------------+             |  Distributed Plan  |  x           +---------------+
                            |                    |  x
                            +--------------------+  x
                                                    x           +---------------+
                                                    x---------->|node3_Executor |
                                                                +---------------+

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).

Excuting

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

SQL with Transaction

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

Transaction Layer

Distributed transaction

RadonDB provides distributed transaction capabilities. If the distributed executor at different storage nodes and one of the nodes failed to execute, then operation of the rest nodes will be rolled back, This guarantees the atomicity of operating across nodes and makes the database in a consistent state.

Isolation Levels

RadonDB achieves 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.

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.

Issues

The integrated github issue tracker is used for this project.

License

RadonDB is released under the GPLv3. See LICENSE

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].