Se presenta el sistema operativo distribuido DBOS, que se ejecuta sobre un DBMS

Se presenta el proyecto DBOS (Sistema Operativo orientado a DBMS), desarrollando un nuevo sistema operativo para ejecutar aplicaciones distribuidas escalables. Una característica especial del proyecto es el uso de un DBMS para almacenar aplicaciones y el estado del sistema, así como organizar el acceso al estado solo a través de transacciones. El proyecto está siendo desarrollado por investigadores del Instituto Tecnológico de Massachusetts, la Universidad de Wisconsin y Stanford, la Universidad Carnegie Mellon, Google y VMware. La obra se distribuye bajo la licencia MIT.

Los componentes para interactuar con equipos y servicios de administración de memoria de bajo nivel se encuentran en el microkernel. Las capacidades proporcionadas por el microkernel se utilizan para iniciar la capa DBMS. Los servicios del sistema de alto nivel que permiten la ejecución de aplicaciones interactúan sólo con el DBMS distribuido y están separados del microkernel y de los componentes específicos del sistema.

Construir sobre un DBMS distribuido hace posible que los servicios del sistema se distribuyan inicialmente y no estén vinculados a un nodo específico, lo que distingue a DBOS de los sistemas de clúster tradicionales, en los que cada nodo ejecuta su propia instancia del sistema operativo, encima de la cual se encuentran separadas. Se lanzan programadores de clústeres, sistemas de archivos distribuidos y administradores de red.

Se presenta el sistema operativo distribuido DBOS, que se ejecuta sobre un DBMS

Cabe señalar que el uso de DBMS distribuidos modernos como base para DBOS, el almacenamiento de datos en RAM y el soporte de transacciones, como VoltDB y FoundationDB, pueden proporcionar un rendimiento suficiente para la ejecución eficiente de muchos servicios del sistema. El DBMS también puede almacenar datos del programador, del sistema de archivos y del IPC. Al mismo tiempo, los DBMS son altamente escalables, brindan atomicidad y aislamiento de transacciones, pueden administrar petabytes de datos y brindan herramientas para el control de acceso y el seguimiento de los flujos de datos.

Entre las ventajas de la arquitectura propuesta se encuentra una expansión significativa de las capacidades analíticas y una reducción en la complejidad del código debido al uso de consultas ordinarias al DBMS en los servicios del sistema operativo, por lo que la implementación de transacciones y herramientas para garantizar un alto se lleva a cabo la disponibilidad (dicha funcionalidad se puede implementar en el lado DBMS una vez y usarse en el sistema operativo y las aplicaciones).

Por ejemplo, un programador de clúster puede almacenar información sobre tareas y controladores en tablas DBMS e implementar operaciones de programación como transacciones regulares, mezclando código imperativo y SQL. Las transacciones facilitan la resolución de problemas como la gestión de la concurrencia y la recuperación de fallos porque las transacciones garantizan la coherencia y la persistencia del estado. En el contexto del ejemplo del programador, las transacciones permiten el acceso simultáneo a datos compartidos y garantizan que se mantenga la integridad del estado en caso de fallas.

Los mecanismos de registro y análisis de datos proporcionados por el DBMS se pueden utilizar para rastrear el acceso y los cambios en el estado de la aplicación, monitorear, depurar y mantener la seguridad. Por ejemplo, después de detectar un acceso no autorizado a un sistema, puede ejecutar consultas SQL para determinar el alcance de la fuga, identificando todas las operaciones realizadas por los procesos que obtuvieron acceso a información confidencial.

El proyecto lleva más de un año en desarrollo y se encuentra en la etapa de creación de prototipos de componentes arquitectónicos individuales. Actualmente, se ha preparado un prototipo de servicios del sistema operativo que se ejecutan sobre el DBMS, como FS, IPC y planificador, y se está desarrollando un entorno de software que proporciona una interfaz para ejecutar aplicaciones basadas en FaaS (función como- modelo a-servicio).

La siguiente etapa de desarrollo planea proporcionar una pila de software completa para aplicaciones distribuidas. Actualmente, VoltDB se utiliza como DBMS en experimentos, pero se están llevando a cabo discusiones sobre la creación de nuestra propia capa para almacenar datos o implementar capacidades faltantes en los DBMS existentes. También se está debatiendo la cuestión de qué componentes deben ejecutarse a nivel del núcleo y cuáles pueden implementarse sobre el DBMS.

Fuente: opennet.ru

Añadir un comentario