Viene presentato il sistema operativo distribuito DBOS in esecuzione sul DBMS

Viene presentato il progetto DBOS (DBMS-Oriented Operating System), che sviluppa un nuovo sistema operativo per l'esecuzione di applicazioni distribuite scalabili. Una particolarità del progetto è l'utilizzo di un DBMS per la memorizzazione delle applicazioni e dello stato del sistema, nonché l'organizzazione dell'accesso allo stato solo tramite transazioni. Il progetto è stato sviluppato da ricercatori del Massachusetts Institute of Technology, dell'Università del Wisconsin e Stanford, della Carnegie Mellon University e di Google e VMware. L'opera è distribuita sotto licenza MIT.

Nel microkernel sono inseriti i componenti per l'interazione con le apparecchiature e i servizi di gestione della memoria di basso livello. Le funzionalità fornite dal microkernel vengono utilizzate per avviare il livello DBMS. I servizi di sistema di alto livello che consentono l'esecuzione delle applicazioni interagiscono solo con il DBMS distribuito e sono separati dal microkernel e dai componenti specifici del sistema.

Costruire su un DBMS distribuito rende possibile rendere i servizi di sistema inizialmente distribuiti e non legati a un nodo specifico, il che distingue i DBOS dai tradizionali sistemi cluster, in cui ogni nodo esegue la propria istanza del sistema operativo, sulla quale sono separate vengono lanciati pianificatori di cluster, file system distribuiti e gestori di rete.

Viene presentato il sistema operativo distribuito DBOS in esecuzione sul DBMS

Va notato che l’utilizzo di moderni DBMS distribuiti come base per DBOS, l’archiviazione dei dati nella RAM e il supporto di transazioni, come VoltDB e FoundationDB, possono fornire prestazioni sufficienti per l’esecuzione efficiente di molti servizi di sistema. Il DBMS può anche memorizzare dati di pianificazione, file system e IPC. Allo stesso tempo, i DBMS sono altamente scalabili, forniscono atomicità e isolamento delle transazioni, possono gestire petabyte di dati e fornire strumenti per il controllo degli accessi e il monitoraggio dei flussi di dati.

Tra i vantaggi dell'architettura proposta c'è una significativa espansione delle capacità di analisi e una riduzione della complessità del codice dovuta all'uso di query ordinarie al DBMS nei servizi del sistema operativo, dal lato della quale l'implementazione di transazioni e strumenti per garantire un'elevata viene effettuata la disponibilità (tale funzionalità può essere implementata una sola volta sul lato DBMS e utilizzata nel sistema operativo e nelle applicazioni).

Ad esempio, uno scheduler del cluster può archiviare informazioni su attività e gestori in tabelle DBMS e implementare operazioni di pianificazione come transazioni regolari, mescolando codice imperativo e SQL. Le transazioni semplificano la risoluzione di problemi quali la gestione della concorrenza e il ripristino degli errori poiché le transazioni garantiscono coerenza e persistenza dello stato. Nel contesto dell'esempio dello scheduler, le transazioni consentono l'accesso simultaneo ai dati condivisi e garantiscono che l'integrità dello stato venga mantenuta in caso di errori.

I meccanismi di registrazione e analisi dei dati forniti dal DBMS possono essere utilizzati per tenere traccia dell'accesso e delle modifiche allo stato dell'applicazione, al monitoraggio, al debug e al mantenimento della sicurezza. Ad esempio, dopo aver rilevato l'accesso non autorizzato a un sistema, è possibile eseguire query SQL per determinare l'entità della perdita, identificando tutte le operazioni eseguite dai processi che hanno ottenuto l'accesso a informazioni riservate.

Il progetto è in sviluppo da più di un anno ed è nella fase di creazione di prototipi di singoli componenti architettonici. Attualmente è stato preparato un prototipo dei servizi del sistema operativo in esecuzione sul DBMS, come FS, IPC e scheduler, ed è in fase di sviluppo un ambiente software che fornisce un'interfaccia per l'esecuzione di applicazioni basate su FaaS (function-as- modello a-servizio).

La fase successiva dello sviluppo prevede di fornire uno stack software completo per applicazioni distribuite. VoltDB è attualmente utilizzato come DBMS negli esperimenti, ma sono in corso discussioni sulla creazione di un nostro livello per l'archiviazione dei dati o sull'implementazione delle funzionalità mancanti nei DBMS esistenti. È in discussione anche la questione di quali componenti debbano essere eseguiti a livello del kernel e quali possano essere implementati sul DBMS.

Fonte: opennet.ru

Aggiungi un commento