Esitleme DBOS (andmebaasipõhine operatsioonisüsteem), mis arendab uut operatsioonisüsteemi skaleeritavate jaotatud rakenduste täitmiseks. Projekti iseloomustab andmebaasi kasutamine rakenduste ja süsteemi oleku salvestamiseks ning olekule juurdepääsu korraldamine ainult tehingute kaudu. Projekti arendavad teadlased Massachusettsi Tehnoloogiainstituudist, Wisconsinist ja Stanfordi ülikoolist, Carnegie Melloni ülikoolist ning ettevõtetest Google ja VMware. Arendustööd levitatakse MIT litsentsi alusel.
Riistvaraga suhtlemise komponendid ja madala taseme mälu haldamise teenused on viidud mikrokerne. Mikrokerne pakub võimalusi, mida kasutatakse andmebaasi kihi käivitamiseks. Kõrgtaseme süsteemiteenused, mis tagavad rakenduste täitmise, suhtlevad ainult jaotatud andmebaasiga ja on eraldatud mikrokerne ja konkreetse süsteemi komponentidest.
Jaotatud andmebaasi süsteemi (DBOS) ülesehitus võimaldab süsteemiteenuste loomist, mis on algusest peale jaotatud ja mitte seotud konkreetse sõlmega. See erineb traditionaalsetest klastrite süsteemidest, kus igal sõlmel töötab oma operatsioonisüsteemi eksemplar, mille kohal töötavad eraldi klastri ajakavad, jaotatud failisüsteemid ja võrguhaldurid.

Tuleb märkida, et DBOS-i aluseks olevate kaasaegsete jaotatud andmebaaside, mis salvestavad andmed mälus ja toetavad tehingute teostamist, nagu VoltDB ja FoundationDB kasutamine, suudab tagada jõudluse, mis on piisav paljude süsteemiteenuste tõhusaks toimimiseks. Andmebaasis võivad asuda ka ajakava, failisüsteemi ja IPC andmed. Samuti skaleeruvad need andmebaasid suurepäraselt, tagavad tehingute aatomilisuse ja isoleerituse, suudavad hallata petabaitide suuruses andmeid ning pakuvad tööriistu juurdepääsu haldamiseks ja andmevoogude jälgimiseks.
Pakutud arhitektuuri eeliste hulka kuulub analüütika võimaluste oluliselt laienenud hulk ja koodi keerukuse vähenemine, kasutades operatsioonisüsteemi teenustes tavalisi päringuid andmebaasihaldussüsteemidele (SÜB) ning sinna suunatakse tehingute rakendamised ja kõrge kättesaadavuse tagamise vahendid. Sarnast funktsionaalsust saab SÜB poolel rakendada üks kord ning kasutada seejärel operatsioonisüsteemi ja rakendustes.
Näiteks võib klastriplaanija salvestada teabe ülesannete ja töötlejate kohta SÜB tabelitesse ning rakendada planeerimise operatsioone nagu tavalisi tehinguid, segades imperatiivset koodi ja SQL-i. Tehingute kasutamine lihtsustab selliste probleemide lahendamist nagu mitme niidi juhtimine ja tõrke taastamine, kuna tehingud tagavad seisundi järjepidevuse ja vastupidavuse. Näiteks plaanija kontekstis võimaldavad tehingud korraldada samaaegset juurdepääsu jagatud andmetele ja tagada oleku terviklikkuse säilitamine tõrgete korral.
Andmebaaside logimise ja andanalyse mehhanisme saab kasutada rakenduste juurdepääsu ja oleku muutuste jälgimiseks, monitooringuks, silumiseks ja turvalisuse säilitamiseks. Näiteks pärast volitamata juurdepääsu tuvastamist saab SQL-päringute täitmise kaudu määrata lekkimise ulatuse, tuvastades kõik toimingud, mille on teinud protsessid, mis on saanud juurdepääsu konfidentsiaalsele teabele.
Projekt on arendamisel olnud üle aasta ja on praegu komponentide arhitktuuri prototüüpimise etapis. Hetkel on valmis prototüüp, mis töötab andmebaasi peal olevate operatsioonisüsteemi teenuste, nagu FS, IPC ja ajastaja, jaoks, samuti arendatakse tarkvarakeskkonda, mis pakub liidest rakenduste käivitamiseks FaaS (function-as-a-service) mudelil.
Järgmises arendusetapis on plaanis pakkuda täielikku tarkvarakogumit jaotatud rakenduste jaoks. Katsetustes kasutatakse praegu andmebaasina VoltDB, kuid käib arutelu enda andmete salvestamise kihi loomise või olemasolevate andmebaaside puuduvate funktsioonide elluviimise üle. Arutletakse ka, millised komponendid peaksid toimima tuumtasemel ja millised saab teostada andmebaasi peal.
Allikas: opennet.ru
