Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Readyset - A new era for MySQL caching

Readyset - A new era for MySQL caching

Readyset is a database scalability platform that uses transparent, event-driven caches to boost the performance and uptime of your database while driving down costs. It's wire compatible with Postgres and MySQL so it works out of the box with all of your favorite database tools and ORMs.

Marcelo Altmann

February 02, 2024
Tweet

More Decks by Marcelo Altmann

Other Decks in Programming

Transcript

  1. Marcelo Altmann 2 • Senior Software Engineer @ Readyset •

    Senior Software Engineer @ Percona ◦ Maintainer of Percona XtraBackup for MySQL • Long time Community contributor • MySQL Code Contributor
  2. Intro - Cache landscape in MySQL 7 • What is

    Cache • Maintenance / Invalidation There are only two hard things in computer science: cache invalidation and naming things. – Phil Karlton
  3. Intro - Cache landscape in MySQL 8 • What is

    Cache • Maintenance / Invalidation • MySQL Query Cache
  4. Intro - Cache landscape in MySQL 9 • What is

    Cache • Maintenance / Invalidation • MySQL Query Cache • InnoDB Buffer Pool
  5. Intro - Cache landscape in MySQL 10 • What is

    Cache • Maintenance / Invalidation • MySQL Query Cache • InnoDB Buffer Pool • ProxySQL
  6. Intro - Cache landscape in MySQL 11 • What is

    Cache • Maintenance / Invalidation • MySQL Query Cache • InnoDB Buffer Pool • ProxySQL • External tools (eg.: Redis, memcache)
  7. Readyset 13 • Based on MIT PHD Thesis - Partial

    State in Dataflow-Based Materialized Views (Noria) by Jon Gjengset • https://github.com/readysettech/readyset • Core / Cloud • No application code changes • Automatic cache maintenance • Horizontal Scale • Wire compatible with MySQL & PostgreSQL
  8. How Readyset Works 16 • Snapshotting & CDC (Change Data

    Capture) / Replication • Dataflow Graph SELECT id, author, title, vcount FROM stories JOIN (SELECT story_id, COUNT(*) AS vcount FROM votes GROUP BY story_id) AS VoteCount ON VoteCount.story_id = stories.id WHERE stories.id = ?;
  9. How Readyset Works 18 • Snapshotting & CDC (Change Data

    Capture) / Replication • Dataflow Graph • Partial Materialization
  10. How Readyset Works 20 • Snapshotting & CDC (Change Data

    Capture) / Replication • Dataflow Graph • Partial Materialization • Cache Miss
  11. How Readyset Works 32 • Snapshotting & CDC (Change Data

    Capture) / Replication • Dataflow Graph • Partial Materialization • Cache Miss • Cache Maintenance
  12. How Readyset Works 37 • Snapshotting & CDC (Change Data

    Capture) / Replication • Dataflow Graph • Partial Materialization • Cache Miss • Cache Maintenance • Stale Reads
  13. Summary 44 • Wire compatible with MySQL & PostgreSQL •

    No application code caches / plug & play • Automatically Cache Maintenance
  14. Summary 45 • Give it a try ◦ https://github.com/readysettech/readyset/releases/ ◦

    If you like, star-us, blog / tweet about your experience. • Slack Community - > https://bit.ly/readyset-slack • X / Twitter @readysetio -> https://bit.ly/readyset-x • Linkedin @readysettech -> https://bit.ly/readyset-linkedin
  15. Summary 46 Happy Hour Hosted by Readyset Saturday 3rd Feb

    - 6PM @Delirium Café RSVP - https://bit.ly/readysetrsvp