Change language

Archiviazione Behemoth

Behemoth è la base nativa per l'archiviazione di Converged. Fornisce diversi
modelli di dati attraverso un unico runtime compatto, mantenendo al contempo un
confine di archiviazione fisico separato per ogni microservizio.

Archiviazione per servizi modulari

Ogni servizio di dominio possiede i propri dati. Non condivide tabelle o indici
con servizi non correlati e non deve gestire uno stack di database separato.
Behemoth serve le radici isolate da un processo nativo comune e instrada ogni
richiesta verso l'archivio corretto.

orders service -> orders volume -> SQL and files calls service -> calls volume -> key-value and audio fragments search service -> search volume -> vector index

La separazione è fisica, non una semplice convenzione di denominazione. Se la
radice di un servizio non è montata e dichiarata, Behemoth rifiuta di creare il
suo archivio. Un errore di distribuzione diventa quindi immediatamente visibile
invece di scrivere dati nel file system temporaneo del container.

Più modelli di dati

Carichi di lavoro diversi richiedono strutture diverse. Behemoth combina
l'archiviazione relazionale, chiave-valore, a colonne, vettoriale, a grafo e su
file dietro lo stesso confine di runtime. Un servizio sceglie l'archivio più
adatto ai propri dati senza aggiungere alla piattaforma un nuovo prodotto di
database esterno.

I motori rimangono internamente specializzati. Il livello unificato è
responsabile del ciclo di vita, dell'isolamento, del trasporto e dei metadati,
non di fingere che tutti i modelli di dati si comportino allo stesso modo.

Posizionamento e scalabilità

Il posizionamento dell'archiviazione è indipendente dal codice applicativo. Un'
installazione edge può utilizzare un singolo processo Behemoth. Le distribuzioni
più grandi possono dividere gli ambiti tra diverse istanze, mentre un profilo
cloud può assegnare a ogni tenant la propria istanza di archiviazione.

Ogni microservizio conserva il proprio volume in ogni profilo. Spostare un
ambito o un servizio su un'altra istanza Behemoth modifica la configurazione di
distribuzione, mentre i chiamanti continuano a utilizzare la stessa identità
logica di archiviazione.

Confini di errore e ripristino

Gli archivi di proprietà dei singoli servizi riducono l'impatto di corruzione,
migrazioni e operazioni di backup. Un problema in un archivio non richiede il
ripristino di un database condiviso per l'intera piattaforma. I dump e il
ripristino possono essere gestiti per il confine del servizio interessato, e i
servizi non correlati continuano a operare.

Ruolo nel sistema

Le richieste di archiviazione raggiungono Behemoth tramite Fujin, come le
richieste verso qualsiasi altro peer di runtime. Ptah fornisce il layout dei
volumi e la configurazione dei mount. Behemoth esegue le operazioni di
archiviazione, ma non coordina i flussi di lavoro aziendali, non seleziona i
tenant e non definisce quali servizi compongano una soluzione.