如何通过测试密钥的存在来优化交易成本?

时间:2013-01-20 02:04:55

标签: azure azure-storage azure-table-storage azure-storage-blobs

我正在使用Azure存储Blob /表/队列设计应用程序,处理大量数据。 该应用程序的一个重要方面是,如果给定密钥不存在,工作将完成,并且确定密钥的存在是一项频繁且密集的任务。

我需要根据密钥的存在检查来优化尽可能多的可计费交易。 它可以是对抗blob或表。

我查看了这个文档Understanding Windows Azure Storage Billing – Bandwidth, Transactions, and Capacity似乎只有匿名请求才会计算404错误。

我还在考虑使用BatchTableOperation一次检查100个密钥,可能使用Replace或Merge,并在结果中确定密钥是否确实存在(未尝试过,实际上我在写作时得到了这个想法)< / p>

欢迎任何好的黑客。

1 个答案:

答案 0 :(得分:0)

您应该使用Windows Azure Caching

  • 加载缓存中的所有现有密钥
  • 每次向表存储添加记录时,也将其添加到缓存

完成后,请先让应用程序检查缓存。如果该项目不存在,请检查表存储以确保(覆盖边缘情况)。但99%的情况下,如果项目已被处理,密钥将在缓存中可用,您将不需要查询表存储(这将大大减少到表存储的事务)。

如果使用Windows Azure缓存不是一个选项,则有其他选择,例如使用MemoryCache,将所有密钥保存在文件中,...