Filter out events without ROW_EVENT [DBZ-4673]
- Dominant language
- HTML
- Stars
- 6
- Forks
- 8
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 1
Description
Migrated from [DBZ-4673](https://issues.redhat.com/browse/DBZ-4673)
VEvent with ROW_EVENT field are the "real" binlog events from main database that we are interested. Vitess will stream out transactions on "internal" tables (e.g., {{_vt.*}} tables) with `begin/gtid/commit`.
Example:
{code}
{
"events": [
{
"type": "BEGIN",
"timestamp": "1643917461",
"currentTime": "1643917461158158827"
},
{
"type": "VGTID",
"vgtid": {
"shardGtids": [
{
"keyspace": "test_keyspace",
"shard": "-80",
"gtid": "MySQL56/2582b27c-7e73-4cd2-8640-028069dc2704:1-2575468:3343958-3344114"
}
]
}
},
{
"type": "COMMIT",
"timestamp": "1643917461",
"currentTime": "1643917461158209298"
}
]
}
{code}
There is no row updates at all since this is an update on `_vt.heartbeat` table. We should have an flag to filter them out
Contributor guide
Research direction
No source files, tests, or entry points are named. Start by locating the Vitess binlog event handling and existing filtering or configuration paths, then determine where events without ROW_EVENT can be excluded. Done means internal-table transactions such as BEGIN, VGTID, and COMMIT are filtered while row events remain available.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- mysql
- Domain
- databases
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100