Microsoft、「Extensible Storage Engine」(ESE)のソースコードを公開自社製品に長年採用してきた組み込み/ISAMベースのDBエンジン

Microsoftは、自社製品で使用してきたNoSQLデータベースエンジン「Extensible Storage Engine」(ESE)のソースコードをGitHubで公開した。

» 2021年02月09日 16時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 Microsoftは、2021年2月、25年以上にわたって自社製品で使用してきた組み込み/ISAM(Indexed and Sequential Access Method)ベースのNoSQLデータベースエンジン「Extensible Storage Engine」(ESE)のソースコードをGitHubで公開した。

 ESE(旧称:JET Blue)は、「Windows NT 3.51」に初めて搭載されたデータベースエンジン。直後に「Exchange Server 4.0」にも採用されている。1990年代に2回の書き換えを経て、2000年代に入ってから20年間、活発に更新されてきた。現在でもMicrosoftの中核資産としてさまざまな製品で使用されている。

 例えば、「Microsoft 365」のメールボックスストレージのバックエンドサーバでは、数十万台のマシン(数百万台のディスク)でESEが使われている。「Active Directory」を大規模に展開している環境向けのTBクラスのメモリを備える大型SMP(対称型マルチプロセッシング)システムだ。また、「Windows XP」以降のWindowsクライアントSKU(Stock Keeping Unit)でも使用されてきた。

 アプリケーションはESEを用いて、テーブルへのデータの格納とテーブルからのデータの読み出しを実行できる。ESEは非正規化スキーマをサポートしており、アプリケーションがトランザクション型のデータ更新や読み出し時に一貫性のあるデータ状態を維持できる。システムクラッシュ時もデータの一貫性が維持されるように、クラッシュリカバリーメカニズムも提供される。さらにライトアヘッドログやスナップショット隔離モデルにより、データとスキーマのACID(Atomicity Consistency Isolation Durability)トランザクションを実現できる。

 MicrosoftはESEのデータベースエンジンだけではなく、同期/ロックライブラリやSTL(C++ Standard Template Library)と似たデータ構造ライブラリ、OS抽象化レイヤー、ブロック/キャッシュマネージャーのソースコードも提供した。

 Microsoftによると、GitHubで今後公開されるESEのソースコードのバージョンは、Windowsの最新リリースにコンパイルされるバージョンよりも少し先行している可能性があるとのことだ。

「JET Blue」と「JET Red」は何が違うのか

 ESEは「JET(Joint Engine Technology)API」の実装であり、以前は「JET Blue」と呼ばれていた。さらにJET BlueとJETは同列に使われることが多かった。

 だが、JET APIには「JET Red」という実装もあり、JETは、JET Redという意味でもよく使われてきた。JET Redは、「Microsoft Access」で使われるデータベースエンジンだ。

 JET BlueとJET RedというJET APIの2つの実装は、全く異なっている。別々にメンテナンスされており、機能セットも大幅に異なっている。そこで混乱を避けるために、JET Blueは今回、ESEに改称された。

開発方針はどうなっているのか

 MicrosoftはESEについて、次のような開発方針を示している。

  • コメント
     ESEのコードベースは、Microsoftの社内開発で長年使われてきた。Microsoftは社内情報の漏えいを考慮して、公開を開始したソースコードでは、一時的に全てのコメントを削除し、特定のファイルタイプを除外した。今後はレビューを経て、改善、整理したコメントを追加していく。
  • CMake
     ビルドファイルやコード生成スクリプト、インフラ要素も公開していく。
  • テスト
     テストを実行するための「Azure Pipeline」とともに、テストコードも徐々にリリースしていく。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。