When to Use ZONE vs. REGION Survival Goals

Warning:
CockroachDB v22.2 is no longer supported as of June 5, 2024. For more details, refer to the Release Support Policy.

A survival goal dictates how many simultaneous failure(s) a multi-region database can survive. All tables within the same database operate with the same survival goal. Each database is allowed to have its own survival goal setting.

Note:

This is an enterprise-only feature. Request a 30-day trial license to try it out.

Allowed survival goals include:

  • ZONE (default): Databases configured to survive zone failures have 3 voting replicas for every range, all in the home region. To support low-latency reads from other regions, one non-voting replica is placed in each non-home region.
  • REGION: Databases configured to survive region failures have 2 voting replicas in the home region, and 3 voting replicas in non-home regions. This enables fast reads from within the home region and ensures minimal disruption in case one node fails, since the home region has two possible leaseholder candidates.

Set a ZONE survival goal if:

  • You can accept a single node failure up to an entire zone failure. If multiple zones fail in the same region, the database may become unavailable.

Set a REGION survival goal if:

  • The database must remain available, even if a region goes down.
  • You can accept the performance cost: write latency will be increased by at least as much as the round-trip time to the nearest region. Read performance will be unaffected.
  • The database can be or already is configured with 3 or more database regions. At least three database regions are required to survive region failures.

See also


Yes No