Yandex ha rilasciato il codice sorgente del suo DBMS «YDB»

Recentemente la notizia lo ha reso noto Yandex ha rilasciato il codice sorgente del suo DBMS, «YDB», che implementa il supporto per il dialetto SQL e le transazioni ACID.

il DBMS è stato costruito da zero ed è stato inizialmente sviluppato con l'obiettivo di garantire la tolleranza ai guasti, failover automatico e scalabilità. Va notato che Yandex ha lanciato cluster YDB funzionanti, inclusi più di 10mila nodi, che archiviano centinaia di petabyte di dati e servono milioni di transazioni distribuite al secondo.

Principali novità di YDB

Tra le caratteristiche che si distinguono da YDB c'è il utilizzo del modello dati relazionale con tabelle YQL (YDB Query Language) viene utilizzato per interrogare e definire lo schema dei dati, ovvero un dialetto di SQL adattato per funzionare con database distribuiti di grandi dimensioni. Quando si crea uno schema di archiviazione, è supportato un raggruppamento di tabelle ad albero, che ricorda le directory di un file system. Viene fornita un'API per lavorare con i dati in formato JSON.

Il capacità di creare configurazioni a tolleranza d'errore che continuano a funzionare quando dischi, nodi, rack e persino singoli data center si guastano. YDB supporta la distribuzione e la replica sincrone su tre zone di disponibilità mantenendo lo stato del cluster in caso di guasto di una delle zone.

Supporto per l'accesso ai dati utilizzando query di scansione, progettate per eseguire query analitiche ad hoc sul database, eseguite in modalità di sola lettura e restituendo un flusso grpc.

Inoltre, si distingue anche memorizzare i dati direttamente sui dispositivi a blocchi utilizzando il componente PDisk nativo e il livello VDisk. Oltre a VDisk, viene eseguito DSProxy, che analizza la disponibilità e le prestazioni dei dischi per escluderli se vengono rilevati problemi.

Del altre caratteristiche che risaltano:

  • Un'architettura flessibile che ti consente di creare vari servizi su YDB, fino a dispositivi a blocchi virtuali e code persistenti. Idoneità a diversi tipi di carico di lavoro: OLTP e OLAP (query analitiche).
  • Supporto per configurazioni multiutente (multi-tenant) e serverless.
  • Possibilità di autenticare i clienti. Gli utenti possono creare i propri cluster e database virtuali su un'infrastruttura condivisa comune, considerando il consumo di risorse in termini di numero di richieste e dimensioni dei dati, oppure noleggiando/riservando determinate risorse di elaborazione e spazio di archiviazione.
  • Possibilità di regolare la vita utile delle registrazioni per la cancellazione automatica dei dati obsoleti.
  • L'interazione con il DBMS e l'invio delle richieste avviene tramite l'interfaccia della riga di comando, l'interfaccia Web integrata o l'SDK YDB, che fornisce librerie per C++, C# (.NET), Go, Java, Node.js, PHP e Python.
  • Ripristino automatico degli errori con il minimo ritardo per le applicazioni e mantenimento automatico della ridondanza specificata durante l'archiviazione dei dati.
  • Creazione automatica di indici sulla chiave primaria e possibilità di definire indici secondari per migliorare l'efficienza dell'accesso arbitrario alle colonne.
  • Scalabilità orizzontale. Con l'aumento del carico e delle dimensioni dei dati archiviati, il cluster può essere ampliato semplicemente collegando nuovi nodi. I livelli di elaborazione e archiviazione sono separati, consentendoti di scalare separatamente elaborazione e archiviazione. Lo stesso DBMS controlla la distribuzione uniforme dei dati e del carico, tenendo conto delle risorse hardware disponibili. È possibile implementare configurazioni geograficamente distribuite che coprono più data center in diverse parti del mondo.
  • Supporto per un modello di coerenza forte e transazioni ACID durante l'elaborazione di query che si estendono su più nodi e tabelle. Per migliorare le prestazioni, puoi disabilitare in modo selettivo il controllo della coerenza.
  • Replica automatica dei dati, partizionamento automatico (partizionamento, partizionamento orizzontale) all'aumentare delle dimensioni o del carico e bilanciamento automatico del carico e dei dati tra i nodi.

Infine, va notato che YDB è utilizzato nei progetti Yandex, il codice è scritto in C/C++ ed è distribuito sotto licenza Apache 2.0, puoi vedere il codice sorgente, oltre a maggiori dettagli a riguardo Nel seguente collegamento.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.