【发布时间】:2017-03-05 11:06:39
【问题描述】:
我正在设计一个多租户 Azure Service Fabric 应用程序,我们将在其中将事件数据存储在 Azure Append-Only Blob 中。
会有两种 blob; 合并 blobs(每个租户一个);和 instance blobs(租户拥有的每个“对象”一个 - 每个租户将有 100K+ 个)
每个实例 blob 将有一个写入器。该写入器跟踪上次写入的 blob 位置,从而可以确保(使用条件写入)自上次成功写入以来没有其他写入器写入该 blob。这是我们将用来为每个实例提供强一致性的一个重要方面。
但是,所有对instance blob的写入必须也最终(但尽快)到达单个(每个租户)合并blob。
在正常操作下,我希望这些合并写入发生在 ~100 毫秒内。
我的问题是我们应该如何最好地实现这种有保证的双写功能:
实现必须保证写入实例 blob 的数据最终也将写入相应的合并 blob恰好一次。
必须避免以下不一致:
数据已成功写入instance blob,但从未写入相应的merge blob。
数据被多次写入merge blob。
【问题讨论】:
标签: algorithm azure-storage azure-blob-storage distributed-computing azure-service-fabric