RadondB es una base de datos MySQL de código abierto, nube-nube para la escalabilidad y rendimiento ilimitados.
RadondB es una base de datos nativa de nube basada en MySQL y se está diseñada en un clúster completamente distribuido que permite la escalabilidad ilimitada (escala), la capacidad y el rendimiento. Admitió una transacción distribuida que garantiza una alta consistencia de datos y aprovechó MySQL como motor de almacenamiento para la confiabilidad de los datos de confianza. RadondB es compatible con el protocolo MySQL y el fragmento automático de mesa de soporte, así como la función de lotes de automatización para simplificar el flujo de trabajo de mantenimiento y operación.
Para obtener orientación sobre instalación, implementación y administración, consulte nuestra documentación.
RadondB es una nueva generación de bases de datos relacionales distribuidas (MyNewsql) basada en MySQL. Fue diseñado para crear la base de datos de código abierto que nuestros desarrolladores desearían usar: una que tenga características, como la alta disponibilidad financiera 、 Base de datos de gran capacidad 、 Tabla dividida de plano automático 、 consistencia escalable y fuerte, esta guía se establece para detallar los trabajos internos del proceso de radón como un medio de explicación.
En el nivel de sintaxis SQL, RadondB totalmente compatible con mysql. Puede ver todas las características de SQL compatibles con RadondB aquí Radon_SQL_Statements_Manual
Después de que su nodo SQL recibe una solicitud SQL de un cliente MySQL a través de proxy, Radondb analiza la declaración, crea un plan de consulta y luego ejecuta el 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
Las consultas recibidas son analizadas por SQLParser (que describe la sintaxis compatible por MySQL) y generó árboles de sintaxis abstractos (AST).
Planning
Con el AST, Radondb comienza a planificar la ejecución de la consulta generando un árbol de planificadores. Este paso también incluye pasos que analizan las declaraciones SQL del cliente contra las expresiones AST esperadas, que incluyen cosas como la verificación de tipo.
Puede ver que el plan de consulta A genera el uso de EXPLAIN (en esta etapa solo usamos EXPLAIN distribución de la tabla de análisis).
Excuting
Ejecución de un albacea en una capa de almacenamiento en paralelo con un plan de ejecución distribuido.
El nodo SQL es estatoso, pero para garantizar Snapshot Isolation de la transacción, actualmente es un modo de lectura de escritura-multiple.
Distributed transaction
RadondB proporciona capacidades de transacción distribuidas. Si el ejecutor distribuido en diferentes nodos de almacenamiento y uno de los nodos no pudo ejecutarse, entonces la operación de los nodos REST se volverá hacia atrás, esto garantiza la atomicidad de operar entre nodos y hace que la base de datos en un estado consistente.
Isolation Levels
Radondb logra el nivel de SI (aislamiento de instantáneas) al nivel de consistencia. Mientras una transacción distribuida no se haya comprometido, o si algunas de las particiones se han comprometido, la operación es invisible para otras transacciones.
Transaction with SQL Layer
El nodo SQL es estatoso, pero para garantizar Snapshot Isolation de la transacción, actualmente es un modo de lectura de escritura-multiple.
El rastreador de problemas de GitHub integrado se utiliza para este proyecto.
RadondB se libera bajo el GPLV3. Ver licencia