Google Cloud 增强 Spanner 功能,支持双区域配置

Google Cloud Spanner 推出双区域配置更新

Google Cloud 对其全托管分布式 SQL 数据库服务 Spanner 进行了重要更新,新增了双区域配置选项。此次更新旨在帮助企业在云支持有限的地区遵守数据驻留法规,同时确保高可用性。

更新背景

在本次更新之前,企业在仅有两个 Google Cloud 区域的地区运营时,只能使用区域配置的 Spanner。多区域配置需要三个区域,通常会导致一个区域位于该国之外,从而与数据驻留要求冲突。新的双区域配置解决了这一问题,允许企业仅需两个云区域即可保持数据驻留合规性和高可用性。

双区域配置的运作机制

Google 高级产品经理 Nitin Sagar 在一篇博客文章中详细介绍了双区域配置的运作机制。他指出,当一个区域的一个副本发生故障时,Spanner 仍能保持可用性,因为每个区域至少有两个副本仍然正常运行。然而,如果整个区域发生故障,数据库将失去可用性。在这种情况下,系统可以切换到单区域模式,即在一个区域中的三个副本,以恢复可用性。

多区域配置的权衡

文档指出,多区域配置存在一些权衡,因为在这种配置中,读写仲裁副本分布在多个区域。当这些副本相互通信以形成写仲裁时,可能会注意到额外的网络延迟。读取操作不需要仲裁,因此应用程序可以在更多地方实现更快的读取速度,但写延迟会略有增加。

性能优化建议

Google 建议设计架构以防止热点问题和性能问题。为了避免单区域依赖并优化多区域配置的性能,关键计算资源应分布在至少两个区域。此外,在每个区域中将高优先级的总 CPU 利用率保持在 45% 以下,以提高性能。

其他云提供商的类似功能

Google Cloud 并非唯一提供此类功能的云服务商。其他云提供商如 Microsoft、AWS 和 Oracle 也为其数据库即服务(DBaaS)产品提供多区域设置,例如 Azure SQL、Cosmos DB、Amazon Aurora、Amazon DynamoDB 和 Oracle NoSQL 数据库。此外,其他数据库供应商如 Cockroach Labs 和 DataStax 也提供类似的多区域功能。

多区域流量需求的建议

在近期的一个 Reddit 帖子中,有用户建议,在处理多区域流量需求和云 DBaaS 解决方案时,要么将事务保留在每个区域的本地,要么使用各种工具和技术将架构转移到最终一致性模型。

双区域配置的可用性

Google Cloud 的新双区域配置现已在澳大利亚、德国、印度和日本提供。

阅读 41
0 条评论