Why does Google Cloud Storage need Turbo Replication?

I was looking at the docs for Google Cloud Storage and came across Turbo Replication.

Turbo replication is a Cloud Storage feature designed to asynchronously replicate newly written Cloud Storage objects associated with any insert, rewrite, copy, or compose operation—regardless of object size—to a separate region within a target of 15 minutes. Available for dual-region buckets, turbo replication offers a shorter, more predictable recovery point objective (RPO), helping to reduce data loss exposure.

I was a bit puzzled by this at first. Google Cloud’s dual-regional buckets are already replicated across multiple regions, and can serve data from either region. Aren’t all objects replicated at write time?

After reading the docs a few times, I realised what this paragraph was saying:

Cloud Storage always understands the current state of the bucket and transparently serves objects from either region as required. As a result, dual-region buckets are designed to have a recovery time objective (RTO) of zero, and temporary regional failures are normally invisible to users; in the case of a regional outage, dual-region buckets automatically continue serving all data that has been replicated between the two regions.

  1. Writes to a dual-region bucket are asynchronously replicated between the region pairs. This replication can be quite slow. Under standard replication, the target is for 99.9% of writes to be replicated within an hour.
  2. If write replication is so slow, how can a multi-region bucket be useful when you need to read your writes immediately? Cloud Storage knows where each object has been replicated, and can route requests to the correct region if the object is only stored in one region.
  3. If a Cloud Storage region goes down, a dual-region bucket can continue to serve objects from the other region. However, any unreplicated objects will be unavailable until the region comes back online.

Therefore, if you need stronger guarantees around the freshnesss of data during a regional outage, you can turn on Turbo Replication for a bucket. This has an SLA of replicating 100% of writes to the other region within 15 minutes. This gives an upper bound (as long as the SLA isn’t breached) of how much data might be unavailable during a regional outage. Note that once the outage is resolved, the data will be replicated to the other region.

Turbo Replication costs more than standard dual-region replication.