|
Where mariadb-binlog unparses a binary log into its executable (and readable) transactions, there are many different use cases in which these can be replayed or analyzed. A few examples apart from normal transaction replay are 1) the --flashback option to play transactions backwards and reset replication state, 2) MDEV-26982, which proposes a configurable way to collect statistics about the events during replay, and 3) a proposed ability to estimate an initial data state of an arbitrary binary log, so the binary log can be replayed for debugging/profiling purposes.
To help facilitate for the wide-range of use cases in transaction analysis and replay, mariadb-binlog could be extended to call a script so users could utilize the parsing of mariadb-binlog, but add on their own functionality. One potential implementation could be an embedded Python API, where mariadb-binlog provides hooks to invoke after it parses an event, with specific functions to override for custom analysis.
We could also provide a few simple scripts for some common use cases, which could be designed for users to extend.
|