多数のノードを利用していてパフォーマンス上の問題が生じたとき、それがどのノード、あるいはネットワークに原因があるのかを突き止めるのは容易ではありません。しかしuCosminexus Elastic Application Data storeでは処理内容がトレースとして記録されており、これを分析することによってボトルネックとなっているノードを特定したり、あるいはパフォーマンスを解析したりできるというわけです。
分散アーキテクチャでは、いずれかのノードがダウンした際にそれを検知するための仕組みも重要になります。uCosminexus Elastic Application Data storeでは、ハートビートを使って各サーバの生死確認を行っています。いずれかのサーバからハートビートがなくなった場合、生存しているサーバが確認のために接続し、それでも応答がなければノードダウンの可能性があると判断するという流れです。
「ノードがダウンしたということは、システムに何らかの異常が発生したことが想定できます。こうした異常時に負荷の高い処理を行うと、別の障害を引き起こす可能性がありますし、また正常なノードのメモリを消費することにもつながります。uCosminexus Elastic Application Data storeでは、もともと信頼性を重視して設計していることもあり、あえてリバランスは行わない仕様にしています(梅田氏)」
さて、本製品の実際の利用シーンとしては、一種のキャッシュサーバーとして利用することが考えられます。たとえば会員情報や購買履歴を表示するといった参照系のアプリケーションにおいて、あらかじめRDBMSから必要なデータを取り込んだuCosminexus Elastic Application Data storeをデータベースとして使うといった方法が考えられるでしょう。
同様に更新系の処理でも、キャッシュとして利用するメリットが得られます。具体的には、書き込み処理をRDBMSに直接行うのではなく、uCosminexus Elastic Application Data storeをバッファとして利用することにより、RDBMSのパフォーマンス不足などによる遅延を防げるわけです。
なお杉本氏によれば、システムによっては遅延の短縮が大きなポイントとなることがあり、その際にSQLの解析時間すら省くことが求められるケースがあるとのこと。こういった極限まで性能を突き詰める必要があるシステム、あるいはスマートメーターなど各種センサーから送られてくるデータをリアルタイムに蓄積、そして解析を行うといった用途でも分散KVSは使われていくのではないかと話します。このように用途が広がっていく分散KVSの世界において、日立製作所のuCosminexus Elastic Application Data storeがどのように存在感を示していくのか、今後の動向に注目したいと思います。