C# 与CosmosDb的并发问题
由于竞争条件,我们正在努力处理创建的重复文档。我们处理事件并创建或更新文档。我们注意到,如果在几毫秒内得到两个事件,我们将创建重复的文档。第一个事件应生成新文档,第二个事件应为更新 这是存储产品中的逻辑C# 与CosmosDb的并发问题,c#,.net,azure,concurrency,azure-cosmosdb,C#,.net,Azure,Concurrency,Azure Cosmosdb,由于竞争条件,我们正在努力处理创建的重复文档。我们处理事件并创建或更新文档。我们注意到,如果在几毫秒内得到两个事件,我们将创建重复的文档。第一个事件应生成新文档,第二个事件应为更新 这是存储产品中的逻辑 查找具有特定Id和状态的现有文档 创建新文档或更新现有文档(如果存在) 如果创建,我们将再次选择一个,以检查是否只有一个id和状态组合的文档。如果超过1,则回滚。在更新的情况下,我们依赖Etag 我们在更新方面做得很好,但create给了我们很多困难。如果有办法,请告诉我。 重复数据消除键是外部
我不知道CosmosDB中有任何类型的OOTB同步功能 您使用的是哪种一致性级别?一致性前缀谢谢您,我们有一个现有的数据库,我们希望避免创建具有唯一约束的新数据库。这将是一项重大努力。我错过了问题中的这一部分。@RohitRanjan我已经详细阐述了我的答案。非常感谢您的时间,Rob,不幸的是,任何关键部分都会破坏可扩展性和性能。我们正在使用服务结构。此服务位于地理位置的多个群集上。根据该策略,关键部分将基于每个id。因此,您的锁定将是最小的。