readysettech / readyset

Readyset is a MySQL and Postgres wire-compatible caching layer that sits in front of existing databases to speed up queries and horizontally scale read throughput. Under the hood, ReadySet caches the results of cached select statements and incrementally updates these results over time as the underlying data changes.
https://readyset.io
Other
4.54k stars 125 forks source link

Improve MySQL replication processing #1382

Open altmannmarcelo opened 1 month ago

altmannmarcelo commented 1 month ago

Description

Our current MySQL replication flow can be improved to process replication events faster. I Propose we do the following:

  1. Group events from the same transaction and dispatch them as a batch to Readyset. Currently we read one event and dispatch a single event. We should take into consideration compressed events.
  2. Pass table_filter object to replicator and skip events as soon as we read them. Currently we build the whole TableOperation and only discard the event in the noria code.

Change in user-visible behavior

Requires documentation change