Wprowadzono rozproszony system operacyjny DBOS, działający na bazie DBMS

Przedstawiono projekt DBOS (DBMS-centric Operating System), mający na celu opracowanie nowego systemu operacyjnego do uruchamiania skalowalnych aplikacji rozproszonych. Cechą szczególną projektu jest wykorzystanie SZBD do przechowywania aplikacji i stanu systemu, a także organizowania dostępu do stanu wyłącznie poprzez transakcje. Nad projektem pracują naukowcy z Massachusetts Institute of Technology, University of Wisconsin i Stanford, Carnegie Mellon University oraz Google i VMware. Utwór rozpowszechniany jest na licencji MIT.

Komponenty do interakcji ze sprzętem i usługami zarządzania pamięcią niskiego poziomu są umieszczone w mikrojądrze. Do uruchomienia warstwy DBMS wykorzystywane są możliwości jakie daje mikrojądro. Usługi systemowe wysokiego poziomu, które umożliwiają wykonywanie aplikacji, współdziałają tylko z rozproszonym systemem DBMS i są oddzielone od mikrojądra i komponentów specyficznych dla systemu.

Budowanie na rozproszonym systemie DBMS umożliwia początkowe rozproszenie usług systemowych i niezwiązanie ich z konkretnym węzłem, co odróżnia DBOS od tradycyjnych systemów klastrowych, w których każdy węzeł uruchamia własną instancję systemu operacyjnego, na której uruchamiane są programy planujące klastry, rozproszone systemy plików i menedżery sieci.

Wprowadzono rozproszony system operacyjny DBOS, działający na bazie DBMS

Należy zauważyć, że wykorzystanie nowoczesnych rozproszonych systemów DBMS jako podstawy DBOS, przechowywanie danych w pamięci RAM i obsługa transakcji, takich jak VoltDB i FoundationDB, może zapewnić wydajność wystarczającą do wydajnej realizacji wielu usług systemowych. DBMS może również przechowywać dane harmonogramu, systemu plików i IPC. Jednocześnie systemy DBMS są wysoce skalowalne, zapewniają atomowość i izolację transakcji, mogą zarządzać petabajtami danych oraz zapewniają narzędzia do kontroli dostępu i śledzenia przepływów danych.

Do zalet proponowanej architektury można zaliczyć znaczne poszerzenie możliwości analitycznych oraz zmniejszenie złożoności kodu dzięki zastosowaniu w usługach systemu operacyjnego zwykłych zapytań do SZBD, po stronie których implementacja transakcji oraz narzędzi zapewniających wysoką realizowana jest dostępność (taką funkcjonalność można jednorazowo zaimplementować po stronie DBMS i wykorzystać w systemie operacyjnym i aplikacjach).

Na przykład planista klastra może przechowywać informacje o zadaniach i procedurach obsługi w tabelach DBMS i implementować operacje planowania jako zwykłe transakcje, mieszając kod imperatywny i SQL. Transakcje ułatwiają rozwiązywanie problemów, takich jak zarządzanie współbieżnością i odzyskiwanie po awarii, ponieważ transakcje gwarantują spójność i trwałość stanu. W kontekście przykładu programu planującego transakcje umożliwiają równoczesny dostęp do współdzielonych danych i zapewniają utrzymanie integralności stanu w przypadku awarii.

Mechanizmy rejestrowania i analizy danych udostępniane przez system DBMS można wykorzystać do śledzenia dostępu i zmian stanu aplikacji, monitorowania, debugowania i utrzymywania bezpieczeństwa. Przykładowo, po wykryciu nieautoryzowanego dostępu do systemu, można uruchomić zapytania SQL w celu ustalenia zasięgu wycieku, identyfikując wszystkie operacje wykonane przez procesy, które uzyskały dostęp do poufnych informacji.

Projekt powstaje od ponad roku i jest na etapie tworzenia prototypów poszczególnych elementów architektonicznych. Obecnie przygotowano prototyp usług systemu operacyjnego działających na bazie DBMS, takich jak FS, IPC i harmonogram, oraz opracowywane jest środowisko programistyczne zapewniające interfejs do uruchamiania aplikacji opartych na systemie FaaS (function-as- model usługowy).

W kolejnym etapie rozwoju planowane jest dostarczenie pełnoprawnego stosu oprogramowania dla aplikacji rozproszonych. VoltDB jest obecnie używany jako DBMS w eksperymentach, ale trwają dyskusje na temat stworzenia własnej warstwy do przechowywania danych lub zaimplementowania brakujących możliwości w istniejących DBMS. Dyskutowana jest również kwestia, które komponenty powinny być wykonywane na poziomie jądra, a które można zaimplementować na bazie DBMS.

Źródło: opennet.ru

Dodaj komentarz