非常に動的な Web サイトを展開中です。ピーク時は毎分約 20,000 件のアイテムが処理および更新されます。各項目のサイズは 1kb から 500kb の範囲です。これらのアイテムは、毎分キャッシュで取得、処理、更新する必要があります。
最初の 2 ~ 3 か月で最大 1000 ユーザーのトラフィックが見込まれます。各ユーザーが Web サイトにアクセスすると、人気のあるコンテンツを要求している場合と、人気のないコンテンツを要求している場合があります。すべてのコンテンツは、永続ストアにあるものの上位レベルで処理された形式です。したがって、人気があるかどうかに関係なく、処理されたすべてのアイテムを低レイテンシーのストアに置いて、優れたユーザーエクスペリエンスを実現することが絶対に必要です.
Memcache、Redis、および Couchbase を個別に試しました。
Memcache は非常に高速ですが、特定のスラブでメモリが不足し、アクティブなアイテムが削除され始めるという問題が発生しました。
Memcache よりも比較的遅い Redis は、アイテムの永続性が必要な場合に最適です。
しかしすぐに、シャーディングとレプリケーションが必要であることに気付きました。
Couchbaseはそれをすぐに提供しました.CouchbaseサーバーとインターフェースするMoxi-clientには、重い同時プロセスを処理できないという独自の問題があります。セットが欠落し始め、時々取得します。それと連携する Python SDK に移行しました。クラスタ内のノードの 1 つがダウンした場合、パフォーマンスが低下し、新しいトポロジをまったく検出できませんでした。キャッシュ内の一部のデータが失われ、貴重な数時間サイトが非アクティブになりました。
私たちのニーズに合った完璧な製品が存在しないことに気付いた時点で. すべてのテクノロジーと自分のニーズを認識しておく必要があります。データがどのように進化するかを予測し、それに応じて準備する必要があります。最良のソリューションは、おそらくテクノロジーのハイブリッドです。しかし、そこに何か他のものがあるかもしれないことを期待してこれを出しています。2012 年末が近づいています。強力なハードウェアでバックアップされたすぐに使えるソリューションで、必要なものを提供するのはどれほど難しいことでしょう。
洞察に満ちた記事への考えやリンクは大歓迎です。ありがとう!