Представена е разпределената операционна система DBOS, работеща върху СУБД

Представен е проектът DBOS (DBMS-ориентирана операционна система), разработващ нова операционна система за изпълнение на мащабируеми разпределени приложения. Специална характеристика на проекта е използването на СУБД за съхраняване на приложения и състояние на системата, както и организиране на достъп до състоянието само чрез транзакции. Проектът се разработва от изследователи от Масачузетския технологичен институт, Университета на Уисконсин и Станфорд, Университета Карнеги Мелън и Google и VMware. Работата се разпространява под лиценза на MIT.

Компонентите за взаимодействие с оборудването и услугите за управление на паметта на ниско ниво са поставени в микроядрото. Възможностите, предоставени от микроядрото, се използват за стартиране на слоя СУБД. Системните услуги от високо ниво, които позволяват изпълнението на приложения, взаимодействат само с разпределената СУБД и са отделени от микроядрото и специфичните за системата компоненти.

Изграждането върху разпределена СУБД дава възможност системните услуги да бъдат първоначално разпределени и да не са обвързани с конкретен възел, което отличава DBOS от традиционните клъстерни системи, в които всеки възел изпълнява свой собствен екземпляр на операционната система, върху който отделни стартират клъстерни програмисти, разпределени файлови системи и мрежови мениджъри.

Представена е разпределената операционна система DBOS, работеща върху СУБД

Отбелязва се, че използването на модерни разпределени СУБД като основа за DBOS, съхраняване на данни в RAM и поддържащи транзакции, като VoltDB и FoundationDB, може да осигури производителност, достатъчна за ефективното изпълнение на много системни услуги. СУБД може също да съхранява планировчик, файлова система и IPC данни. В същото време СУБД са силно мащабируеми, осигуряват атомарност и изолация на транзакциите, могат да управляват петабайти данни и предоставят инструменти за контрол на достъпа и проследяване на потоците от данни.

Сред предимствата на предложената архитектура е значително разширяване на възможностите за анализ и намаляване на сложността на кода поради използването на обикновени заявки към СУБД в услугите на операционната система, от страна на които изпълнението на транзакции и инструменти за осигуряване на висока наличността се извършва (такава функционалност може да бъде внедрена от страна на СУБД веднъж и използвана в ОС и приложения).

Например клъстерен планировчик може да съхранява информация за задачи и манипулатори в СУБД таблици и да прилага операции по планиране като редовни транзакции, смесвайки императивен код и SQL. Транзакциите улесняват решаването на проблеми като управление на паралелността и възстановяване при повреда, тъй като транзакциите гарантират последователност и постоянство на състоянието. В контекста на примера на планировчика, транзакциите позволяват едновременен достъп до споделени данни и гарантират, че целостта на състоянието се поддържа в случай на грешки.

Механизмите за регистриране и анализ на данни, предоставени от СУБД, могат да се използват за проследяване на достъпа и промените в състоянието на приложението, наблюдение, отстраняване на грешки и поддържане на сигурността. Например, след откриване на неоторизиран достъп до система, можете да стартирате SQL заявки, за да определите степента на изтичане, като идентифицирате всички операции, извършени от процеси, които са получили достъп до поверителна информация.

Проектът се разработва повече от година и е на етап създаване на прототипи на отделни архитектурни компоненти. В момента е подготвен прототип на услуги на операционната система, работещи върху СУБД, като FS, IPC и планировчик, и се разработва софтуерна среда, която предоставя интерфейс за стартиране на приложения, базирани на FaaS (функция като- a-service) модел.

Следващият етап от разработката предвижда предоставянето на пълноценен софтуерен стек за разпределени приложения. В момента VoltDB се използва като СУБД в експерименти, но се провеждат дискусии за създаване на наш собствен слой за съхраняване на данни или прилагане на липсващи възможности в съществуващи СУБД. Въпросът кои компоненти трябва да се изпълняват на ниво ядро ​​и кои могат да бъдат внедрени върху СУБД също се обсъжда.

Източник: opennet.ru

Добавяне на нов коментар