使用只读副本设计的 Azure SQL 数据库是否符合 ACID 要求

问题描述 投票:0回答:1

我目前正在准备面试,并试图弄清楚什么是符合 ACID 的,什么是不符合的。

据我了解,具有 1 个写入/读取和多个读取副本的 Azure SQL 数据库将符合 ACID 标准(如果 ACID 中的 C 被认为使数据库不处于损坏状态,并且不具有强一致性) 是的,我们将在这里实现最终一致性,但它不是仍然符合 ACID 吗?

以我目前的知识来看,它似乎是合规的。

sql-server azure-sql-database scaling acid
1个回答
0
投票

ACID 的每个元素都可能有不同程度的变化,所以这个问题是似是而非的。您真的不能说 Azure SQL 中的事务具有 ACID 属性而不陷入困境。

例如,您可以将隔离从无(READ UNCOMMITTED)更改为大量(SERIALIZABLE / SNAPSHOT)。持久性可以通过复制延迟来限定。等等。一致性可以通过约束来强制执行,但你必须应用它们,如果你愿意,你可以绕过它们。

就您的问题而言,您可以认为,如果您在副本之间反弹客户端,延迟确实会让您面临不一致的读取 - 但在大多数系统中,除了故障转移期间之外,这种情况在实践中很少发生。我认为是否配置了复制可能与 ACID 无关——这在处理有关高可用性、灾难恢复和业务连续性的问题时更相关。

© www.soinside.com 2019 - 2024. All rights reserved.