В рамках проекта DBOS выпустили распределённую ОС, которая работает поверх СУБД
Исследователи из Массачусетского технологического института, Висконсинского и Стэнфордского университетов, университета Карнеги-Меллона и компаний Google и VMware представили проект DBOS (DBMS-oriented Operating System). В рамках него развивают операционную систему для выполнения масштабируемых распределённых приложений.
Четырёхуровневая архитектура DBOS
СУБД используются для хранения приложений и состояния системы, а также организации доступа к состоянию только через транзакции.
Проект распространяется на GitHub под лицензией MIT.
Компоненты для взаимодействия с оборудованием и низкоуровневые сервисы управления памятью вынесены в микроядро, а его возможности используются для запуска слоя с СУБД. Высокоуровневые системные сервисы, обеспечивающие выполнение приложений, взаимодействуют только с распределённой СУБД. Они отделены от микроядра и специфичных для конкретной системы компонентов.
Работа поверх распределённой СУБД позволяет сделать системные сервисы изначально распределёнными и не привязанными к конкретному узлу. Использование современных СУБД, хранящих данные в оперативной памяти и поддерживающих транзакции, таких как VoltDB и FoundationDB, способно обеспечить производительность, достаточную для эффективного выполнения многих системных сервисов. В СУБД могут также размещаться данные планировщика, файловой системы и IPC. При этом она масштабируются, обеспечивает атомарность и изолированность транзакций, способна управлять петабайтами данных и предоставляет инструменты для управления доступом и отслеживания потоков данных.
Использование в сервисах операционной системы обычных запросов к СУБД позволяет значительно расширить возможности аналитики и снизить сложность кода.
Так, кластерный планировщик может сохранять информацию о задачах и обработчиках в таблицах СУБД и реализовывать операции планирования как обычные транзакции путём смешивания императивного кода и SQL. Применение транзакций упрощает управление многопоточностью и восстановление после сбоев, так как они гарантируют согласованность и устойчивость состояния. В случае с планировщиком транзакции позволяют организовать одновременный доступ к совместно используемым данным и гарантировать сохранение целостности состояния в случае сбоев.
Механизмы ведения логов и анализа данных в СУБД могут применяться для отслеживания доступа и изменения состояния приложений, мониторинга, отладки и поддержания безопасности. После обнаружения несанкционированного доступа к системе можно через выполнение SQL-запросов определить масштаб утечки путём выявления всех операций процессов, получивших доступ к конфиденциальной информации.
Пока проект находится на стадии создания прототипов отдельных компонентов архитектуры. Уже созданы прототипы работающих поверх СУБД сервисов операционной системы, таких как ФС, IPC и планировщика, а также развивается программное окружение, предоставляющее интерфейс для запуска приложений на базе модели FaaS (function-as-a-service).
Далее планируется предоставить полноценный программный стек для распределённых приложений. В качестве СУБД пока используется VoltDB, но ведётся обсуждение создания собственного слоя для хранения данных или реализации недостающих возможностей в существующих СУБД. Также пока обсуждается вопрос о том, какие компоненты должны выполняться на уровне ядра, а какие можно реализовать поверх СУБД.