SQL ServerがLinuxをサポートできた理由–マイクロソフトが明かす歴史

 日本マイクロソフトは10月26日、データプラットフォームに関するメディア向け勉強会を開催し、同月2日にリリースした「SQL Server 2017」の新機能を中心に解説した。

既報の通りSQL Server 2017では、従来の「Windows専用」という位置付けが大きく変更され、Linuxに対応した。さらに、昨今の機械学習/ディープラーニングの発展を踏まえて「Machine Learning Services」が提供され、GPUとPythonがサポートされる点も注目される。今回の説明会では人工知能(AI)への対応についてデモを交えた説明が行われたが、本稿ではその前提として語られたSQL Serverの内部構造の変化の過程について紹介する。

 SQL Serverは、Microsoftが提供するWindows向けの各種サーバ・アプリケーションのための基幹コンポーネントだ。製品の性格から同社は当初からWindows以外のOSへの移植を想定した設計をしていたとは考えにくいものの、そうしたソフトウェアがなぜLinuxをサポートしたのか――。その理由は、そもそもSQL Server自体のパフォーマンスや安定性を向上させる工夫として実装している構造が功を奏した形だという。

 というのも、SQL Server 6.5までの実装では、SQL Serverは内部で複数のスレッドを利用していたが、プロセス・スケジューリングはWindows任せだったため、SQL Server内部の動作状況を踏まえたスケジューリングはできず、パフォーマンス劣化の原因となっていたという。

 そこでSQL Server 7.0には、SQL Server内に独自のスレッドスケジューラ(UMS:User Mode Scheduler)が実装され、自前でスケジューリングを行うようになった。これによって、ロック待ち中のスレッドにプロセッサの使用権を渡してしまうような無駄が無くなり、プロセッサの利用効率が大幅に向上した。この時期、SQL Serverが初期の不評を払しょくしてミションクリティカルなアプリケーションの基盤として採用される例が増えてきた背景には、こうしたアーキテクチャ変更があったわけだ。

次の大きな変化は、SQL Server 2005で実装された。大きな成果を挙げたUMSに代わり、新たに実装された「SQL OS」がUMSのスレッド・スケジューラ機能に加え、メモリなどのリソース管理の機能も入り、まさに「OS」としての機能を果たすようになった。

 そしてSQL Server 2007 on Linuxでは、新たに「SQLPAL(SQL Platform Abstract Layer)」と呼ばれる抽象化レイヤが置かれ、SQL OSは下層のOSとの直接のやりとりをする層と、SQL ServerとOSをつなぐ役割を果たす層に分割された。その上でSQLPALの内部に含まれる形となった。

 Windows NTで「HAL(Hardware Abstruction Layer)」が置かれて、OSとハードウェアの関係を抽象化することで移植性を高め、インテルアーキテクチャ(IA)以外のプロセッサをサポートしたのと同様のアプローチが、SQL Serverの内部でも行われていた。こうしたことが、SQL ServrにおけるLinux対応を実現できたポイントだったといえそうだ。
https://japan.zdnet.com/article/35109600/

2.名前:名刺は切らしておりまして 投稿日:2017/10/31(火) 11:11:59.71 ID:N+yRGkiE.net
linux環境でわざわざマイクロソフトのsqlserverを導入するやついるのかな?

3.名前:名刺は切らしておりまして sage 投稿日:2017/10/31(火) 11:48:58.23 ID:0KzhY9hN.net
>>2
普通にいるだろ。

4.名前:名刺は切らしておりまして 投稿日:2017/10/31(火) 11:51:52.29 ID:eMuyZuZ0.net
他のDBと比べてSIer含めたサポート体制が期待できそうだがどうだろうか

5.名前:名刺は切らしておりまして sage 投稿日:2017/10/31(火) 12:29:22.47 ID:ZEe4dri7.net
>>2
OSSはやだけど、Oracleは高すぎると考える客向けかね

6.名前:名刺は切らしておりまして sage 投稿日:2017/10/31(火) 12:44:08.90 ID:0KzhY9hN.net
>>5
アプリ変えずに大規模対応。ってニーズが多そう。

7.名前:名刺は切らしておりまして 投稿日:2017/10/31(火) 13:36:00.61 ID:kXO5/Lyy.net
でも、お高いんでしょう?

8.名前:名刺は切らしておりまして sage 投稿日:2017/10/31(火) 13:55:17.59 ID:Dc4ULnph.net
MSとはいっても、素直で使いやすいからな
元々 Sybaseだし

9.名前:名刺は切らしておりまして 投稿日:2017/10/31(火) 14:23:32.09 ID:XtNvQ+QZ.net
>>4
SIerがサポートしても結局MS次第じゃね?

10.名前:名刺は切らしておりまして sage 投稿日:2017/10/31(火) 15:11:33.21 ID:wHuA1OmL.net
>>5
ホントにあるんだわw

11.名前:名刺は切らしておりまして sage 投稿日:2017/10/31(火) 21:34:38.35 ID:OLrzkk0i.net
Oracle ぼったくり
SQL server 仕様です
その他 勝手に使ってね

12.名前:名刺は切らしておりまして sage 投稿日:2017/10/31(火) 21:53:52.42 ID:JNF9OD/w.net
Oracleもよく仕様です言うがなw

13.名前:名刺は切らしておりまして sage 投稿日:2017/10/31(火) 22:36:49.58 ID:0urI9CgB.net
Oraceはバグだろうがなんだろうがとにかくカネ払えだから

14.名前:名刺は切らしておりまして sage 投稿日:2017/11/01(水) 16:53:04.33 ID:OR7rJk4P.net
Oracleをしょうがなく使ってるところが、乗り換えたりしてんだよね
これ地味に大きなニュースだと思う

15.名前:名刺は切らしておりまして sage 投稿日:2017/11/01(水) 20:36:58.94 ID:ejHkegRb.net
Oracleは致命的な不具合でも有償でしか公開しない

16.名前:名刺は切らしておりまして sage 投稿日:2017/11/03(金) 10:21:42.62 ID:AOFp12ge.net
MSは完全にサーバー屋さんに鞍替えして、それなりに上手くいけてるのが凄い。

17.名前:名刺は切らしておりまして sage 投稿日:2017/11/04(土) 17:31:37.54 ID:zT8mc2/F.net
>>16

そこが強さなんでしょうね。

18.名前:名刺は切らしておりまして sage 投稿日:2017/11/04(土) 19:03:54.29 ID:2fKknxyy.net
MSにしてもGoogleにしてもこれだけデカくなったのにまだベンチャーっぽさがあって柔軟に対応するよな

シェアする

  • このエントリーをはてなブックマークに追加

フォローする