Database / Google Spanner Database Interview questions
How does Spanner handle schema changes without downtime?
Spanner treats DDL as a distributed operation coordinated across all replicas rather than a lock that halts the database. When a DDL statement is submitted, Spanner assigns it a future timestamp at which the new schema becomes active, and it propagates the pending change to every replica ahead of that time.
Existing reads and writes keep running against the current schema version right up until the transition point, so there's no window where the database is unavailable. For changes that require touching existing data, such as adding a non-null column with a default value, Spanner runs a background backfill process that populates the new column across all rows without blocking foreign traffic, and the schema change is only marked complete once the backfill finishes.
More Related questions...