0

Azure Storage Blobs/Table/Queue を使用して大量のデータを処理するアプリケーションを設計しています。アプリケーションの重要な側面の 1 つは、特定のキーが存在しない場合に作業が行われることです。キーの存在を判断することは、頻繁で集中的なタスクです。

キーの存在チェックから、請求可能なトランザクションを可能な限り最適化する必要があります。ブロブまたはテーブルに対するものである可能性があります。

このドキュメントを参照しましたWindows Azure Storage Billing – Bandwidth, Transactions, and Capacitys 404 エラーは、匿名の要求からのみカウントされないようです。

また、BatchTableOperation を使用して一度に 100 個のキーをチェックし、おそらく Replace または Merge を使用して、キーが実際に存在するかどうかを結果で判断することも考えていました (試したことはありませんが、実際に書いている間にアイデアを得ました)。

良いハックは大歓迎です。

4

1 に答える 1

0

Windows Azure キャッシュを使用する必要があります。

  • キャッシュ内のすべての既存のキーをロードします
  • Table Storage にレコードを追加するたびに、キャッシュにも追加します

それが完了したら、アプリケーションで最初にキャッシュをチェックします。アイテムがそこに存在しない場合は、念のためにテーブル ストレージをチェックしてください (エッジ ケースをカバーするため)。ただし、99% の確率で、アイテムが既に処理されている場合、キーはキャッシュで利用可能であり、Table Storage にクエリを実行する必要はありません (これにより、Table Storage へのトランザクションが大幅に削減されます)。

Windows Azure キャッシュを使用できない場合は、MemoryCacheを使用する、すべてのキーをファイルに保存するなどの代替手段があります。

于 2013-01-20T02:12:18.700 に答える