2015-10-18 49 views
1

我有关于使用Azure Table服务时的最佳做法的问题。Azure存储 - 处理跨分区更新

想象一下名为Customers的表格。想象一下其他几个表,分成大量的分区。在这些表中,有CustomerName字段。

在客户更改他的名字的情况下......然后我更新Customers表中的相应记录。与关系数据库相反,另一个表中的所有其他列(显然)未更新。

确保所有其他表格也被更新的最佳方法是什么?对我来说,查询CustomerName上的所有表,并随后更新所有这些记录似乎效率极低。

回答

3

如果您在表中多次存储客户名称,那么您就需要查找这些记录并更新其上的CustomerName字段。

由于这是一个非常低效的操作,您可以(也应该)这样做“off-transaction”。这意味着,当您执行初始的“名称更改”操作时,将项目推入队列并让工作人员执行“名称更改”。由于没有网络响应/用户急于等待工作人员完成这种效率低得无法理解的事实,因此无关紧要。

这是分布式系统中实现最终一致性初级设计模式。

+1

这样做的要求是手动进行这样的更改,使Azure表存储的速度更快 –

+0

“最终一致性”的概念听起来非常有趣。感谢您的洞察力。 –