カーネルにDBMSを載せた分散OS「DBOS」の特徴と利点は? サーバレスでTypeScriptとPythonの実行に対応

2024年9月17日

マサチューセッツ工科大学(MIT)とスタンフォード大学の研究者によって考案された分散OS「DBOS」が、TypeScriptに加えてPythonの実行に対応したことが発表されました。

DBOSはOS内部にデータベースが組み込まれており、OSやアプリケーションのすべての処理や状態をデータベースが記録します。そのため、アプリケーションやOSが何らかの原因で終了したとしても、処理や状態を失うことなく終了したところから再開できるなどの利点を備えています。

これによりTypeScriptやPythonで耐久性の高いアプリケーションの構築を容易にしています。

DBOSはオープンソースではなくバイナリも公開されていないため、ユーザーが入手して手元のマシンなどにインストールして試すことはできませんが、今年(2024年)3月にDBOS, Incによって商用サービスの「DBOS Cloud」が公開されています。

DBOS Cloudの無料プランでは1日当たり1万リクエストまで無料となっているため、テストコード程度のワークロードであればDBOS Cloud上で簡単に試すことができます。

DOBSはなぜOSにデータベースを組み込んだのか?

DBOSは、Postgresの開発者であり著名なデータベース研究者として知られるマサチューセッツ工科大学(MIT)のMichael Stonebraker(マイケル・ストーンブレーカー)氏と、大規模な分散データ処理フレームワークApache Sparkの開発者であるスタンフォード大学のMatei Zaharia(マテイ・ザハリア)氏らが行った研究開発から作られた、データベース指向のOSです。

最小限のカーネル上に分散データベースを載せ、その上にファイルシステムやスケジューラなどの各種OSサービスを構築しています。下図はストーンブレーカー氏による「Introducing DBOS Cloud: Radically Simplifying Serverless Computing」の図を引用しました。

fig

DBOSもしくはDBOSで構成されるクラスタの処理や状態はすべて分散データベース内に記録されていきます。

この仕組みによって次のような利点を備えています。

  • 高可用性:すべての処理や状態を高可用性を備えたデータベースに保持することで、高可用なOSやクラスタを実現する
  • タイムトラベル:すべての状態がデータベースに数時間から数日分保存されているため、過去のある時点の状態に簡単に戻せる
  • トランザクションとフォールトトレランス:処理や状態をトランザクションとして管理できるため、異常終了などによる不整合を防げる
  • 分散OS:DBOSは分散データベース機能を基盤にしたマルチノード機能とスケジュール機能などを備えているため、Kubernetesのような外部のスケジューラを必要とせずに分散処理を可能にしている
  • SQL対応:DBOSのデータベースに記録された処理や状態はすべてSQLでアクセスできる。もしもマルウェアなどによる顧客データ漏洩の疑いがあった場合、過去にどのプロセスが顧客データにアクセスしたかなどのチェックが容易である

OSの状態を逐一データベースに記録することはオーバーヘッドとなって処理が遅くなるのではないかとも思えますが、同社は最新のデータベースはこの用途においても十分に高速であること、そしてKubernetesのような外部のオーケストレーションを用いる際に発生するキュー待ちや通信などが不要になることにより、サーバレスプラットフォームとして非常に高速な実行を可能にしていると説明しています

例えば、ステートフルなサーバレスアプリケーションにおいて、DBOSはAWS Labmdaよりも15倍安価に実現できると同社は主張しています

DBOS TransactフレームワークがPythonに対応

DBOSはこれまで、TypeScriptからDBOSの機能を利用するためのフレームワーク「DBOS Transact framework for TypeScript」をオープンソースで公開しており、DBOS Cloud上でTypeScriptを用いたバックエンドアプリケーションの開発を可能にしていました。

今回このフレームワークに新たにPythonに対応した「DBOS Transact framework for Python」アーリーアークセス版が追加され、DBOS上でPythonを用いたバックエンドアプリケーションの開発も可能になりました。

同社はこのフレームワークによって重要なデータの操作を伴うデータオリエンテッドなバックエンドアプリケーションの開発効率が桁違いに向上すると説明しています。

今回、特に米国などで人気のあるプログラミング言語であるPythonに対応したことは、DBOS Cloud上でのアプリケーション開発を促進する狙いがあるといえるでしょう。

あわせて読みたい

OS RDB クラウド サーバレス データベース




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本