|
データベースにとっての「性能」とは、いったい何だろうか? 真っ先に思いつくのは「処理スピード」や「スループット」ではないだろうか。今日、企業システムに蓄えられるデータの量は増え続けており、その活用法も多様化しつつある。そんな中、より大量のデータを高速に処理できることは、確かに企業の競争力優位に直結する。
しかし「速さ」だけでは十分ではない。富士通 ミドルウェア事業本部 マネージャー 杉山幸吉氏は、次のように述べる。
富士通 ミドルウェア事業本部 マネージャー 杉山幸吉氏 |
「データベースにとって、処理の速さは極めて重要なファクターです。しかし、速ければいいというわけではありません。速さとともに、ミッションクリティカルシステムが要求するさまざまな要件を満たす必要があります」
例えば、ひと口に「処理の速さ」と言っても、その意味合いはデータベースを使用する条件によって異なる。ごく単純な参照処理を単体で実行したときの速さも、確かにその性能を図る1つの尺度ではある。しかし実際に企業システムでデータベースを運用する際には、複雑な参照・更新処理を大量に同時実行したり、処理負荷の高いバッチ処理を長時間かけて行ったりする場面もある。つまり多種多様なワークロードに柔軟に対応しつつ、まんべんなく処理性能を発揮する必要があるのだ。
また、限られたハードウェアリソースを効率良く使い切れる性能も重要だ。一般に、データベースサーバのCPUリソースの利用率は30〜40%と言われている。この利用効率をソフトウェアの技術によって引き上げ、ハードウェアへの投資を抑えつつデータベース全体のスループットを向上させる。これも、データベースの性能を図る重要な尺度である。
さらに、ミッションクリティカルシステムで重要となるのがデータの信頼性だ。高い耐障害性はもちろん、何よりもデータの整合性が確実に担保されることが求められる。一般的にはデータ整合性とスループットは反比例の関係にあるが、ミッションクリティカル用途のデータベースでは、双方とも高いレベルで両立させなくてはならないのだ。
富士通のオープン系システム向けデータベースソフトウェア「Symfoware(シンフォウェア)」は、こうした各種要件をまんべんなく満たし、真の意味での「高性能」の実現を目指した製品だという。
メインフレームのミッションクリティカルシステムで培ったあらゆるノウハウを惜しみなくつぎ込んだ点を特長とし、すでに金融系をはじめとするミッションクリティカルシステムで数多くの導入・運用実績を持つという。以下では、その具体的な仕組みとビジネスメリットをじっくりと紐解いてみたい。
では、さっそくSymfowareの技術的な特長を、いくつか挙げてみよう。
■内部処理のオーバーヘッドを極限まで削減
一般的なDBMSでは、マルチプロセス方式で内部処理が実行されている。DBMSの実装方式としては、最も基本的な形だ。しかしこの方式では、OS内部で複数のプロセス間の同期を制御するために、極めて複雑な処理が行われている。また、そのために少なからぬハードウェアリソースが費やされる。こうしたオーバーヘッドは、データベースのパフォーマンスを低下させる大きな要因となり得る。
そこでSymfowareの内部処理には「シングルプロセス・マルチスレッド」の方式を採っている。つまり単一のプロセスの中で、複数のスレッドが動作することで、あらゆる内部処理を並列実行するようになっているのだ。複数のプロセスを制御するオーバーヘッドが一切発生しないため、極めて高速に動作する。
Symfowareの高速性の追求はこれだけではない。OSのディスパッチング、つまりスレッド間の実行切り替えや処理割り当てに費やされるオーバーヘッドも極力減らしている。具体的には、Symfoware内部に実装された「ステージング・コントロール」と呼ばれる独自のディスパッチング機能により、プロセス内部で生成されるスレッドの数を極力抑えている。
さらに、アプリケーションからの処理要求は、スレッドより細かい「ユニット」という独自の実行単位で管理。これをCPUごとに割り当てたスレッドで順次実行する仕組みとしている。内部処理を極めて細かい単位に分け、それらを柔軟にCPUに割り当てられるため、近年主流のマルチコアCPUの性能をフルに生かすことができる。
■パーティショニング機能をデフォルトで装備
パーティショニングとは、「データベースのデータ自体を分割して別々のディスクに配置する機能」を指す。例えば、東京本社のデータをあるディスクに配置し、大阪支店のデータはそれとは別のディスクに配置して別々に管理できるような機能だ。データを異なるディスク上に分散配置することで、I/O負荷の分散による性能向上とともに、ログを分散配置する「ロググループ」機能(詳しくは後述)により危険分散の効果も生まれる。
例えば、業務単位でデータを分けてパーテーションを分けておけば、万が一ある業務のデータベースが壊れてしまった場合でも、他の業務はその影響を受けずに継続できる。あるいは、もしすべてのパーテーションのディスクが壊れてしまった場合でも、ロググループ機能によってそれぞれのログが独立して管理されているため、復旧の優先度が高いデータベースから個別にリストアできる。
ちなみにパーティショニングは、他の多くのデータベース製品にも備わっている一般的な機能だが、「その効果を安価に手に入れられる点がSymfowareならではの特長です」と杉山氏は述べる。
「他のデータベース製品では、パーティショニング機能は最上位エディションにしか備わっていない、あるいはオプション扱いとなっているケースが一般的です。しかしSymfowareではエントリ版を除いた全エディションに標準装備しており、システムの規模を問わず手軽に利用できます」
■ボトルネックになりがちなログ書き込みを分散処理
データベースのログは、データの一貫性を保証するためにも、障害時のデータ復旧のためにも欠かせないものだ。しかしときとして、このログがデータベースのパフォーマンス上のボトルネックになることがある。どんなにサーバのCPUやメモリを増強しても、ディスクの数を増やしてI/O負荷を分散させても、ログへの書き込み処理が集中すると、そこにボトルネックが発生してしまうためだ。特に大量の更新処理が同時発生するようなワークロードの下でこうした現象が発生しやすい。
そこでSymfowareはログを分散配置することで、ログへの書き込み処理の集中を防ぎ、ボトルネックを解消する仕組みを備えている。これが前述したロググループ機能だ。具体的には、ログ全体を「ロググループ」と呼ばれる複数の単位に分割可能としている。
このロググループを「どのような単位で分割して配置するか」も、管理者が任意に設定できる。例えば、障害時のリカバリの単位でデータを分けておき、それぞれのデータに対応するログをロググループとしてまとめておけば、ログ書き込みの処理負荷を分散できると同時に、障害の際にはロググループの単位で個別にデータをリカバリできる。このログ分散の機能はSymfoware独自のものであり、ユーザー企業からの評価も非常に高いという(以上、図1参照)。
図1 Symfowareではエントリ版を除いた全エディションにパーティショニング機能を標準装備。ディスクのI/Oの問題を解決するSymfoware独自のログ分散の機能も持つ |
「ミッションクリティカルシステムのデータベースは、更新処理の多重度が非常に高くなるので、このログ分散の機能が大きな威力を発揮します。また、データベースを拡張する際にも、拡張分のログを分散配置することでボトルネックが発生しにくくなるため、性能を損なうことなく高いスケーラビリティを確保できます」(杉山氏)
より身近にする新しいスマートな技術
これまでSymfowareには、大規模基幹システム向けの「Symfoware Server Enterprise Extended Edition」、中規模・大規模システム向けの「Symfoware Server Enterprise Edition」、中規模システム向けの「Symfoware Server Standard Edition」の3エディションがあった。そして前述のように、ミッションクリティカルシステム向けのさまざまな独自技術を全エディションが実装している。
一方、従業員数100人規模の企業や部門単位で使用する小規模システムで使われるデータベースは、ミッションクリティカルシステムほどの性能や耐障害性を必要としていない場合も少なくない。ICTインフラコストの最適化が進む中、小規模とされるシステムではサーバ1台で構成するシングル構成や、同一サーバ内に仮想化技術によって集約される例が多くなってきている。
こういったシステムで使われるデータベースでは、Symfowareが持つミッションクリティカル向けの技術は時に冗長と捉えられることがある。これを受けて富士通は2011年7月、Symfowareのラインナップに、中規模・小規模システム向けに「Symfoware Server Lite Edition」を追加した。
Symfoware Server Lite Editionでは小規模領域で求められる利便性を追求し、これまでの製品とは一線を画した新しいスマートな技術を採用している。この技術はハードウェアやソフトウェアの状態を自動的に判断し、ミドルウェアの導入・運用を効率化する。杉山氏は「今後、富士通のミドルウェア製品にはこの技術が展開されることとなっており、Symfoware Server Lite Editionはその初めての製品になります」と語る。
Symfoware Server Lite Editionには、「スマートセットアップ」「スマートリカバリ」と呼ばれる2つの機能が採用されている。
「スマートセットアップ」は、その名の通り、Symfowareのインストールとセットアップを極めて簡単にできるようにした機能だ。パラメータの設定値を、あらかじめ中規模・小規模システム向けに適した値にプリセット。ディスクの配置やメモリの配分なども、インストーラがハードウェア構成を自動的に認識し、最適化した形でセットアップする(図2参照)。
図2 Symfoware Server Lite Editionではパラメータの設定値を、中規模・小規模システム向けに適した値にプリセット。セットアップも手間なく迅速に行える |
もう1つの「スマートリカバリ」もユーザーにとっての利便性が追求されており、わずかな手間でリカバリを簡単に実行できる。日常のバックアップでも、リカバリに必要なデータは、データベースの設計情報、スキーマまで含めて常時、一括でバックアップしており、常に最新データへの復旧を簡単に実現できる(図3参照)。
図3 Symfoware Server Lite Editionでは、リカバリに必要なデータを常時、一括でバックアップ。最新データへの復旧を簡単・迅速に実現できる |
こういった新しい取り組みを支えるデータベースエンジンについては、「データベースエンジン自体は上位エディションとまったく同じものを使っている」(杉山氏)ため、性能や信頼性という点で折り紙付きだ。
なお、将来的には上位エディション製品にもこのスマートな技術を搭載していく予定。「ただ、その機能についてはSymfoware Server Lite Editionに搭載したものとは異なるものになるはずです」と杉山氏は述べる。
「Lite Editionに搭載したこの新技術は、専任のデータベース管理者がいない小規模なシステムを使う企業を想定して“簡単であること”を追求しました。しかし、上位エディションを運用している企業では、ある程度本格的な運用体制が整っているはずです。従って、そうした環境で求められる“スマートさ”を見極めて、最適な機能を提供していきたいと考えています」――全てのユーザー企業が自社にフィットする形で製品を活用できること、それが富士通が考えるデータベースの最も大切な要件なのかもしれない。
高速性と高信頼性を両立させ、スマートな技術によって使いやすさも追求したデータベースソフトウェア、「Symfoware」。“高性能”をうたう製品は多々あるが、本製品の場合、“スペック面での高性能”ではなく、あらゆる現場のニーズに応えた真の意味での“高性能”と言えることが理解できたのではないだろうか。今回紹介した「ミッションクリティカル向けデータベースの要件」を基に、貴社の業務基盤は本当に“高性能”かどうか、一度チェックしてみてはいかがだろうか。
関連リンク |
|
Symfowareに込められた“高性能”という開発者のこだわりを聞く |
関連記事 |
|
データベースの災害対策、3つのシナリオ |
提供:富士通株式会社
アイティメディア営業企画
制作:@IT 編集部
掲載内容有効期限:2012年1月30日