radon 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
radon 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
radon 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !

软件简介

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

展开阅读全文

代码

评论 (0)

加载中
更多评论
暂无内容
发表于数据库专区
2020/04/14 10:00

使用Radon构建MySQL统一数据访问层

作者:吴炳锡,知数堂联合创始人及MySQL高级讲师,3306π社区联合创始人,腾讯TVP成员。 本文导读 整体结构 Radon中配置了解 Radon中表的分类 不同类的SQL在Radon针对不同表的拆分路由情况 基于RadonDB Schema实现及最佳建议 RadonDB SQL限制 总结 全文7200字,阅读时间大概20分钟。 这篇也可以说是:RadonDB使用最佳建议,从原理上了解RadonDB的拆分后数据访问逻辑。Radon中整理架构如下: 在Radon的架构中可以利用“表名”唯一...

0
0
发表于数据库专区
2020/01/06 19:00

「周四见」公开课 |《Radon性能评估及优化思路》

   分享方式    腾讯课堂直播 线上直播,不限地域,火星也行    参与方式    微信扫码、下方链接或文末“阅读原文” 赶紧报名吧~ https://ke.qq.com/course/477441 (悄咪咪告诉你,进QQ群联系助教可获得公开课相关资料哦~~) 扫码加入QQ技术交流群 (群号:579036588) 点“在看”给我一朵小黄花 本文分享自微信公众号 - 老叶茶馆(iMySQL_WX)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计...

0
0
发表于数据库专区
2020/01/14 19:00

「周四见」公开课 |《利用Radon解决现有项目的瓶颈》

   分享方式    腾讯课堂直播 线上直播,不限地域,火星也行    参与方式    微信扫码、下方链接或文末“阅读原文” 赶紧报名吧~ https://ke.qq.com/course/477441 (悄咪咪告诉你,进QQ群联系助教可获得公开课相关资料哦~~) 最后,广告是不能少滴。 我的新课程《MySQL性能优化》已经在腾讯课堂发布,本课程讲解读几个MySQL性能优化的核心要素:合理利用索引,降低锁影响,提高事务并发度。下面是报名小程序码,厚...

0
0
发表了博客
2020/05/23 16:36

快速实现wordpress迁移到RadonDB上

最近发现RadonDB在特性中引入一个新特性:Single table 到分区表快速转换,另外还引进了一个优秀的特性,把现有的MySQL库直接attach到Radon下面。看到这两个特性真是太赞了。可以非常方便用户实现原来的单表,快速变成拆分表,一条命令搞定。具体的issue参考:https://github.com/radondb/radon/issues/436 而且这个特性会在1.0.8这个版本发布。下面我们一块来体验一下吧。该文档可以用于先看看整体思想上有一个认识后再行动。 ...

0
0
发表于数据库专区
2020/03/16 17:00

快速实现wordpress迁移到RadonDB上

作者: 吴炳锡 作者介绍: 知数堂联合创始人及MySQL高级讲师,3306π社区联合创始人,腾讯TVP成员。 本文大概5500字,阅读大概需要15分钟,建议电脑前阅读。大纲如下: 概述 使用Radon attache功能的好处 基本环境描述 把wordpress库加入到Radon中 利用wordpress体验Radon的透明分库分表 总结 可以关注知数堂腾讯课堂上我分享的RadonDB相关视频。 最近发现RadonDB在特性中引入一个新特性:Single table 到分区表快速转换,另外还...

0
0
发表于数据库专区
2020/03/09 17:00

利用RadonDB实现MySQL分库分表

利用RadonDB实现MySQL分库分表 RadonDB是青云上提供的MySQL分布式解决方案,提供数据库的透明拆分及高可用服务。RadonDB包括Radon, Xenon, MySQL三部分安装。其中Radon,Xenon官方没有发行二进制包,需要编译安装, MySQL可以使用官方编译后的版本安装,但需要使用MySQL 5.7这个版本。在以下文档安装过程中如果遇到问题请及时的反馈作者:QQ/Weixin: 82565387 本文内容较长大致分为: 环境基本情况介绍 编译环境准备 Xenon编译安...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
0 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部