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

Представлений проект DBOS (DBMS-oriented Operating System), що розвиває нову операційну систему для виконання масштабованих розподілених додатків. Особливістю проекту є використання СУБД для зберігання програм та стану системи, а також організація доступу до стану лише через транзакції. Проект розвивається дослідниками з Массачусетського технологічного інституту, Вісконсінського та Стенфордського університетів, університету Карнегі-Меллона та компаній Google та VMware. Доробки поширюються під ліцензією MIT.

Компоненти для взаємодії з обладнанням та низькорівневі послуги управління пам'яттю винесені в мікроядро. Можливості, що надаються мікроядром, використовуються для запуску шару з СУБД. Високорівневі системні послуги, що забезпечують виконання додатків, взаємодіють лише з розподіленою СУБД і відокремлені від мікроядра та специфічних для конкретної системи компонентів.

Побудова поверх розподіленої СУБД дозволяє зробити системні сервіси спочатку розподіленими і не прив'язаними до конкретного вузла, що відрізняє DBOS від традиційних кластерних систем, у яких кожному вузлі виконується власний екземпляр операційної системи, поверх якої запускаються окремі кластерні планувальники, розподілені ФС і мережеві.

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

Зазначається, що використання як основи DBOS сучасних розподілених СУБД, що зберігають дані в оперативній пам'яті та підтримують транзакції, таких як VoltDB і FoundationDB, здатне забезпечити продуктивність, достатню для ефективного виконання багатьох системних сервісів. У СУБД у тому числі можуть розміщуватись дані планувальника, файлової системи та IPC. При цьому СУБД відмінно масштабуються, забезпечують атомарність та ізольованість транзакцій, можуть керувати петабайтами даних, надають інструменти для керування доступом та відстеження потоків даних.

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

Наприклад, кластерний планувальник може зберігати інформацію про завдання та обробників у таблицях СУБД та реалізовувати операції планування як звичайні транзакції, змішуючи імперативний код та SQL. Застосування транзакцій спрощує вирішення таких проблем, як керування багатопоточністю та відновлення після збоїв, оскільки транзакції гарантують узгодженість та стійкість стану. У контексті прикладу з планувальником транзакції дозволяють організувати одночасний доступ до даних, що спільно використовуються, і гарантувати збереження цілісності стану у разі збоїв.

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

Проект розробляється вже більше року та перебуває на стадії створення прототипів окремих компонентів архітектури. В даний час підготовлений прототип сервісів операційної системи, що працюють поверх СУБД, таких як ФС, IPC і планувальник, а також розвивається програмне оточення, що надає інтерфейс для запуску додатків на базі моделі FaaS (function-as-a-service).

На наступній стадії розробки планується надати повноцінний програмний стек для розподілених програм. В якості СУБД в експериментах поки використовується VoltDB, але ведеться обговорення створення власного шару для зберігання даних або реалізації можливостей, що відсутні в існуючих СУБД. На стадії обговорення також є питання, які компоненти мають виконуватися лише на рівні ядра, які можна реалізувати поверх СУБД.

Джерело: opennet.ru

Додати коментар або відгук