如果其中一个区域发生故障(中断),具有多区域写入功能的 Azure Cosmos DB 中是否会发生数据丢失?

如果其中一个区域发生故障(中断),具有多区域写入功能的 Azure Cosmos DB 中是否会发生数据丢失?

我使用 Azure Cosmos DB 在两个区域进行多区域写入,我需要知道如果其中一个区域发生故障(中断)会发生什么。会丢失数据吗?如果会,恢复需要多长时间?

也许有人在自己的项目中遇到过这种情况,即在具有多区域的 Cosmos DB 中写入其中一个区域中断。有人可以分享这样的经验吗?我面临多大规模的数据丢失或损坏风险?

文档说存在数据丢失的可能性,但没有明确的信息,不知道会丢失多少数据(例如计算公式或类似内容),也没有关于时间的信息。“考虑到内部 Azure Cosmos DB 架构,使用多个写入区域并不能保证在区域中断期间写入可用性。在区域中断期间实现高可用性的最佳配置是具有服务管理故障转移的单个写入区域。”https://docs.microsoft.com/en-us/azure/cosmos-db/high-availability#what-to-expect-during-a-cosmos-db-region-outage

答案1

文档中的这句话给了你一个相当简洁的答案:

故障区域中最近更新的数据可能无法在其余活动区域中使用。最终、一致前缀和会话一致性级别可保证陈旧性小于 15 分钟。有限陈旧性可保证少于 K 次更新或 T 秒,具体取决于配置。如果受影响的区域遭受永久性数据丢失,则未复制的数据可能会丢失。

如果您使用最终的、一致的前缀或会话一致性,您可能会丢失最多 15 分钟的数据,如果您使用无限陈旧性,那么这将取决于您的配置。

相关内容