Brifing

Instant Schema Changes in Airtable's New Database

New design enables rapid schema updates even in large tables

Airtable Engineering1 min

1Performance Tradeoff

While Airtable gained data compression benefits by switching from JavaScript to Rust, this required rewriting all rows during schema changes - taking up to 2 minutes for large tables. A new solution was needed to preserve user experience.

2Approaches Tested

The team first tried simple row rewriting but abandoned it due to performance issues. Then tested separate column storage and append-only methods. Memory efficiency and data locality concerns eliminated these options.

3Inspiration from MySQL

The final solution adopted MySQL 8.0's row-level schema versioning approach. Each row carries its schema version number. Schema changes only update metadata while rows remain untouched.

4Smart Translation Mechanism

During reads, dynamic translation occurs based on the row's schema version. A key optimization ensures only columns requested in the query get translated, preventing unnecessary work for unneeded columns.

5Dramatic Results

The new system made schema change times independent of table size. Operations that took 60 seconds now complete in 15 seconds. Additional optimizations like background row migration remain as future potential.

6Scalability Focus

This development is a key part of Airtable's goal to deliver instant responses at scale. Schema change performance is becoming a critical UX metric, especially for enterprise users.

Original article: Airtable Engineering — Airtable'da Şema Değişiklikleri Artık Anında