Azure表存储跨多个表的事务模式?

Azure表存储跨多个表的事务模式?,azure,transactions,azure-table-storage,Azure,Transactions,Azure Table Storage,在Azure表存储中,是否有任何软件模式可以支持跨多个表的事务 我想以原子方式从不同的表中写入(或删除)多个实体,如 try { write entity to table A write entity to table B } catch { delete entity from table A delete entity from table B } 在上述事务期间,我还希望防止任何人写入/删除相同的实体(相同的表、分区键和行键) 我知道Azure存储不直接支持这一点,所以

在Azure表存储中,是否有任何软件模式可以支持跨多个表的事务

我想以原子方式从不同的表中写入(或删除)多个实体,如

try {
  write entity to table A
  write entity to table B
} catch {
  delete entity from table A
  delete entity from table B
}
在上述事务期间,我还希望防止任何人写入/删除相同的实体(相同的表、分区键和行键)


我知道Azure存储不直接支持这一点,所以我正在寻找一种模式,可能使用一个额外的表来“锁定”事务中的实体,直到事务完成。所有写入程序都必须获得对实体的锁定。

确保在处理表中的行时没有其他人修改它们的唯一方法是增加blob租用的开销。您可以让一个实例/线程获取blob租约,并执行它需要的任何操作。然后,完成后,释放水滴。如果无法获取租约,则必须等待或稍后重试。


其他基于表的操作,如悲观并发,实际上不会阻止某人修改记录。

您能提供更多详细信息吗?当你写数据时,它是通过一些后台进程写的吗?您是否希望基于数据获取锁,即当一个进程写入数据时,同一组数据不应由任何其他进程写入,还是只希望一个进程(多个进程中的一个)写入数据?