さまざまな技術を組み合わせてシステムを開発・改善する。そのためには、組み合わせる技術の「かたち(特徴)」の把握が欠かせない。現場への適用によって明らかになったDB高速化策のアンチパターンを、技術の仕組みと共に解説。その上で、技術の特徴を生かした使い方を紹介する。
ユーザーの情報システム活用が多様化し、DBサーバーが扱うデータ量は膨大になり、システムへのアクセス数も急速に拡大している。データ処理のリアルタイム性を求められるケースも増えている。その結果、運用中のDBサーバーを高速化するニーズは、ますます増大している。
こうしたユーザーのニーズを受け、DBの高速化を図るための製品や技術も続々登場している。例えば、最近、システム開発現場での適用や検証が進んでいる主な高速化策には、以下の四つがある。
(1)インメモリーDB
メモリー上で処理を実行し、ディスクへのアクセス時間をなくして高速化を図る。データの参照に高い処理性能が求められるときに採用されることが多い。
(2)SSD(Solid State Drive)
内蔵したメモリーにデータを格納するストレージの記憶媒体。ディスクアクセスをより高速化できる。ディスクへの書き込み・読み出し頻度が高いDBサーバーに向く。
(3)DB高速化アプライアンス
DBMSが行う処理の一部をハードウエアが肩代わりする仕組みを備える専用装置。基幹系システムのデータを多次元分析にも利用する場合、高速化策として採用されることが多い。
(4)IaaS/PaaS
仮想化技術を利用したシステム基盤サービス。IaaS(Infrastructure as a Service)やPaaS(Platform as a Service)を活用すれば、CPUコア数やメモリー容量、ディスク容量など、それまで稼働していたサーバーを上回るハードウエアリソースを容易に確保でき、高速化を図ることができる。
取材を重ねた結果、実際のシステム開発の現場では、これらの高速化策を適用しても効果を得られないケースが少なくないことが分かった(図1)。
ITエンジニアは、さまざまな技術を組み合わせてシステムを作り上げていく。しかし組み合わせる技術一つひとつの特徴を的確に捉えておかないと、機能や性能に問題のあるシステムができてしまう。
そこで今回、上記の四つの対策を適用したDB高速化の場面で、効果が得られなかった事例を取り上げ、なぜそのような問題が起こったのか、技術の仕組みと共に解説していく。それぞれの技術の特徴、すなわち「かたち」を押さえて、現場での適用に役立ててほしい。