Microsoft、「Extensible Storage Engine」(ESE)のソースコードを公開:自社製品に長年採用してきた組み込み/ISAMベースのDBエンジン
Microsoftは、自社製品で使用してきたNoSQLデータベースエンジン「Extensible Storage Engine」(ESE)のソースコードをGitHubで公開した。
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.
関連記事
- 元営業のデータサイエンティストが見つけた「現場でデータ活用が進まない理由」
データを分析、活用し、ビジネスを成長させようとするとき「現場で利用されない」という壁にぶつかる企業は少なくない。現場で使われるデータ分析を実現するためにはどのようなアプローチが有効なのだろうか。 - Microsoft、「Azure Cosmos DB」のサーバレス価格モデルのプレビューを開始
Microsoftは、「Azure Cosmos DB」のサーバレス価格モデルのプレビューを開始した。この新しい使用量ベース価格モデルにより、スループットをプロビジョニングすることなく高い費用対効果で利用できるという。 - ビッグデータの取り組みではデータベースが重要、SQLとNoSQLのどちらが優位なのか
Cockroach Labsは、ソフトウェア開発者のオンラインコミュニティー「DZone.com」が発表したデータベーストレンドレポート「Database Evolution: SQL or NoSQL in the Age of Big Data」を取り上げて、ビッグデータへ取り組む企業がSQLとNoSQLデータベースをどの程度利用しているのかを紹介した。