Ridge Arquitectura de tiempo de ejecución
Esta página asigna el tiempo de ejecución compartido por Ridge DB y Ridge Admin. Se deriva de la actual ridged, ridge_pgwire, ridge_sql, ridge, y ridge-admin implementaciones en lugar de una plantilla de base de datos genérica.
Abre el interactivo Archify diagrama
El mapa interactivo proporciona componentes con capacidad de búsqueda, seguimiento de ruta dirigido, vistas guiadas para la ruta de consulta principal, acceso remoto SSH, durabilidad y seguridad, dark/light temas, navegación por teclado y SVG o exportación de trama.
Mapa del sistema
Browser
│ HTTP on loopback
▼
Ridge Admin security gate
│ authenticated API + workspace
▼
Ridge Admin services ──► four-connection pgwire pool
│
├── local pgwire ─────────────────────┐
│ │
└── verified SSH direct-tcpip ────────┤
▼
ridged pgwire runtime
│
▼
Ridge SQL session
│
▼
Ridge core / MVCC
│
▼
B+Trees + WAL + rows
El camino principal es intencionalmente estrecho. El navegador nunca recibe un socket de base de datos o SSH credencial. Tanto el perfil local como el remoto convergen en el mismo pgwire, SQL, transacciones y contratos de almacenamiento.
Componentes de tiempo de ejecución
| Componente | Responsabilidad | Implementación canónica |
|---|---|---|
| Interfaz de usuario del navegador | explorador de objetos, SQL espacios de trabajo, edición de datos, operaciones | grove/apps/ridge-admin/static/ |
| HTTP puerta de seguridad | Intercambio de inicio único, cookie de sesión, CSRF, comprobaciones de host y origen | grove/apps/ridge-admin/src/main.sd, src/lib.sd |
| Servicios de administración | Perfiles, metadatos, SQL ejecución, edición, exportación, diagnóstico | grove/apps/ridge-admin/src/main.sd |
| Pgwire piscina | Cuatro conexiones propias, arrendamientos de espacios de trabajo, transacciones, cancelación. | grove/apps/ridge-admin/src/lib.sd, grove/libs/pg |
| SSH transporte | Verificación de host conocido, autenticación, direct-tcpip, reconexión y cancelación de canales |
grove/libs/ssh, grove/apps/ridge-admin/src/main.sd |
ridged pgwire |
Oyente de bucle invertido, TLS/password autenticación, fragmentos de reactor, colas, cancelación, coordinación de almacenamiento | grove/libs/ridge_pgwire |
| Ridge SQL | Análisis, clasificación, planificación, ejecución preparada, resultados y límites de trabajo. | grove/libs/ridge_sql |
| Ridge centro | Catálogo, esquemas, MVCC, transacciones, índices, conflictos, vacío, respaldo y recuperación. | grove/libs/ridge |
| Almacenamiento duradero | Recursivo B+Trees, lógico CRC-32 WAL, códec row/schema de segunda generación | grove/libs/btree_store, grove/libs/wal, grove/libs/rowcodec |
Flujo de consulta principal
- Ridge Admin vincula su servidor HTTP a
127.0.0.1y le da al navegador una token de fragmento único. - El navegador intercambia el fragmento por un HTTP-solo cookie de sesión y recibe un token CSRF por sesión.
- El despachador HTTP valida el tamaño de la solicitud, la ruta, el método, el host, el origen, sesión, CSRF y tipo de contenido antes de invocar un servicio.
- Un espacio de trabajo SQL alquila una conexión propia del grupo de cuatro conexiones.
- Los perfiles locales se conectan a
ridgeden loopback. Los perfiles remotos ponen el mismo protocolo de cliente a través de un canal SSHdirect-tcpipverificado sin abrir un oyente de reenvío. - Un fragmento de reactor
ridgedvalida el protocolo de inicio, TLS/authentication marcos, declaraciones preparadas, estado del portal, presión de salida y metadatos de cancelación. - El coordinador de almacenamiento enruta la solicitud limitada a un Ridge SQL sesión.
- Ridge SQL analiza y planifica una declaración admitida, aplica result/work límites, y se ejecuta a través del Ridge núcleo.
- Ridge se aplica el núcleo MVCC visibilidad, bloqueo, restricciones, índices, WAL publicación, B+Tree cambios, sumas de verificación y fsync según sea necesario.
- Los resultados regresan a través de pgwire. Ridge Admin convierte el protocolo acotado frames to JSON or CSV and returns them to the browser.
Una escritura interrumpida nunca se reproduce automáticamente. Ridge Admin marca un resultado ambiguo como incierto y requiere verificación del operador.
Modelo de concurrencia
El ridged persistente requiere al menos dos trabajadores de semilla. Divide parte del conjunto de trabajadores en fragmentos de reactor que no se bloquean y mantiene la capacidad para el trabajo de almacenamiento. Cada fragmento posee su oyente, losa de conexión, estado del protocolo, planes preparados, contrapresión de salida, token de cancelación y un lector de instantáneas de solo lectura. Los canales delimitados conectan fragmentos al coordinador de almacenamiento.
El coordinador preserva la propiedad de las transacciones, la agrupación de confirmaciones, el drenaje de cierres y el enrutamiento de cancelaciones. Las lecturas pueden utilizar instantáneas independientes; las escrituras duraderas aún pasan Ridge Reglas de detección y publicación de conflictos.
Ridge Admin utiliza spawn estructurado para conexiones HTTP limitadas y un administrador SSH propio. El estado del servidor es propietario del grupo, los arrendamientos del espacio de trabajo, la cancelación de consultas activas, el estado de reconexión y la limpieza determinista.
Dependencias externas
| dependencia | Uso en tiempo de ejecución | Límite |
|---|---|---|
| OpenSSL 3 | Servidor nativo ridged TLS contexto y conexión I/O |
Backend nativo explícito vinculado con libssl y libcrypto |
| Tiempo de ejecución de semilla alojada | Sockets, reactor de eventos, señales, programador de tareas, entropía, tiempo, archivos, bloqueos y fsync | Tiempo de ejecución específico de la plataforma ABI |
| Sistema de archivos del sistema operativo | Archivos de base de datos, WAL, catálogo, índices, instantáneas, copias de seguridad, registros, almacén de perfiles | Raíces absolutas controladas por el operador o el usuario |
| Navegador | Presentación, estado de vista breve, borradores locales. | No confiable en relación con la autoridad de backend |
| SSH servidor y agente | Identidad del host, autenticación, transporte cifrado. | Verificado antes del tráfico de la base de datos |
Ridge no depende de un PostgreSQL servidor. PostgreSQL la compatibilidad se limita al subconjunto de cables del lado del cliente documentado.
Límites de seguridad
Navegador a Ridge Admin
- El oyente es sólo de bucle invertido.
- El secreto de lanzamiento se lleva en el URL fragmento, no un parámetro de consulta.
- El intercambio único produce una cookie de sesión SameSite exclusiva de HTTP.
- Las mutaciones requieren un origen de bucle invertido exacto y un token CSRF por sesión.
- Las combinaciones de host, tipo de contenido, tamaño header/body y route/method son validado antes del envío.
- CSP, sin tienda,
nosniffy el comportamiento restrictivo de referencia reduce el navegador. exposición.
Ridge Admin a la base de datos
- El backend posee todos los sockets, transacciones, secretos y limpieza.
- Los perfiles no conservan las contraseñas de la base de datos, las contraseñas SSH ni la clave. frases de contraseña.
- Las credenciales retenidas para cancelación o reconexión están limitadas y puesto a cero desde la memoria del proceso.
- Un espacio de trabajo permanece anclado a su estado de transacción y conexión.
- Las desconexiones no provocan la repetición de la consulta.
SSH límite
- La verificación estricta de host conocido es la opción predeterminada; aceptar-nuevo explícito es un política de primer contacto, no una omisión de host cambiado.
- Nativo
direct-tcpipLos canales llegan al loopback remoto.ridgedpunto final. - No se abre ningún escucha de reenvío TCP local.
- La cancelación de consultas utiliza un canal SSH verificado por separado.
ridged límite
- El servicio se vincula únicamente a
127.0.0.1. - TLS y la autenticación de contraseña están configuradas por el operador; un texto claro El desafío de contraseña se acepta solo dentro de TLS.
- El servidor actual expone un database/user configurado más un límite rol de solo lectura, no un PostgreSQL catálogo de roles.
- Mensajes, declaraciones preparadas, portales, colas, buffers de resultados y Los recuentos de conexiones tienen límites verificados.
- Las formas de protocolo y SQL no compatibles fallan explícitamente.
Límite de almacenamiento
- Las raíces de la base de datos y de la copia de seguridad son absolutas y están controladas por el operador.
- Los nombres y los caminos rechazan el cruce; restaurar rechaza un objetivo existente.
- WAL los marcos y los archivos de copia de seguridad se suman.
- El reconocimiento de confirmación sigue el límite de durabilidad documentado.
- La recuperación reproduce el estado comprometido de forma idempotente y reconstruye los resultados derivados. índices y cabezas.
- La edición directa de archivos omite las invariantes y no es compatible.
Contención de fallas
| fracaso | Comportamiento de contención |
|---|---|
| mal formado HTTP o cuerpo de gran tamaño | Error escrito HTTP antes del envío del servicio |
| Marco pgwire no válido o protocolo no compatible | Error de protocol/SQLSTATE limitado y limpieza de conexión |
| Saturación de cola o tiempo de espera | Rechazo explícito; sin crecimiento ilimitado de colas |
| Cancelación de cliente | Dirigido al propietario shard/session antes de la publicación, siempre que sea posible |
| Interrupción de la red durante la escritura | Resultado incierto; sin repetición automática |
| Conflicto de transacción | Conflicto determinista sin publicación parcial |
| Fallo del proceso | Reproducción lógica WAL confirmada; el trabajo inédito permanece invisible |
| corrupto WAL o copia de seguridad | Checksum/integrity fracaso en lugar de aceptación silenciosa |
| Restaurar colisión o recorrido | La restauración sin conexión rechaza el objetivo |
No objetivos arquitectónicos
Este mapa no implica un multiusuario remoto. Ridge Admin servicio, generales PostgreSQL administración, replicación, agrupación en clústeres, fragmentación, escucha de bases de datos públicas, SCRAM, identidades de certificados, completo PostgreSQL catálogos o sin restricciones driver/ORM compatibilidad.
Procedencia del diagrama
El artefacto interactivo se produjo con Archify 2.12 en modo Arquitectura utilizando la presentación estática clásica y la puerta de composición Showcase. Su fuente escrita es seed/docs/diagrams/ridge-runtime.architecture.json.
El mapa está respaldado por evidencia mediante la inspección del repositorio, pero intencionalmente no incorpora rutas de repositorios privados como evidencia de fuente en la que se puede hacer clic. Los archivos fuente enumerados anteriormente siguen siendo los anclajes de la revisión.