Uber migrated from Postgres to MySQL for its main database needs, due to the former’s inflexible schema changes and inefficient replication. Postgres’ schema migration locks the entire table for both reads and writes, causing service downtime. Postgres’ inefficient replication caused data inconsistency across Uber’s services.

MySQL, on the other hand, offers flexible schema changes and efficient replication. It allows for non-blocking alterations, meaning services can function during schema changes. MySQL’s replication, unlike Postgres’, ensures data consistency across services.

Uber’s engineers modified MySQL to better suit their needs. They used the InnoDB storage engine and wrote a schema change tool, which allows for online, asynchronous, and lock-free schema changes. They also developed a tool to ensure data consistency during schema changes.

Uber’s migration to MySQL was not without challenges. They faced issues with data loss and inconsistencies during the migration process. However, they developed tools to tackle these issues, ensuring a smooth transition.

Uber’s migration to MySQL has resulted in more efficient and flexible database operations, leading to improved services for its users.

Go to source article: https://eng.uber.com/mysql-migration/?imm_mid=0e667a&cmp=em-data-na-na-newsltr_20160803