Ask Learn
Preview
Ask Learn is an AI assistant that can answer questions, clarify concepts, and define terms using trusted Microsoft documentation.
Please sign in to use Ask Learn.
Sign inThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Microsoft Japan Data Platform Tech Sales Team
坂本 禎尚
そうです。タイトルに on Linux って書いてあります。今まで、お客さんから「SQL Server って Linux で動かないの?」と聞かれて、「それはないっすわー」と答えていましたが、SQL Server が Linux で動く(既に動いてますが)日がついにやって来ます。
2016 年 3 月に SQL Server を Linux で動かすぞーという最初のアナウンス(対外的な)が行われ、2016 年 11 月の Microsoft Connect(); で最初のパブリック プレビューのリリースが発表されました。その後、約 2 週間で 21,000 を超えるダウンロードが行われたという事実からも皆様の関心の高さが伺えます。
既に国内でも MVP の皆さんをはじめ Blog 等で紹介されている部分もありますが、2015 年から本格的に開発が開始された SQL Server on Linux、開発陣がどこにゴールを置き、何が課題で、それをどのようなアーキテクチャーで克服してきているのか、という事のさわりの部分を今回の記事でご紹介します。
on Linux 化にあたって掲げたゴール
SQL Server を Linux に対応させるにあたって開発陣が設定したゴールが下記です。
とはいえ、長い間単一の OS に向けて開発を続けてきたわけですから、コードベース全体に OS 固有の依存関係が数多く存在します。しかも、そのコードのボリュームたるや、C++ のソース コードで約 4,000 万行以上(データベース以外も含んでです)になる規模感です。
最も大きな課題
具体的に、SQL Server のコードはどんなものと依存関係を持っているのか?
大別すると、下記 3 つに集約されます。
このうち最も複雑でやっかいな依存関係を持ってしまっているのが、Windows Application Library でした。
一例をあげるとすると、SQL Server では XML をサポートしていますが、XML 文書を解析して処理する為に MSXML を使っています。また、VDI によるバックアップをサポートする為に、COM ベースで書かれたコンポーネントが存在しています。
こういった依存関係を Linux 上で再実装しようとするならば、その開発には膨大な時間が必要になりそうであることは想像に難くないでしょう。また、場合によっては、Windows と Linux 間の根本的なギャップにより、完全に同一の機能を実装することが不可能である可能性もあるでしょう。
よって、これらの解決にはプラットフォーム抽象化層(PAL:Platform Abstraction Layer)が必要であるという結論に至り、SQLPAL なるものを作り上げました。
次回は、この SQLPAL に関してご紹介します。
お楽しみに。
Ask Learn is an AI assistant that can answer questions, clarify concepts, and define terms using trusted Microsoft documentation.
Please sign in to use Ask Learn.
Sign in