本文档定义了 Spanner Omni 的核心概念和部署拓扑。它涵盖了区域、可用区和服务器之间的层次关系,并说明了这些组件与部署中的数据复制和存储之间的关系。
Spanner Omni 概念
以下部分详细定义了 Spanner Omni 文档中使用的术语。熟悉这些概念有助于清楚了解系统的架构和运行行为。
部署
Spanner Omni 的部署,可让您使用数据中心或公有云账号中的数据库。您可以根据部署配置中指定的参数创建部署。Spanner Omni 部署相当于 Spanner 中的 Spanner 实例。Google Cloud
部署配置
提供 Spanner Omni 部署的区域、可用区和服务器的放置位置和规范。您可以选择单服务器、单区域或多区域部署配置。
位置
相当于术语中的区域。 Google Cloud 两个区域之间的网络延迟非常重要。对于本地部署,您可以定义自己的区域。对于云部署,区域必须与相应云提供商中的区域保持一致。一个区域可以有多个可用区。
进程
Spanner 服务器会派生并管理多个进程。例如,TimeServer、spanserver 都是 Spanner 中的进程。各个进程可能具有监控统计信息,例如 CPU 和内存用量。进程可以打开端口,以便与部署中的其他服务器通信。
副本
Spanner 会复制数据,以提供数据可用性和地理位置。概括来讲,Spanner 会将所有数据整理成行。Spanner 会创建这些行的多个副本,然后将这些副本存储在不同的地理区域。 Spanner 使用基于 Paxos 的同步复制架构,其中的投票副本会在将写入提交到数据库之前对每个写入请求进行投票。与 Spanner 中一样,Spanner Omni 中有三种副本类型:读写副本、只读副本和见证者副本。如需了解详情,请参阅 Spanner 文档中的 副本类型。
服务器
服务器是一种计算资源,例如虚拟机或容器,Spanner Omni 服务器在其中运行。每台服务器都有自己的系统资源:CPU、内存和存储空间。服务器通过存储和提供用户数据来提供 Spanner Omni 的功能。
根服务器
根服务器存储关键元数据以支持可用区。例如,根服务器存储服务器成员资格和其他可用区配置信息。
每个可用区的根服务器数量必须是介于 1 到 9 之间的奇数(含 1 和 9),以确保法定人数以实现一致性。如果服务器数量是偶数,部署可能会失败。配置可用区时,请将服务器指定为根服务器。我们建议您在开发或测试时使用一个根服务器,在具有高可用性的生产可用区中使用三个根服务器。
在规划部署时,请仔细考虑根服务器的数量。虽然您可以在创建部署后更改部署中的根服务器数量,但我们不建议这样做。
非根服务器
非根服务器存储和提供用户数据,并提供一种扩缩可用区的计算容量和存储空间的方法。您可以根据工作负载需求向部署中添加任意数量的非根服务器。您可以在创建部署后更改非根服务器的数量。
拆分
Spanner 拆分包含一系列连续的数据行,其中 Spanner 会按主键对这些行进行排序。Spanner 会为每个拆分创建副本,并将其存储在每个可用区中。
存储
附加到服务器的永久存储空间。
可用区
一个或多个服务器的集合。对于数据复制,您应为每个副本创建一个可用区。对于本地部署,我们建议尽量减少可用区之间的基础架构共享(虚拟机、磁盘)。对于云部署,请将可用区与 AWS 中的可用区或 中的可用区保持一致 Google Cloud。