O sistema operacional distribuído DBOS rodando sobre o SGBD é apresentado

É apresentado o projeto DBOS (Sistema Operacional Orientado a SGBD), desenvolvendo um novo sistema operacional para execução de aplicações distribuídas escaláveis. Uma característica do projeto é a utilização de um SGBD para armazenamento de aplicações e estado do sistema, além de organizar o acesso ao estado apenas por meio de transações. O projeto está sendo desenvolvido por pesquisadores do Instituto de Tecnologia de Massachusetts, da Universidade de Wisconsin e Stanford, da Universidade Carnegie Mellon e do Google e VMware. O trabalho é distribuído sob licença do MIT.

Componentes para interação com equipamentos e serviços de gerenciamento de memória de baixo nível são colocados no microkernel. Os recursos fornecidos pelo microkernel são usados ​​para lançar a camada DBMS. Os serviços de sistema de alto nível que permitem a execução de aplicativos interagem apenas com o SGBD distribuído e são separados do microkernel e dos componentes específicos do sistema.

Construir sobre um SGBD distribuído permite tornar os serviços do sistema inicialmente distribuídos e não vinculados a um nó específico, o que distingue o DBOS dos sistemas de cluster tradicionais, nos quais cada nó executa sua própria instância do sistema operacional, sobre a qual separa são lançados agendadores de cluster, sistemas de arquivos distribuídos e gerenciadores de rede.

O sistema operacional distribuído DBOS rodando sobre o SGBD é apresentado

Observa-se que o uso de SGBDs distribuídos modernos como base para DBOS, o armazenamento de dados em RAM e o suporte a transações, como VoltDB e FoundationDB, podem fornecer desempenho suficiente para a execução eficiente de muitos serviços do sistema. O SGBD também pode armazenar dados do agendador, do sistema de arquivos e do IPC. Ao mesmo tempo, os SGBDs são altamente escaláveis, fornecem atomicidade e isolamento de transações, podem gerenciar petabytes de dados e fornecem ferramentas para controle de acesso e rastreamento de fluxos de dados.

Entre as vantagens da arquitetura proposta está uma expansão significativa das capacidades analíticas e uma redução na complexidade do código devido ao uso de consultas comuns ao SGBD nos serviços do sistema operacional, ao lado das quais a implementação de transações e ferramentas para garantir alta a disponibilidade é realizada (tal funcionalidade pode ser implementada uma vez no lado do SGBD e usada no sistema operacional e nos aplicativos).

Por exemplo, um agendador de cluster pode armazenar informações sobre tarefas e manipuladores em tabelas DBMS e implementar operações de agendamento como transações regulares, misturando código imperativo e SQL. As transações facilitam a resolução de problemas como gerenciamento de simultaneidade e recuperação de falhas porque as transações garantem consistência e persistência de estado. No contexto do exemplo do escalonador, as transações permitem acesso simultâneo a dados compartilhados e garantem que a integridade do estado seja mantida em caso de falhas.

Os mecanismos de registro e análise de dados fornecidos pelo SGBD podem ser usados ​​para rastrear acessos e mudanças no estado do aplicativo, monitorar, depurar e manter a segurança. Por exemplo, após detectar acesso não autorizado a um sistema, você pode executar consultas SQL para determinar a extensão do vazamento, identificando todas as operações realizadas por processos que obtiveram acesso a informações confidenciais.

O projeto está em desenvolvimento há mais de um ano e está em fase de criação de protótipos de componentes arquitetônicos individuais. Atualmente, foi preparado um protótipo de serviços de sistema operacional rodando sobre o SGBD, como FS, IPC e escalonador, e está sendo desenvolvido um ambiente de software que fornece uma interface para execução de aplicações baseadas em FaaS (function-as- modelo de serviço).

O próximo estágio de desenvolvimento planeja fornecer uma pilha de software completa para aplicativos distribuídos. O VoltDB está sendo usado atualmente como um SGBD em experimentos, mas estão em andamento discussões sobre a criação de nossa própria camada para armazenar dados ou implementar recursos ausentes em SGBDs existentes. A questão de quais componentes devem ser executados no nível do kernel e quais podem ser implementados no SGBD também está em discussão.

Fonte: opennet.ru

Adicionar um comentário