データベース・キャッシングの背景
RDBMSにキャッシュ層を組み合わせることは、パフォーマンスと信頼性を確保する上で長年に渡り常識とされてきました。 基盤となるデータストアのクエリの処理時間を短縮するため、データはキャッシュ層のメモリに保持されていました。データ量が増えると、RDBMSの代わりにNoSQLデータベースが使用されるようになり、レイテンシを抑えるために水平方向に拡張してクラスタ化されました。
デジタル・トランスフォメーションの登場
シンプルなWebアプリケーションはエッジベースのSoE(Systems of Engagement)へと変わり、現在は数十億のオブジェクトを処理し、数百万のコンテキスト・データポイントを使用して、さまざまな相互作用とエンゲージメントをすべて数ミリ秒で実現しています。データは高速化し、総量も増えています。より多くのデータがより速く配信され、エンゲージメントがより豊かになり、より適切な意思決定が行われています。 Forrester Researchによると、40TBから100TBの大規模なデータセットが一般的になり、データの増加やトランザクションの加速に終わりは見えません。
キャッシュ層の根本的な問題
現代の高速化をサポートし、キャッシュすべきデータ量の増加に対応するには、キャッシュ用ノードを次々と追加し、その結果、ますます大規模になるキャッシュ層を管理するシステムと戦略をさらに複雑にする以外に方法はありません。
このアプローチでは、DRAMキャッシング層のコストに注目すべきです。データ量が増加するに伴い、キャッシュ層のコストも増加し、さらに、キャッシュ・データの一貫性や正確性などの複雑なデータ・ライフサイクルの問題を管理するために莫大な投資が必要になります。言い換えると、キャッシュするデータ量が増えると、低コストでの運用は不可能になり、信頼性も安定性も低下します。
キャッシュに関わる深刻な問題の兆候
Aerospikeは、以下のような問題が発生しているお客様を支援します。
ノードが制御不能なほど増えている
データ量やアクセス・パターンの増加により、巨大なクラスタ(30ノード以上)が必要になっていませんか? メモリとサーバの予算が予測を上回ってしまうことが増えていませんか?
キャッシュの再起動に数時間から数日必要
キャッシュの再起動のために、新しいノードやサーバを停止することが増えていませんか? 再起動が完了するまでに、データが古くなっていませんか?
キャッシュ管理のための専門チームがある
技術的には興味深いものであっても、規模の問題の解決法は、ビジネスにとって重要ではありません。規模の問題に必要以上に時間と人手を取られていませんか?
キャッシュの不具合が頻繁に発生する
キャッシュの不具合が頻繁に発生していませんか? その問題を解決するために、別のアルゴリズムを試して失敗したことはありませんか?
クラスタ化が必要になるほどデータ量が多い
クラスタ化するためにデータベース・システムを再設計するリソースはありますか? 新しいアーキテクチャが、データ量の更なる増加に対応できなくなる不安はありませんか?