FoundationDB(ファウンデーションDB)は、Appleが開発するオープンソースの分散データベース管理システムである。順序付きのキーバリューストアを中核とし、クラスタ内の複数のマシンにまたがるキーの読み書きをACID特性を満たすトランザクションとして実行できる。Apache License 2.0の下で公開されている。
沿革 FoundationDBの開発は2009年に始まった。開発元の同名の企業は、Nick Lavezzo、David Scherer、David Rosenthalの3人が、前身の企業Visual Sciencesでの経験をもとに設立したもので、約3年半の開発期間を経て2013年3月4日に製品を公開した。
2015年3月24日、Appleが同社を買収したことが報じられた。買収に伴い、同社のサイトにはソフトウェアのダウンロード提供を終了する旨の告知が掲示された。
2018年4月19日、AppleはFoundationDBをApache License 2.0の下でオープンソース化し、コミュニティ主導のプロジェクトとして開発を続ける方針を表明した。あわせて、FoundationDBの上に構造化データを格納するライブラリであるRecord Layer(後述)もオープンソースとして提供されている。
2021年には、AppleとSnowflakeの技術者らがFoundationDBの設計を解説する論文を国際会議SIGMOD 2021で発表した。
技術的特徴 順序付きキーバリューストアとトランザクション FoundationDBの中核は、キーが辞書順に並ぶ順序付きのキーバリューストアであり、MultiVersion Concurrency Controlと楽観的並行性制御を組み合わせたトランザクション機構により、厳密な直列化可能性(strict serializability)を保証する。トランザクションは複数のマシンに格納された複数のキーにまたがることができる。
レイヤー FoundationDBは、意図的に機能を絞った中核部の上に「レイヤー」と呼ばれる拡張を重ねる設計を採る。レイヤーは中核のキーバリューストアを利用して、特定のデータモデルやアクセスパターンに応じた機能を追加するもので、同一クラスタ上で複数のレイヤーを動かすこともできる。
代表的なレイヤーであるRecord Layerは、FoundationDBの上に関係データベースに似た意味論を持つレコード指向のデータストアを提供するオープンソースのライブラリで、スキーマ管理・クエリ・インデックスの機能を備え、大規模なマルチテナント環境を想定して設計されている。
決定論的シミュレーションテスト FoundationDBの開発では、データベース本体の実装に先立って、相互作用するプロセス群のネットワークと多様な障害を再現できる決定論的なシミュレーションフレームワークが構築され、新機能はこのシミュレーション上で多数の障害シナリオにさらしてテストされる。このテスト手法は、FoundationDBを採用する側からも信頼性の根拠として言及されている。
採用例 SIGMOD 2021の論文では、FoundationDBはAppleやSnowflakeなどのクラウドインフラストラクチャの基盤になっているとされる。
Appleのクラウドバックエンドサービスであるは、Record Layerを通じてFoundationDBを利用している。 Snowflakeは2014年からメタデータストアとしてFoundationDBを採用している。 Datadogは、同社のイベントストアHuskyのメタデータストアをFoundationDBの上に構築している。
脚注
外部リンク