This section provides recommended topology patterns for running CockroachDB in a cloud environment, each with required configurations and latency and resiliency characteristics.
Single-region patterns
When your clients are in a single geographic region, choosing a topology is straightforward.
Pattern | Latency | Resiliency | Configuration |
---|---|---|---|
Development |
|
|
|
Basic Production |
|
|
|
Multi-region patterns
When your clients are in multiple geographic regions, it is important to deploy your cluster across regions properly and then carefully choose the right topology for each of your tables. Not doing so can result in unexpected latency and resiliency.
Multi-region patterns are almost always table-specific. For example, you might use the Geo-Partitioning Replicas pattern for frequently updated tables that are geographically specific and the Duplicate Indexes pattern for reference tables that are not tied to geography and that are read frequently but updated infrequently.
Pattern | Latency | Resiliency | Configuration |
---|---|---|---|
Geo-Partitioned Replicas |
|
|
|
Geo-Partitioned Leaseholders |
|
|
|
Duplicate Indexes |
|
|
|
Follower Reads |
|
|
|
Follow-the-Workload |
|
|
|
Anti-patterns
The following anti-patterns are ineffective or risky:
- Single-region deployments using 2 AZs, or multi-region deployments using 2 regions. In these cases, the cluster would be unable to survive the loss of a single AZ or a single region, respectively.
- Broadly distributed multi-region deployments (e.g.,
us-west
,asia
, andeurope
) using only the default Follow-the-Workload pattern. In this case, latency will likely be unacceptably high. - Geo-partitioned tables with non-partitioned secondary indexes. In this case, writes will incur cross-region latency to achieve consensus on the non-partitioned indexes.