Instant Schema Changes in Airtable's New Database
New design enables rapid schema updates even in large tables
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