Esitetään hajautettu käyttöjärjestelmä DBOS, joka toimii DBMS:n päällä

Esittelyssä on DBOS (DBMS-oriented Operating System) -projekti, joka kehittää uutta käyttöjärjestelmää skaalattavien hajautettujen sovellusten ajamiseen. Projektin erityispiirre on DBMS:n käyttö sovellusten ja järjestelmän tilan tallentamiseen sekä tilaan pääsyn järjestäminen vain tapahtumien kautta. Projektia kehittävät tutkijat Massachusetts Institute of Technologysta, Wisconsinin ja Stanfordin yliopistosta, Carnegie Mellon Universitystä sekä Googlesta ja VMwaresta. Teosta levitetään MIT-lisenssillä.

Mikroytimeen sijoitetaan komponentit vuorovaikutukseen laitteiden ja matalan tason muistinhallintapalvelujen kanssa. Mikroytimen tarjoamia ominaisuuksia käytetään DBMS-kerroksen käynnistämiseen. Korkean tason järjestelmäpalvelut, jotka mahdollistavat sovellusten suorittamisen, ovat vuorovaikutuksessa vain hajautetun DBMS:n kanssa ja ovat erillään mikroytimestä ja järjestelmäkohtaisista komponenteista.

Hajautetun DBMS:n päälle rakentaminen mahdollistaa järjestelmäpalvelujen alun hajautetun eikä tiettyyn solmuun sidonnan, mikä erottaa DBOS:n perinteisistä klusterijärjestelmistä, joissa jokainen solmu ajaa omaa käyttöjärjestelmän ilmentymää, jonka päällä on erillinen. klusterin aikatauluttimet, hajautetut tiedostojärjestelmät ja verkonhallintaohjelmat julkaistaan.

Esitetään hajautettu käyttöjärjestelmä DBOS, joka toimii DBMS:n päällä

On huomattava, että nykyaikaisten hajautettujen DBMS-järjestelmien käyttäminen DBOS:n perustana, tietojen tallentaminen RAM-muistiin ja tapahtumien tukeminen, kuten VoltDB ja FoundationDB, voivat tarjota riittävän suorituskyvyn monien järjestelmäpalvelujen tehokkaaseen suorittamiseen. DBMS voi myös tallentaa ajoitus-, tiedostojärjestelmä- ja IPC-tietoja. Samaan aikaan DBMS:t ovat erittäin skaalautuvia, tarjoavat atomisuuden ja tapahtumien eristäytymisen, voivat hallita datan petatavuja ja tarjoavat työkaluja kulunvalvontaan ja tietovirtojen seurantaan.

Ehdotetun arkkitehtuurin etujen joukossa on analytiikkaominaisuuksien merkittävä laajeneminen ja koodin monimutkaisuuden väheneminen, joka johtuu tavallisten DBMS-kyselyjen käytöstä käyttöjärjestelmäpalveluissa, joiden puolella tapahtumien ja työkalujen toteuttaminen korkean käytettävyys suoritetaan (tällainen toiminnallisuus voidaan toteuttaa DBMS-puolella kerran ja käyttää käyttöjärjestelmässä ja sovelluksissa).

Esimerkiksi klusterin ajoitusohjelma voi tallentaa tietoja tehtävistä ja käsittelijöistä DBMS-taulukoihin ja toteuttaa ajoitusoperaatioita tavallisina tapahtumina sekoittaen pakollista koodia ja SQL:ää. Tapahtumat helpottavat ongelmien, kuten samanaikaisuuden hallinnan ja vikojen palautuksen, ratkaisemista, koska tapahtumat takaavat johdonmukaisuuden ja tilan pysyvyyden. Aikataulun esimerkin yhteydessä tapahtumat mahdollistavat samanaikaisen pääsyn jaettuun dataan ja varmistavat, että tilan eheys säilyy virheiden sattuessa.

DBMS:n tarjoamia loki- ja data-analyysimekanismeja voidaan käyttää pääsyn ja sovelluksen tilan muutosten seurantaan, valvontaan, virheenkorjaukseen ja turvallisuuden ylläpitämiseen. Kun olet esimerkiksi havainnut järjestelmän luvattoman käytön, voit suorittaa SQL-kyselyitä vuodon laajuuden määrittämiseksi ja tunnistaa kaikki luottamuksellisiin tietoihin pääsyn saaneiden prosessien suorittamat toiminnot.

Projektia on kehitetty yli vuoden ja se on parhaillaan luomassa yksittäisten arkkitehtonisten komponenttien prototyyppejä. Tällä hetkellä on valmisteltu prototyyppi DBMS:n päällä toimivista käyttöjärjestelmäpalveluista, kuten FS, IPC ja ajoitus, ja kehitteillä on ohjelmistoympäristö, joka tarjoaa käyttöliittymän FaaS-pohjaisten sovellusten ajamiseen (function-as- a-service) malli.

Seuraavassa kehitysvaiheessa on tarkoitus tarjota täysimittainen ohjelmistopino hajautetuille sovelluksille. VoltDB:tä käytetään tällä hetkellä DBMS-järjestelmänä kokeiluissa, mutta keskusteluja käydään oman kerroksen luomisesta tietojen tallentamista varten tai puuttuvien ominaisuuksien toteuttamisesta olemassa olevissa DBMS-järjestelmissä. Myös kysymys siitä, mitkä komponentit tulisi suorittaa ydintasolla ja mitkä voidaan toteuttaa DBMS:n päälle, on myös keskustelun alla.

Lähde: opennet.ru

Lisää kommentti