用途:帮助开发者为 CockroachDB 应用选择并实现多区域模式,涵盖主动-被动与主动-主动架构、REGIONAL BY ROW 与手动地理分区对比、GLOBAL 表行为与权衡,以及多区域演示或工作坊的搭建。
主要能力:提供模式选择决策模型(先判断写入模型是单一主区域还是多区域),比较常规区域表、手动地理分区、REGIONAL BY ROW、GLOBAL 表的写入模型、读本地性、运维负担与适用场景;给出存活目标选择(SURVIVE ZONE FAILURE 与 SURVIVE REGION FAILURE 的延迟与数据安全权衡);提供验证查询(SHOW RANGES ... WITH DETAILS)检查租约持有者位置;给出跨区域延迟指引与迁移检查清单。
使用方式:需先理解 CockroachDB range 与 leaseholder 概念,并准备带 --locality=region=...,zone=... 的多区域集群。本地演示可用:cockroach demo --no-example-database --nodes=9 --demo-locality=region=NA-NE,az=1:...。示例 DDL 包括 ALTER DATABASE ... PRIMARY REGION、ADD REGION、SURVIVE REGION FAILURE,以及 CREATE TABLE ... LOCALITY REGIONAL BY ROW AS region。
适用场景:多区域读写建模、主动-主动与主动-被动选型、评估 REGIONAL BY ROW 与手动分区、理解 GLOBAL 表、构建多区域演示、验证租约与区域配置、优化跨区域事务延迟。
限制:不适用于仅涉及 SQL 语法、索引或无多区域决策的通用模式设计;GLOBAL 表不应被当作全区域低延迟写入方案;常规主区域表不提供各区域对称低延迟写入;多区域配置变更影响数据放置,需先在演示或预发集群测试并留出再平衡时间。事务设计见 designing-application-transactions,SQL 语法与模式设计见 cockroachdb-sql。