A 30 TB database can restore at 900 MB/s, replay at 400 MB/s, and rebuild a derived search index in two hours. Your target is four-hour RTO. Estimate the minimum transfer time and propose a recovery dependency plan that protects core reads and writes.
Reliability & Failure Recovery · Staff
The restore plan said three hours. Why did it take nine?
The Backup Succeeded. Can We Recover? · Part 5 of 6 · 5 min read
Read the worked explanation ↓Think first
A 30 TB database can restore at 900 MB/s, replay at 400 MB/s, and rebuild a derived search index in two hours. Your target is four-hour RTO. Estimate the minimum transfer time and propose a recovery dependency plan that protects core reads and writes.
Take a few minutes to form an approach, then compare it with the worked explanation.
Check the exercise numbers
Using decimal units, 30 TB / 900 MB/s is about 33,333 seconds, or 9 hours 16 minutes, for transfer alone. A four-hour RTO therefore cannot be met by that full-copy path. Replay at 400 MB/s adds time proportional to the actual WAL volume, which the exercise does not specify; it is not 30 TB unless that much WAL must be replayed. Derived search can leave the core-service critical path only if the agreed degraded service remains safe. Compare a smaller serving recovery set, pre-positioned standby or faster measured restore path, then budget detection, fencing, replay and validation.
Reveal the worked explanation
Interview question. An organization rehearses disaster recovery for a 24 TB database. The runbook promises restoration within three hours. The full recovery takes nine. Diagnose where the time went, distinguish unavoidable transfer work from sequencing mistakes, and redesign the plan to meet a measured recovery objective.
Imagine the outage bridge at hour two. The backup service has downloaded 40% of the data, every team's status is green, and somebody says the restore is 'almost done.' It isn't. Restoring bytes is one stage. The database must replay logs, verify consistency, start dependent services, warm the critical working set, rebuild anything not present in the restored artifact, and pass business checks before accepting real customers.
I would ask for a timestamped critical-path trace before suggesting a faster instance. When was failure detected? When was the restore authorized? When were credentials available? When did the first byte move? When did the last byte land? When did log replay finish? When did the first verified customer transaction succeed? A single nine-hour total hides whether the bottleneck is storage, parallelism, operator approval, or an unrelated service that was supposed to start first.
Let's do the transfer arithmetic. Suppose the protected data is 24 TB in decimal units and the runbook assumed 4 GB/s effective end-to-end restore bandwidth. Ignoring everything else, copying that amount requires about 6,000 seconds, or 1 hour 40 minutes. That seems compatible with a three-hour RTO until we discover that the actual end-to-end rate was 1 GB/s. Now the copy alone takes about 6 hours 40 minutes. No amount of optimism about fast object storage changes those numbers. Verify whether 24 TB means actual bytes transferred, compressed size, restored logical size, or replicated physical footprint before comparing estimates.
Why was throughput a quarter of the estimate? The source might permit plenty of reads while the destination's volume provisioning or write bandwidth is limited. The restore client may use eight workers when the storage service needs more parallel requests. A cross-region link may have sufficient nominal capacity but insufficient effective TCP throughput. Decryption and decompression can saturate CPUs. Small-file restores can spend most of their time in metadata operations rather than transfer. Retries under throttling can make aggressive concurrency slower, not faster. Examine bytes per second, active requests, target IOPS, queue depth, CPU, network, throttling, and per-stage p95 duration.
Suppose we actually solve throughput and restore the files in one hour and forty minutes. The database still spends fifty minutes replaying WAL to the chosen recovery point. Then a dependent authentication service takes twenty minutes to start because its secrets and directory integration were not included in the disaster region. Search rebuilding takes another two hours, even though checkout could work without it. Teams mistakenly placed search in the mandatory critical path. This is where the architecture choice matters more than the storage benchmark.
Define the smallest safe business service first. Can customers place and inspect orders with search degraded? Can existing sessions continue while the identity provider's administrative interface is unavailable? Which features are genuinely required to establish correctness? Put those on a dependency graph. Restore authoritative state, required identity and configuration, and the write-fenced serving path first. Rebuild derived indexes, historical recommendations and bulk reports afterward if their absence does not violate the recovery contract.
Avoid serializing independent tasks. While the base image transfers, you can provision compute, network rules, service accounts and monitoring in parallel, provided the infrastructure is clean and those steps do not incorrectly assume recovered data is ready. Have alternate capacity preapproved. A scripted restore that waits for a person to create each volume sequentially will not meet the same target as a rehearsed, parallelized restore. But do not parallelize dependent operations in a way that exposes partially replayed financial data.
What about incrementals? They reduce routine backup cost, but some incremental chains require extra reconstruction steps and more read operations during restore. A plan optimized for cheap daily backups may be worse at recovery time. Compare full backups, physical incrementals, snapshot mounts, warm standby and continuous replication under the same failure scope. Snapshot-mounted volumes may deliver fast initial availability while background hydration slows cold reads. Measure customer-facing p95 and p99 after switching traffic, not just whether the mount succeeded.
Finally, set budgets for the phases, not a single vague end time. For example: detection ten minutes, declaration and isolation ten, infrastructure twenty, data transfer one hundred, replay twenty, essential service validation twenty, leaving nothing for surprises if those numbers sum to three hours. That alone reveals the plan is too brittle. Rehearse with degraded quotas, an unavailable key-management dependency, and a restore point selected from the middle of the retention window, not always the latest easy snapshot.
A strong Staff or Principal answer doesn't promise that the next restore will be faster because a larger machine is available. It provides a measured dependency graph, an explained throughput ceiling, a differentiated minimum viable recovery path, and repeatable evidence that actual customer transactions return before the RTO. Three hours is a product promise. Nine hours is a measurement. The job is to close the gap between them.
Go deeper
RPO and RTO are independent. Accelerating file transfer does not reduce the age of the latest recoverable point. For critical path calculations, distinguish peak device bandwidth from effective application-level recovery throughput, including reads, network, decompression, destination writes and verification. At 24 TB decimal, 24e12 / 1e9 / 3600 = 6.67 hours. In database products, some operations called 'snapshot restore complete' finish control-plane provisioning while lazy block hydration or index cache warmup continues. Test the definition of service-ready, not only the provider's job state.
Check your reasoning
- Show the elapsed critical path from detection to customer-ready operation.
- Compute 24 TB divided by effective one-GB-per-second bandwidth as about 6.67 hours.
- Inspect source, network, CPU and destination throttling instead of quoted link bandwidth.
- Separate necessary authoritative recovery from rebuildable search and analytics.
- Rehearse staged readiness under realistic quotas and failure dependencies.
Common mistake: A restore source capable of 8 GB/s guarantees an 8 GB/s end-to-end restore.
Read the answer explanation
Measure each stage and remove actual bottlenecks and avoidable serial dependencies — The end-to-end restore path is limited by its slow stages and includes customer-ready service validation.
Apply it elsewhere
A machine-learning feature store has a large offline archive and a small online serving view. Design a fast partial recovery that supports existing inference while long-history features rebuild.
Compare your approach
Measure the full customer-visible critical path, calculate transfer bounds with units, find source/destination bottlenecks, separate essential from rebuildable dependencies, and validate performance after traffic restoration.
One more constraint
If your object store serves 8 GB/s but the destination volume can persist only 1 GB/s, can 24 TB be copied in under two hours without changing the target bottleneck?
Quick revision
A restore can meet its storage-job SLA while missing the business RTO. Break elapsed time into detection, decision, transfer, replay, dependencies, validation and traffic cutover. For 24 TB at 1 GB/s, transfer alone takes about 6.67 hours, already exceeding three hours. Diagnose effective throughput and target limits, not advertised network speeds. Parallelize independent setup and move derived search or analytics off the critical path. Rehearse the entire service, including cold-start performance, against the promised RTO.