ネットワーク性能、仮想化、テストがNoSQLデータベースの性能やスケーラビリティの問題に対処する上での考慮点だ。Alex Bordei氏はNoSQLデータベースのスケーリングについて、性能の増強について書いている。氏はNoSQLデータベースの性能最適化のベストプラティクスについてのウェブキャストを共催している。
Alex氏はNoSQLデータベースの性能を増強するために、次の5つの領域について説明している。
直線にスケールする: 単に並列にするだけで分散アプリケーションをスケーリングしても必ずしも性能は改善しない。ハードウエアの価格は仕様が向上すれば指数的に上昇する可能性がある。氏は水平と垂直のスケーリングの間に、ハードウエアにかけたお金の中での最高の性能を達成できるスイートスポットを見つけることを推奨する。ハードウエアの構成はアプリケーションの設計やNoSQLデータベースの使われ方によって変わります。
テスト:ある特定のソフトウエアスタックのスケール方法のアイディアを見つけるための最高の方法はテストすることだ。仮想環境やクラウドを使って多量のお金や時間をかけずにテスト環境を作ることができる。
メモリ & CPUのリソース:メモリとCPUの細部は、NoSQLデータベースの性能とスケーラビリティにとって本当に問題だ。メモリのアクセス速度も仕様によって異なる(例えば、1333メガヘルツと1866メガヘルツのDIMM)。この違いが例えば、RedisやCouchbaseでは大きな要因になる。氏はRAMの速度を当てにせずに、メモリの仕様の細部に注意を払うべきだと考えている。CPUについては、ハイパースレッディングとターンオフバーチャライゼーション(Intel VT)によって性能が改善する可能性がある。
ネットワーク性能:ネットワークの遅延とスループットは全体の性能に影響する。仮想マシン(VM)はベアメタルサーバに比べてネットワークの接続性が低い。データベースソリューション全体の性能を評価することが重要だ。
NoSQLデータベースの仮想化:仮想化は柔軟性をもたらし、ひとつのマシンを複数の目的で使えるようになる。しかし、残念ながら、仮想化によってメモリのアクセス速度に影響が出る。これは、NoSQLデータベースにとって致命的なことになる可能性がある。NoSQLやDatastax(Cassandraの商用サポートを提供している)やSplunkのようなビッグデータ関連のベンダはベアメタル環境に製品をインストールすることを推奨している。
Alex氏はソフトウエアがいくら高速でスケーラブルでも、ハードウエアのすべてのコンポーネントの質が問われるということを強調sる。また、テストの労力に投資することで長期的には時間を節約できる。