2018年1月18日木曜日

オープンソースに歩み寄るMicrosoft、SQL ServerのLinux対応はどうやって?

 2017年はMicrosoftが提供するリレーショナルデータベースの最新版が登場しました。Microsoft SQL Server 2017(以下、SQL Server 2017)です。最大の変化はLinuxへの対応です。近年マイクロソフトは、オープンソースとの親和性を高めており、SQL Server 2017のLinux対応はその一環です。Dockerにも対応しました。

 他のサーバ製品なら、WindowsとLinuxが選べるのは珍しくありません。しかし、Microsoft製品でOSにWindows以外も選べるようになったのは大きな変化です。お寺にクリスマスツリーが飾られてしまうくらいのびっくり感です。……というのは冗談としても、OSの選択肢が増えたことは、シェア拡大の後押しになることでしょう。

 SQL ServerとOSの関係について考えてみましょう。一般的にコンピュータにはOSがあり、ソフトウェアからのリクエストに応じてリソースを割り振るようにしています。これが基本的な動きなのですが、こうした役割分担はソフトウェアにとっては性能を頭打ちにさせる要因となります。SQL Server 2017では、より効率的にリソースを使えることを目指しました。

 このあたりの工夫について、最新データプラットフォームに関する記者向けの説明会で、日本マイクロソフトの岡本剛和氏が解説しました。


日本マイクロソフト クラウド&エンタープライズビジネス本部 データ&AIプラットフォーム マーケティング部 エグゼクティブプロダクトマネージャー、岡本剛和氏
 SQL Server 7.0から2000までの間は、自分の中でスケジューラー(UMS:User Mode Scheduler)を持ち、効率的にCPUを使えるようにしていました。その後SQL Server 2005からは「SQL OS」に変わり、スレッドのスケジュールに加えてメモリなどのリソース管理を自分の中でするようになりました。SQL Serverは、SQL OSでOSの仕事(の一部)を内包しているようなものです。

 こうしてSQL Serverは、内部でOS的な仕事を行い、OSと直接やりとりする部分をSQL OSというコンポーネントにまとめ、OSの手前に配置しています。この構成は、SQL ServerがLinuxに対応する際にも役立ちました。基本的にはSQL OSの部分だけLinux対応すればいいからです。SQL Server 2017では、SQL OSは「SQL Platform Abstract Layer(SQLPAL)」として、OSと直接やりとりする部分とそれ以外の部分に分割して効率良く動作するように進化しました。

 SQL ServerのLinux版は会社の方針転換という点では大きな変化でしたが、技術的にはさほど大きな変化ではありません。変更点はこれまでのSQL OS部分のみで、それ以外の上位コンポーネントには影響を与えないからです。

 SQL Server 2017では、他にも「Data Everywhere」という表現で、データをどこにでも置けること、AIへの対応を進めていることが特徴に挙げられます。昨今の必要性をよく見ていますね。

0 件のコメント:

コメントを投稿