谷歌最近宣布了 Cloud Spanner 的新区域和多区域功能。分布式 SQL 数据库现在支持可配置的只读副本,并引入了“零停机”实例移动服务。
Cloud Spanner支持区域和多区域配置,区域配置提供 99.99% 的可用性,多区域配置提供 99.999% 的可用性和区域中断保护。但正如高级产品经理Mark Donsky解释的那样,低延迟很难在全球范围内实现:
直到今天,只读副本在多个多区域配置中可用:nam6、nam9、nam12、nam-eur-asia1和nam-eur-asia3。但现在,借助可配置的只读副本,您可以将只读副本添加到任何区域或多区域 Spanner 实例,以便您可以向任何地方的客户端提供低延迟的陈旧读取。
Cloud Spanner 提供三种类型的副本:读写副本、只读副本和见证副本。只读副本为附近的客户端提供低延迟的陈旧读取,并有助于提高节点的读取可扩展性。由于它们不参与提交写入的投票,因此只读副本不会增加写入延迟。
零停机实例移动服务旨在将生产 Spanner 实例从任何配置和区域移动到不同的配置和区域,而无需停机,支持具有可配置只读副本的区域、多区域和自定义部署。Donsky 强调了之前的挑战:
因此,您可以想象将 Spanner 实例从一种配置移动到另一种配置(比如爱荷华州的 us-central1 到 us-west2 中具有只读副本的 nam3)是一项不小的壮举。考虑到 Spanner 在为极端规模的流量提供服务时高达 99.999% 的严格可用性,似乎不可能在零停机时间的情况下将 Spanner 实例从 us-central1 移动到 nam3。
新服务与使用额外读取副本自定义配置的选项相结合,现在允许客户将实例移动到谷歌云上的不同位置。根据环境的不同,操作可能需要几小时到几天才能完成,但在此过程中 Cloud Spanner 保持高可用性和强一致性,从而保持 SLA 保证。
在更改期间,源实例配置和目标实例配置均需按小时计算和存储费用。新的零宕机迁移服务需要在谷歌支持下开工单,目前有一些限制:不支持跨项目和账户迁移实例,不支持Spanner免费试用实例,一个实例必须至少有1个节点(1000个处理单位)。
在另一份公告中,Spanner细粒度访问控制现已普遍可用,允许数据库管理员定义数据库角色,向角色授予特权,并创建 IAM 策略以向 IAM 主体授予角色权限。今年早些时候,Spanner 引入了对区域端点的支持,数据在同一区域内存储和处理以符合监管要求,但该功能已回滚并移至未来版本。