SSD(半導体ディスク)とDBMS データベースコンサルタントのノウハウちょい見せ

Oracle RDBMSなどのオラクル製品や各種インフラ技術(OS、ストレージ、ネットワーク)といった話題を取り上げます。著者は小田圭二、「門外不出のOracle現場ワザ」、「絵で見てわかるOracleの仕組み」、「絵で見てわかるOS/ストレージ/ネットワーク」などの著作もあります

ホーム > スポンサー広告 > SSD(半導体ディスク)とDBMSホーム > アーキテクチャ > SSD(半導体ディスク)とDBMS

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | トラックバック(-) | コメント(-)

SSD(半導体ディスク)とDBMS

DBMSの最近のトピックは、インメモリDBですが、アーキテクチャの観点でもう1つ面白いなと私が思う技術があります。それがSSD(半導体ディスク:シリコンステートディスク、シリコンステートドライブ)です。

実は、SSDは他の製品を喰ってしまう可能性があると思っています

まず、SSDの特徴を整理すると次のとおりです。
・メモリだけれども電源が落ちても大丈夫
・ハードディスクと違って高速に動作する(一説によると3桁速いとか)
・ハードディスクと違い、機械部品ではないので故障しづらい
・ハードディスクと違い、同時アクセスの性能(IOPS:Input Output per Second)を上げやすい
 (ハードディスクはアームの動作があるので同時アクセスの性能に縛りがある)
・ハードディスクと比べて高価。
・一部のSSDは使用回数制限がある(きっと将来はこの制限はなくなるでしょう)

●DBサーバーでは?

・DBMSのキャッシュが小さくなる?
現在のDBMSのキャッシュは大きくなる一方です。でも、将来はそれほど要らなくなるかもしれません。元々、ハードディスクのレスポンスが足を引っ張るなどの理由があり、大きなメモリをDBMSのキャッシュとして持たせていましたが、最小限のメモリでも高速に動くようになりそうです。極論すれば、キャッシュレスDBMSみたいな構成も可能そうです。
#昔のDBMSみたいだ・・・

・DBMSが速くなる?
ディスクにひっぱられることが減るので、DBMS自体が速くなるケースも考えられます。いいですね。

・起動が速い
DBサーバーの障害時において、OSの起動やDBMSの起動(システムディスクの読み込み)の時間は馬鹿になりません。しかし、これが大幅に削減されるはずです。

・SANブートが要らない?
起動ディスクって、今まで故障しやすく弱点でした。大型ストレージはデータのためのものであり、OSのブートディスクはサーバーに直接付けざるをえなかったからです。それを超えるためにSANブートという技術が出てきていました(SAN越しでブートする)。でも、故障しづらいのでSANブートが要らなくなるかもしれません(ディスク集約という意味ではSANブートは意味があると思います)。


●APサーバーでは?

・インメモリDBが要らないケースも?
「DBサーバーが遅いから」という理由でAPサーバー側にインメモリDBを置いて、フロントキャッシュのようにしているシステムもあります。しかし、前述のようにDBMSが速くなると仮定するとインメモリDBが要らないという構成もありそうですよね。

・インメモリDBがメモリに保存でなくて、SSDに保存するケースも?
逆にインメモリDBを使うと仮定すると、揮発性のメモリを使用するのではなくて、SSDの方が良さそうです。APサーバーを再起動してもデータが失われませんしね(注)。
注:インメモリDBがアプリのメモリ空間の延長として動作する場合、再起動のタイミングで、初期化が要るかもしれませんね。

・インメモリDBでもデータの保護が可能に?
SSDはデータが失われないはずです。すると、インメモリDBだけれどもデータ消えないという嬉しい話もでてきそうです

・インメモリDBだけでシステムを組む日も近い?
インメモリDBでデータが消えないとすると、通常のRDBMSが要らないシステムが出てきたりして!?

・でも、住み分けがあるので、RDBMSは残るかな
実システムの傾向を見ていると、APサーバー側に複雑なデータモデルを全部持たせるのはいまいちです(memchachedとか見ているとですね・・・)。アクセスがヘビーなデータのみをインメモリDBに持たせるのがお勧めです。つまり、多くの表(やエンティティ)を持つような業務系のシステムの場合、ロックによる保護とか、一元管理(1ファクト1プレースと言います)や、正規化の観点からまだまだRDBMSが向いていると感じます。ただ、データモデルがシンプルで大量トランザクションのシステム(例:チャネル系と呼ばれる、顧客窓口や通信のシステムなど)においてはインメモリDB+SSDが合っているような気がします。

・意外とオブジェクト指向DBMSが復権したりして
インメモリDB+SSDのみで行けるのであれば、プログラム言語から利用しやすいオブジェクト指向のインメモリDBが勢いを取り戻したりすることもあるのかなあと思います。実際、身の回りでも勢いがあったりします(注)
注:OracleでもCoherenceというオブジェクト指向インメモリDBMSがあり、いい感じです(SSDは無しです)。やっぱり、適用しやすい業務は、データモデルがシンプルで大量トランザクションのシステムですね。

・起動が速い
 理由は同上です。

・SANブートが要らない?
 理由は同上です。

●まとめ

どんどんSSDをシステムに適用して考えると、今までのメモリとディスクの住み分けがごっちゃになってくるなあと思いました。これが「SSDは他の製品を喰ってしまう可能性がある」という私なりの理由です。

参考:
実はEMCがSSDのストレージを出しています。まだ高価ですけどね。

参考:
なお、SSDなどを考えてみても、以前ブログに書いた「クラウドやマルチコアでの将来のボトルネックはきっとロック処理でしょう。コーディングが変わるかもしれません!?」の考えは変わりません・・・

※会社としてのコメントではありません。あくまでも個人としてのコメントです。ご了承ください。念のため。
スポンサーサイト
[ 2009/02/22 23:28 ] アーキテクチャ | TB(0) | CM(3)
コンシューマPCでは,SSDかなり一般的になってきましたが,
価格が下がればEnterpriseでもはやりそうですね,SSD.

イメージ的にはディスク全体が
ディスクキャッシュみたいになる感じですかね..

たしかに,そしたら,
ディスクの使い方のパラダイムシフトが起きるかも.
レイテンシとかどうなんだろとか,なんとなく気になることは
ありますが.
[ 2009/02/24 00:30 ] [ 編集 ]
矢木さん

コメントどうもです。
どんなものでも時間が経てば、値段が下がるはずなので、コストは大丈夫と思います。

レイテンシは私もちょっと気になるところでして、今のところ、メモリアクセスの割には遅いようですね。これも本来のメモリの速度を考えると、速くなると思うんですよね。

なんにせよ、新しいアーキテクチャというのは、わくわくしますよね♪
[ 2009/02/25 12:17 ] [ 編集 ]
このコメントは管理者の承認待ちです
[ 2009/02/27 20:43 ] [ 編集 ]
コメントの投稿













管理者にだけ表示を許可する
プロフィール

Author:odakeiji
小田圭二 日本オラクルのテクノロジーソリューションコンサルティング統括本部においてデータベースのコンサルタントをしている。今までのキャリアでは、社内教育部隊で、データベースやOS、ネットワークを教える経験を5年ほど積んだり、コンサル部門で主にDB(インフラ含む)のコンサルを10年程度経験した。また、コンサルタントとして、主に大規模ミッションクリティカルシステムを担当。社内では”火消し”とも呼ばれ、システムトラブルの火消しをいくつも担当していたこともある。
ポリシーは、「OracleもOS上で動くアプリケーションにすぎない。だから、OS、ストレージ、ネットワークを学ぶべき。アーキテクチャから考えろ」。
スキル面の興味は、アーキテクチャ、DBA、インフラ技術、教育、コンサル手法など。
本ブログのポリシーは「週に1回、DBAやインフラ担当者の役に立つ記事を書きたい」です(守れるだけ、守りたい・・・・)
なお、本ブログにおいて示されている見解は、私自身の見解であって、オラクルの見解を必ずしも反映したものではありません。ご了承ください。

私の主な著書の紹介です。もしよかったら、お役立てください。他にもオライリーなどがあります

●「絵で見てわかるOS/ストレージ/ネットワーク データベースはこう使っている」小田圭二 著
私のポリシーである”DBMSもOSの動くアプリケーションに過ぎない”に基づいて、OSとDBMSの関係、ストレージとDBMSの関係、ネットワークとDBMSの関係、を解説した珍しい書籍です。DBを学んでひと段落したら、DB使いもインフラ全体を意識しなければなりませんが、そのような人にお勧めです。企業ユーザー向けのIT本としては、2008年度翔泳社No1だとか(最後は出版社談)。

●「絵で見てわかるOracleの仕組み」 小田圭二 著
教育に携わる者としての私の思い「丸暗記するな。アーキテクチャを知るべき。絵で説明すべき」を具体化した、Oracleの入門書です。Oracle初心者向きですが、Oracleの基礎となる部分の動きを解説しているため、バージョンに依存せずに何年先でも使えます。逆に、本書の内容を理解せずに、ひたすら丸暗記すると応用力が身につきません。この本を読むだけで何かできるようになるわけではありませんが、アーキテクチャを身につけて、本当の技術力を身につける第一歩として欲しいと思っています。

●「44のアンチパターンに学ぶDBシステム」 小田圭二 著
本書は、企業のDBシステムの設計/構築から運用管理、プロジェクト管理までの各フェーズにおけるトラブル(失敗)事例について、アンチパターン(べからず集)とその回避策/防止策として解説するものです。チェックリストとして使っていただいても構いません。分かっていてもアンチパターンは避けられないことも多いものです(政治とか)。そういう方には、同じ仲間は多いのだなと再認識していただくための一服の清涼剤としていただければと思います。

●「門外不出のOracle現場ワザ」 小田圭二 他 著
一番最初に出た本です。結構とがった内容を扱っています。
・パフォーマンス分析の考え方(私の担当)
・性能テストや障害テストの仕方、設計の注意点(主に私が執筆)
・コストベースオプティマイザ(10gベース)のアーキテクチャ
・コネクションプーリング
最新のOracleの内容は含んでいませんが、今でも性能の考え方やオプティマイザの考え方は使えるはずです。オプティマイザをここまで解説している本を私は知りません。

●「続・門外不出のOracle現場ワザ」 小田圭二 他 著
「続」の名前の通り、次に出た本です。ちょっと尖り過ぎたかもしれません^^; でも本当に使う内容を選んだつもりです。一流になりたい・他の人と差をつけたい人にお勧めでしょうか。
・性能の良いSQLの書き方
・文字化けの仕組み
・障害(特に性能やハング)の分析・対応方法(私が執筆)
・障害をリアルタイムに分析・対処する方法(私が執筆)
・オプティマイザの使い方ノウハウ
・アップグレードのノウハウ

●「データベース」小田圭二 他 著
私にしては堅い本です。なんせ、共同執筆者が大御所の國友義久先生です。階層型DBMS、ネットワーク型DBMS、リレーショナル型DBMS、XMLDBMS、OO(オブジェクト指向)DBMS、DBMSの持つ機能、DBMSのセキュリティ、データベースの著作権、監査、モデリング、正規化といった内容を網羅しており、深い記述は無いものの、DB技術全体を抑えるのに向いている一冊です。ある程度技術力がついたエンジニアの方が、DB全体を振り返りたい(勉強したい)というときの最初の1冊としてお勧めです。



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。