Proiectul DBOS (Sistem de Operare Orientat pe SGBD) a fost prezentat, dezvoltând un nou sistem de operare pentru executarea aplicațiilor distribuite scalabile. Caracteristica distinctivă a proiectului este utilizarea SGBD-ului pentru stocarea aplicațiilor și a stării sistemului, precum și organizarea accesului la stare doar prin intermediul tranzacțiilor. Proiectul este dezvoltat de cercetători de la Institutul Tehnologic din Massachusetts, Universitatea din Wisconsin și Universitatea Stanford, Universitatea Carnegie Mellon și companiile Google și VMware. Realizările sunt distribuite sub licența MIT.
Componentelor pentru interacțiunea cu hardware-ul și serviciile de gestionare a memoriei la nivel înalt au fost extrase în microkernel. Funcționalitățile furnizate de microkernel sunt utilizate pentru a lansa un strat cu SGBD. Serviciile sistemului la nivel înalt, care asigură executarea aplicațiilor, interacționează doar cu SGBD-ul distribuit și sunt separate de microkernel și de componentele specifice unui sistem.
Construcția deasupra SGBD-ului distribuit permite ca serviciile de sistem să fie inițial distribuite și să nu fie legate de un anumit nod, ceea ce deosebește DBOS de sistemele de cluster tradiționale, în care fiecare nod rulează propriul său exemplu de sistem de operare, pe care rulează programatori de cluster separați, FS-uri distribuite și gestionari de rețea.

Se observă că utilizarea DBOS ca bază a SGBD-urilor moderne distribuite, care stochează datele în memorie și suportă tranzacții, cum ar fi VoltDB și FoundationDB, poate oferi o performanță suficientă pentru executarea eficientă a multor servicii de sistem. În SGBD-uri pot fi de asemenea stocate datele programatorului, sistemului de fișiere și IPC. În acest context, SGBD-urile se scalază excelent, asigurând atomicitate și izolare a tranzacțiilor, pot gestiona petabyte de date, oferind instrumente pentru gestionarea accesului și urmărirea fluxurilor de date.
Printre avantajele arhitecturii propuse se numără extinderea semnificativă a capacităților de analiză și reducerea complexității codului prin utilizarea de interogări standard ale DBMS în servicii, mutând implementarea tranzacțiilor și a mijloacelor pentru asigurarea disponibilității ridicate (această funcționalitate poate fi implementată o singură dată pe partea DBMS și folosită în OS și aplicații).
De exemplu, planificatorul de cluster poate stoca informații despre sarcini și procesatori în tabelele DBMS și poate realiza operațiuni de planificare ca tranzacții standard, combinând codul imperativ și SQL. Utilizarea tranzacțiilor simplifică abordarea problemelor precum gestionarea firelor de execuție și recuperarea după erori, deoarece tranzacțiile garantează coerența și stabilitatea stării. În contextul exemplului cu planificatorul, tranzacțiile permit organizarea accesului simultan la datele partajate și asigurarea integrității stării în caz de defecțiuni.
Mecanismele de înregistrare și analiza datelor oferite de DBMS pot fi utilizate pentru urmărirea accesului și modificării stării aplicațiilor, monitorizare, depanare și menținerea securității. De exemplu, după descoperirea unei accesări neautorizate a sistemului, se pot determina, prin executarea de interogări SQL, amploarea scurgerii de date, identificând toate operațiunile efectuate de procesele care au obținut acces la informații confidențiale.
Proiectul este dezvoltat de mai bine de un an și se află în stadiul de creare a prototipurilor unor componente separate ale arhitecturii. În prezent, a fost pregătit un prototip de servicii de sistem de operare care funcționează pe lângă DBMS, cum ar fi FS, IPC și planificatorul, precum și se dezvoltă un mediu software care furnizează o interfață pentru rularea aplicațiilor pe baza modelului FaaS (function-as-a-service).
În etapa următoare de dezvoltare, se preconizează furnizarea unui pachet complet de software pentru aplicații distribuite. Deocamdată, VoltDB este folosit ca SGBD în experimente, dar se discută despre crearea propriului strat pentru stocarea datelor sau despre implementarea capacităților lipsă în SGBD-urile existente. Se discută, de asemenea, ce componente ar trebui să fie executate la nivel de kernel și care pot fi implementate deasupra SGBD-ului.
Sursa: opennet.ro
