本文档定义了 Spanner Omni 的核心概念和部署拓扑。它涵盖了区域、可用区和服务器之间的层次关系,并说明了这些组件如何与部署中的数据复制和存储相关联。
Spanner Omni 概念
以下各部分详细定义了 Spanner Omni 文档中使用的术语。熟悉这些概念有助于您清楚了解系统的架构和运行行为。
部署
Spanner Omni 部署,可让您使用数据中心或公有云账号中的数据库。您可根据部署配置中指定的参数创建部署。Spanner Omni 部署相当于Google Cloud中的 Spanner 实例。
部署配置
为 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 之间(含边界值)的奇数,以确保一致性的法定人数。如果服务器数量为偶数,部署可能会失败。配置区域时,将服务器指定为根服务器。我们建议您使用一个用于开发或测试,使用三个用于高可用性生产区域。
在规划部署时,请仔细考虑根服务器的数量。虽然您可以在创建部署后更改其中的根服务器数量,但我们不建议这样做。
非 root 服务器
非根服务器用于存储和提供用户数据,并提供了一种扩展区域计算能力和存储空间的方法。您可以根据工作负载需求向部署中添加任意数量的非根服务器。创建部署后,您可以更改非根服务器的数量。
拆分
Spanner 分块包含一系列连续的数据行,其中 Spanner 按主键对这些行进行排序。Spanner 会为存储在每个可用区中的每个分块创建副本。
存储
连接到服务器的永久存储空间。
可用区
一个或多个服务器的群组。对于数据复制,您应为每个副本创建一个可用区。对于本地部署,我们建议尽可能减少可用区之间的基础架构(虚拟机、磁盘)共享。对于云部署,请将可用区与 AWS 中的可用区或 Google Cloud中的可用区对齐。
工作器
一种专用无状态计算节点,旨在分流后台和资源密集型操作,例如在大型表上构建向量索引。工作器可在 Spanner Omni 的商业版中使用,并按与部署中的服务器相同的计算费率计费。开发者版不支持工作器。与服务器不同,工作器不托管用户数据、不处理用户流量、不参与领导者选举,也不属于特定可用区;相反,它们会向某个位置注册。如需了解详情,请参阅部署和管理工作器。