RadondBは、無制限のスケーラビリティとパフォーマンスのためのオープンソースのクラウドネイティブMySQLデータベースです。
RadondBはMySQLに基づいたクラウドネイティブのデータベースであり、無制限のスケーラビリティ(スケールアウト)、容量、パフォーマンスを可能にする完全に分散されたクラスターでアーキテクチャされます。高いデータの一貫性を確保する分散トランザクションをサポートし、MySQLを信頼できるデータの信頼性のためのストレージエンジンとして活用しました。 RadondBは、MySQLプロトコル、およびSUPポータリングの自動テーブルシェルディングと、メンテナンスおよび操作ワークフローを簡素化するためのバッチオブオートメーション機能と互換性があります。
インストール、展開、および管理に関するガイダンスについては、ドキュメントを参照してください。
RadondBは、MySQLに基づいた新世代の分散リレーショナルデータベース(MyNewSQL)です。開発者が使用したいオープンソースデータベースを作成するように設計されています。金融高可用性などの機能を備えたもの、自動能力データベース、自動面スプリットテーブル、スケーラブルで強力な一貫性を説明します。
sql構文レベルでは、mysqlと完全に互換性のあるradondbレベルで、すべてのsql機能を見ることができますradon_sql_statements_manualでradondbサポート
SQLノードがプロキシを介してMySQLクライアントからSQL要求を受信した後、RadondBはステートメントを解析し、クエリプランを作成してから計画を実行します。
+---------------+
x---------->|node1_Executor |
+--------------------+ x +---------------+
| SQL Node | x
|--------------------| x
+-------------+ | sqlparser | x +---------------+
| query |+----------->| |--x---------->|node2_Executor |
+-------------+ | Distributed Plan | x +---------------+
| | x
+--------------------+ x
x +---------------+
x---------->|node3_Executor |
+---------------+
Parsing
受信クエリは、SQLParser(MySQLによってサポートされている構文を記述する)と生成された抽象的構文ツリー(AST)によって解析されます。
Planning
ASTを使用すると、RadondBはプランノードのツリーを生成することにより、クエリの実行の計画を開始します。このステップには、タイプチェックなどのものを含む、予想されるAST式に対するクライアントのSQLステートメントを分析する手順も含まれています。
EXPLAINを使用して生成されるAクエリプランを確認できます(この段階では、 EXPLAINテーブル分布を分析するためにのみ使用します)。
Excuting
分散型実行計画と並行して、ストレージレイヤーで執行者を実行します。
SQLノードはステートレスですが、トランザクションSnapshot Isolationを保証するために、現在、書き込み - マルチプル読み取りモードです。
Distributed transaction
RadondBは、分散トランザクション機能を提供します。異なるストレージノードとノードの1つで分散した執行者が実行に失敗した場合、RESTノードの操作がロールバックされます。これにより、ノード全体で動作する原子性が保証され、データベースが一貫した状態になります。
Isolation Levels
RadondBは、一貫性のレベルでSi(スナップショット分離)のレベルを達成します。分散トランザクションがコミットしていない限り、または一部のパーティションがコミットした場合、操作は他のトランザクションには見えません。
Transaction with SQL Layer
SQLノードはステートレスですが、トランザクションSnapshot Isolationを保証するために、現在、書き込み - マルチプル読み取りモードです。
統合されたGithub Issueトラッカーは、このプロジェクトに使用されます。
RadondBはGPLV3の下でリリースされます。ライセンスを参照してください