Ridge Architettura di esecuzione
Questa pagina mappa il runtime condiviso da Ridge DB e Ridge Admin. Deriva dalla corrente ridged, ridge_pgwire, ridge_sql, ridge, e ridge-admin implementazioni piuttosto che da un modello di database generico.
Apri l'interattivo Archify diagramma
La mappa interattiva fornisce componenti ricercabili, tracciamento del percorso diretto, visualizzazioni guidate per il percorso di query principale, remoto SSH, durabilità e sicurezza, dark/light temi, navigazione tramite tastiera e SVG o esportazione raster.
Mappa 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
Il percorso principale è intenzionalmente stretto. Il browser non riceve mai un socket di database o SSH credenziale. Sia il profilo locale che quello remoto convergono sullo stesso pgwire, SQL contratti di transazione e di stoccaggio.
Componenti di esecuzione
| Componente | Responsabilità | Implementazione canonica |
|---|---|---|
| Interfaccia utente del browser | Esploratore di oggetti, SQL spazi di lavoro, modifica dei dati, operazioni | grove/apps/ridge-admin/static/ |
| HTTP cancello di sicurezza | Scambio di lancio una tantum, cookie di sessione, CSRF, controlli host e origine | grove/apps/ridge-admin/src/main.sd, src/lib.sd |
| Servizi amministrativi | Profili, metadati, SQL esecuzione, modifica, esportazione, diagnostica | grove/apps/ridge-admin/src/main.sd |
| Pgwire piscina | Quattro allacciamenti di proprietà, locazioni di spazi lavorativi, transazioni, cancellazioni | grove/apps/ridge-admin/src/lib.sd, grove/libs/pg |
| SSH trasporto | Verifica host noto, autenticazione, direct-tcpip, riconnessione e annullamento dei canali |
grove/libs/ssh, grove/apps/ridge-admin/src/main.sd |
ridged filo pg |
Ascoltatore di loopback, TLS/password autenticazione, frammenti del reattore, code, cancellazione, coordinamento dell'archiviazione | grove/libs/ridge_pgwire |
| Ridge SQL | Analisi, classificazione, pianificazione, esecuzione preparata, risultato e limiti di lavoro | grove/libs/ridge_sql |
| Ridge nucleo | Catalogo, schemi, MVCC, transazioni, indici, conflitti, vuoto, backup e ripristino | grove/libs/ridge |
| Stoccaggio durevole | Ricorsivo B+Trees, logico CRC-32 WAL, codec row/schema di seconda generazione | grove/libs/btree_store, grove/libs/wal, grove/libs/rowcodec |
Flusso di query primaria
- Ridge Admin associa il suo server HTTP a
127.0.0.1e fornisce al browser un token di frammento una tantum. - Il browser scambia il frammento con un file HTTP-solo cookie di sessione e riceve un token CSRF per sessione.
- Il dispatcher HTTP convalida la dimensione della richiesta, il percorso, il metodo, l'host, l'origine, sessione, CSRF e il tipo di contenuto prima di richiamare un servizio.
- Uno spazio di lavoro SQL affitta una connessione di proprietà dal pool di quattro connessioni.
- I profili locali si connettono a
ridgedin loopback. I profili remoti inseriscono il file stesso protocollo client tramite un canale SSHdirect-tcpipverificato senza aprire un listener di inoltro. - Un frammento di reattore
ridgedconvalida l'avvio, TLS/authentication, protocollo frame, istruzioni preparate, stato del portale, pressione di output e metadati di cancellazione. - Il coordinatore dello storage instrada la richiesta limitata a a Ridge SQL sessione.
- Ridge SQL analizza e pianifica un'istruzione supportata, applica result/work limiti ed esegue attraverso il Ridge nucleo.
- Ridge si applica il nucleo MVCC visibilità, bloccaggio, vincoli, indici, WAL pubblicazione, B+Tree modifiche, checksum e fsync come richiesto.
- I risultati vengono restituiti tramite pgwire. Ridge Admin converte il protocollo limitato frames to JSON or CSV and returns them to the browser.
Una scrittura interrotta non viene mai riprodotta automaticamente. Ridge Admin contrassegna un risultato ambiguo come incerto e richiede la verifica dell'operatore.
Modello di concorrenza
Persistente ridged richiede almeno due lavoratori del seme. Divide parte del gruppo di lavoro in frammenti del reattore non bloccanti e mantiene la capacità per il lavoro di stoccaggio. Ogni frammento possiede il proprio ascoltatore, lastra di connessione, stato del protocollo, piani preparati, contropressione di output, token di cancellazione e un lettore di istantanee di sola lettura. I canali delimitati collegano i frammenti al coordinatore dello storage.
Il coordinatore preserva la proprietà delle transazioni, il raggruppamento dei commit, il drenaggio degli arresti e il routing delle cancellazioni. Le letture possono utilizzare snapshot indipendenti; le scritture durevoli continuano a passare Ridge regole di rilevamento e pubblicazione dei conflitti.
Ridge Admin utilizza spawn strutturato per connessioni HTTP delimitate e un gestore SSH di proprietà. Lo stato del server possiede il pool, i lease dell'area di lavoro, l'annullamento delle query attive, lo stato di riconnessione e la pulizia deterministica.
Dipendenze esterne
| Dipendenza | Utilizzo in fase di esecuzione | Confine |
|---|---|---|
| OpenSSL 3 | Contesto e connessione server ridged nativo TLS I/O |
Backend nativo esplicito collegato a libssl e libcrypto |
| Runtime del seed ospitato | Socket, reattore di eventi, segnali, pianificazione attività, entropia, ora, file, blocchi e fsync | Runtime specifico della piattaforma ABI |
| File system del sistema operativo | File di database, WAL, catalogo, indici, istantanee, backup, registri, archivio profili | Radici assolute controllate dall'operatore o dall'utente |
| Navigatore | Presentazione, stato di vista di breve durata, bozze locali | Non attendibile rispetto all'autorità di backend |
| SSH server e agente | Identità dell'host, autenticazione, trasporto crittografato | Verificato prima del traffico del database |
Ridge non dipende da a PostgreSQL servitore. PostgreSQL la compatibilità è limitata al sottoinsieme di cavi lato client documentato.
Confini di sicurezza
Browser su Ridge Admin
- L'ascoltatore è solo loopback.
- Il segreto del lancio è contenuto nel file URL frammento, non un parametro di query.
- Lo scambio una tantum produce un cookie di sessione SameSite solo HTTP.
- Le mutazioni richiedono un'origine di loopback esatta e un token CSRF per sessione.
- Le combinazioni host, tipo di contenuto, dimensione header/body e route/method sono convalidato prima della spedizione.
- CSP, nessun negozio,
nosniffe il comportamento restrittivo dei referrer riducono i browser esposizione.
Ridge Admin nel database
- Il backend possiede tutti i socket, le transazioni, i segreti e la pulizia.
- I profili non mantengono le password del database, le password SSH o la chiave passphrase.
- Le credenziali conservate per la cancellazione o una riconnessione sono limitate e azzerato dalla memoria del processo.
- Un'area di lavoro rimane bloccata al relativo stato di transazione e connessione.
- Le disconnessioni non causano la riproduzione della query.
SSH confine
- La verifica rigorosa dell'host conosciuto è l'impostazione predefinita; accetta-nuovo esplicito è a politica del primo contatto, non bypass dell’host cambiato.
- Nativo
direct-tcpipi canali raggiungono il loopback remotoridgedpunto finale. - Nessun ascoltatore di inoltro TCP locale è aperto.
- L'annullamento della query utilizza un canale SSH verificato separato.
ridged confine
- Il servizio è vincolante solo a
127.0.0.1. - TLS e l'autenticazione tramite password sono configurate dall'operatore; un testo in chiaro la verifica della password è accettata solo all'interno di TLS.
- Il server corrente espone uno database/user configurato più un limite ruolo di sola lettura, non a PostgreSQL catalogo dei ruoli.
- Messaggi, istruzioni preparate, portali, code, buffer dei risultati e i conteggi delle connessioni hanno superato i limiti.
- Non supportato SQL e le forme del protocollo falliscono esplicitamente.
Confine di archiviazione
- Il database e le radici del backup sono assoluti e controllati dall'operatore.
- Nomi e percorsi rifiutano l'attraversamento; il ripristino rifiuta una destinazione esistente.
- WAL viene eseguito il checksum dei frame e dei file di backup.
- Il riconoscimento dell'impegno segue il limite di durabilità documentato.
- Il ripristino riproduce lo stato impegnato in modo idempotente e ricostruisce i derivati indici e teste.
- La modifica diretta del file ignora le invarianti e non è supportata.
Contenimento del fallimento
| Fallimento | Comportamento di contenimento |
|---|---|
| Malformato HTTP o corpo sovradimensionato | Errore HTTP digitato prima dell'invio del servizio |
| Frame pgwire non valido o protocollo non supportato | Errore protocol/SQLSTATE limitato e pulizia della connessione |
| Saturazione o timeout della coda | Rifiuto esplicito; nessuna crescita illimitata della coda |
| Cancellazione del cliente | Indirizzato al proprietario shard/session prima della pubblicazione, ove possibile |
| Interruzione della rete durante la scrittura | Risultato incerto; nessuna riproduzione automatica |
| Conflitto di transazione | Conflitto deterministico senza pubblicazione parziale |
| Arresto del processo | Riproduzione logica WAL impegnata; il lavoro inedito rimane invisibile |
| Corrotto WAL o backup | Checksum/integrity fallimento invece di accettazione silenziosa |
| Ripristina la collisione o l'attraversamento | Il ripristino offline rifiuta la destinazione |
Non-obiettivi architettonici
Questa mappa non implica un multiutente remoto Ridge Admin servizio, generale PostgreSQL amministrazione, replica, clustering, partizionamento orizzontale, un listener di database pubblico, SCRAM, identità di certificato, completo PostgreSQL cataloghi o senza restrizioni driver/ORM compatibilità.
Provenienza del diagramma
L'artefatto interattivo è stato prodotto con Archify 2.12 in modalità Architettura utilizzando la presentazione statica Classic e il cancello di composizione Showcase. La sua fonte digitata è seed/docs/diagrams/ridge-runtime.architecture.json.
La mappa è supportata da prove mediante l'ispezione del repository, ma intenzionalmente non incorpora percorsi di repository privati come prova della fonte cliccabile. I file sorgente sopra elencati rimangono i punti di ancoraggio della revisione.