~/talk

Reliable Data Replication

Talkat P99 CONF 2024 · 2024-10-23..10-24· [databases, distributed-systems]
links:none on file
slides:none on file

Shopify builds a partial filtered replication pipeline that reads source MySQL binlogs with Go MySQL Canal, performs parallel backfills with a DB-log style de-duplication algorithm instead of long transactions, writes statements into regional MySQL, and relies on MySQL replication to fan out globally. It enforces correctness with incremental and full-table verification, implements parallel replication right-set algorithm for dependency-aware concurrent writes, and achieves ~5M rows/sec throughput and under 500ms p99 lag while handling online schema changes and continual backfills.

AI-written summary · about

  1. 0:00Introduction to data replication
  2. 1:08Background on Shopify data
  3. 3:36Problem and requirements explained
  4. 5:22Current replication at Shopify
  5. 6:25Why filtered replication
  6. 7:52Our replication solution overview
  7. 8:55Handling historical data backfill
  8. 10:40Evolution of the system
  9. 11:00Hard problem one correctness
  10. 12:48Hard problem two schema changes
  11. 14:32Hard problem three performance
  12. 17:41Solution summary and impact
  13. 18:46Downsides and operational complexity
  14. 19:48Personal learnings and advice
  15. 20:51Closing and Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.