カーネルにDBMSを載せた分散OS「DBOS」の特徴と利点は? サーバレスでTypeScriptとPythonの実行に対応
今回は「カーネルにDBMSを載せた分散OS「DBOS」の特徴と利点は? サーバレスでTypeScriptとPythonの実行に対応」についてご紹介します。
関連ワード (内部、対応、記録等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
マサチューセッツ工科大学(MIT)とスタンフォード大学の研究者によって考案された分散OS「DBOS」が、TypeScriptに加えてPythonの実行に対応したことが発表されました。
DBOSはOS内部にデータベースが組み込まれており、OSやアプリケーションのすべての処理や状態をデータベースが記録します。そのため、アプリケーションやOSが何らかの原因で終了したとしても、処理や状態を失うことなく終了したところから再開できるなどの利点を備えています。
これによりTypeScriptやPythonで耐久性の高いアプリケーションの構築を容易にしています。
DBOS is coming to #Python!
Development of the DBOS Transact framework for Python is well underway. DBOS Transact makes it much simpler to build & scale durable Python backends.Join the early access program, we'd love your feedback! https://t.co/iIXrExmcKX@Python_Dv
— DBOS, Inc (@DBOS_Inc) August 12, 2024
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」の図を引用しました。
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上でのアプリケーション開発を促進する狙いがあるといえるでしょう。