LevelDBをストレージエンジンとして使用し、キャッシュ層としてmemcachedする分散ストレージプロジェクトでは、ストレージエンジンにキーが存在しない95%のクエリがあります。ストレージエンジン:そのキーが存在しないことを素早く見つける方法
memcachedレイヤーで、キーが見つからない場合は、LevelDBをクエリします。
LevelDBでは、デフォルトのブルームフィルタを使用して、キーが存在するかどうかを判断しますが、依然として1%の偽陽性率があります。 1%のパーセンテージのために、私たちはIOによって値を要求しなければなりません。これはクライアントが許容することができません。 (95%のキーは存在しません)
キーが存在しないかどうかを知る良い解決策はありますか?
更新日: 1.鍵は毎日生成されます(ユーザID +日付)。一度キーを取得できないと、クライアントはその値を記憶層に入れます。 2.クライアント私はあなたのソリューションを改善するために使用することができる2つの方法があると思い
多分あなたは1日あたりのユーザーアクセスを記録したいでしょう。そうすれば、この「キーは存在しません」という問題を「存在していますが、値には指定された項目が含まれていません。 –