Le projet DBOS (Système d'exploitation orienté SGBD) a été présenté, développant un nouveau système d'exploitation pour exécuter des applications distribuées évolutives. La particularité du projet est l'utilisation de systèmes de gestion de bases de données pour stocker les applications et l'état du système, ainsi que l'organisation de l'accès à l'état uniquement par le biais de transactions. Le projet est développé par des chercheurs du Massachusetts Institute of Technology, des universités du Wisconsin et de Stanford, de l'université Carnegie Mellon et des entreprises Google et VMware. Les avancées sont diffusées sous licence MIT.
Les composants pour l'interaction avec le matériel et les services de gestion de la mémoire de bas niveau ont été extraits dans un micro-noyau. Les capacités fournies par le micro-noyau sont utilisées pour exécuter la couche avec le SGBD. Les services système de haut niveau, assurant l'exécution des applications, interagissent uniquement avec le SGBD distribué et sont séparés du micro-noyau et des composants spécifiques à chaque système.
La construction au-dessus du SGBD distribué permet de rendre les services système initialement distribués et non liés à un nœud spécifique, ce qui distingue DBOS des systèmes de clusters traditionnels, où chaque nœud exécute sa propre instance du système d'exploitation, au-dessus de laquelle s'exécutent des planificateurs de clusters distincts, des systèmes de fichiers distribués et des gestionnaires réseau.

Il est noté que l'utilisation de SGBD distribués modernes comme fondation pour DBOS, qui stockent des données en mémoire vive et supportent les transactions, tels que VoltDB et FoundationDB, peut assurer une performance suffisante pour l'exécution efficace de nombreux services système. Des données des planificateurs, du système de fichiers et de l'IPC peuvent également être placées dans le SGBD. De plus, ces SGBD se scalent très bien, garantissent l'atomicité et l'isolation des transactions, peuvent gérer des pétaoctets de données et fournissent des outils pour gérer l'accès et suivre les flux de données.
Parmi les avantages de l'architecture proposée, on note une extension significative des capacités d'analyse et une réduction de la complexité du code grâce à l'utilisation de requêtes classiques vers le SGBD dans les services du système d'exploitation, où la mise en œuvre des transactions et des moyens d'assurer une haute disponibilité est déléguée (une telle fonctionnalité peut être réalisée une fois du côté du SGBD et utilisée dans le système d'exploitation et les applications).
Par exemple, un planificateur de clusters peut stocker des informations sur les tâches et les gestionnaires dans des tables SGBD et réaliser des opérations de planification comme des transactions classiques, mélangeant du code impératif et du SQL. L'application des transactions simplifie la résolution de problèmes tels que la gestion des fils d'exécution et la récupération après des pannes, car les transactions garantissent la cohérence et la durabilité de l'état. Dans le contexte de l'exemple du planificateur, les transactions permettent d'organiser l'accès simultané aux données partagées et de garantir l'intégrité de l'état en cas de pannes.
Les mécanismes de journalisation et d'analyse des données fournis par le SGBD peuvent être utilisés pour suivre l'accès et les modifications de l'état des applications, pour le monitoring, le débogage et le maintien de la sécurité. Par exemple, après la détection d'un accès non autorisé au système, on peut, par l'exécution de requêtes SQL, déterminer l'ampleur de la fuite en identifiant toutes les opérations effectuées par les processus ayant accédé à des informations sensibles.
Le projet est en cours de développement depuis plus d'un an et en est à la phase de création de prototypes de composants individuels de l'architecture. Actuellement, un prototype de services du système d'exploitation fonctionnant sur le SGBD a été préparé, tels que le FS, l'IPC et le planificateur, et un environnement de programmation est également en cours de développement, fournissant une interface pour le lancement d'applications basées sur le modèle FaaS (function-as-a-service).
À la prochaine étape de développement, il est prévu de fournir une pile logicielle complète pour les applications distribuées. Pour l'instant, VoltDB est utilisé comme SGBD dans les expériences, mais il est en discussion de créer notre propre couche de stockage de données ou de mettre en œuvre les fonctionnalités manquantes dans les SGBD existants. La question des composants devant être exécutés au niveau du noyau et de ceux pouvant être réalisés au-dessus du SGBD est également en discussion.
Source : opennet.ru
