gpt4 book ai didi

c# - 跨表分区的事务性插入

转载 作者:行者123 更新时间:2023-12-03 06:03:44 31 4
gpt4 key购买 nike

我将一个实体存储在两个 Azure 存储表中。两个表中的数据相同,只是 RowKeyPartitionKey 不同(这是为了查询目的)。

问题

插入到这些表中时,我需要该操作是事务性的 - 仅当两次插入都成功时才必须提交数据。

CloudTable.ExecuteBatch(..) 仅当实体属于同一分区时才有效。

没有其他方法可以做到这一点吗?

最佳答案

简短回答:

不幸的是没有。一次仅支持 1 个表的实体批量事务,并且 some other restrictions .

长答案:

我们也遇到过类似的问题,我们必须跨多个表插入数据。我们所做的一件事是我们尝试实现某种 eventual consistency 。我们不是将数据直接写入表中,而是将数据写入队列中,并让后台工作角色处理该数据。一旦数据写入队列,我们​​假设数据最终会被持久化(还涉及到一个缓存引擎,它也会在这里更新最新的数据,以便应用程序可以获得最新的数据)。后台 worker 角色继续重试插入(使用 InsertOrReplace 语义,而不仅仅是 Insert 语义),一旦写入所有数据,我们只需从队列中删除消息即可。

关于c# - 跨表分区的事务性插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19854085/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com