Skip to content

PS-11080 fix: Spoiled logical clock information in rewritten binlog (part 2)#125

Open
percona-ysorokin wants to merge 1 commit into
Percona-Lab:0.2from
percona-ysorokin:sequence_number_rewrite_metadata_changes
Open

PS-11080 fix: Spoiled logical clock information in rewritten binlog (part 2)#125
percona-ysorokin wants to merge 1 commit into
Percona-Lab:0.2from
percona-ysorokin:sequence_number_rewrite_metadata_changes

Conversation

@percona-ysorokin
Copy link
Copy Markdown
Collaborator

https://perconadev.atlassian.net/browse/PS-11080

This is a prerequisite commit required to implement rewriting 'sequence_number' / 'last_committed' / 'transaction_length' in GTID events.

Along with last seen transaction GTID, 'binstv::events::reader_context' now also keeps track of the last seen GTID event sequence_number.

At the same time 'binsrv::storage' expects one extra 'transaction_sequence_number' argument passed to its 'write_event()' method (which is expected to be taken from the
'binstv::events::reader_context::get_transaction_sequence_number()'). It implements the same logic of storing transaction's sequence_number for both "ready to be flushed" buffered event data and for the "incomplete transaction" buffered event data as for 'timestamps' and 'gtids'.

Binlog metadata file extended with one more value 'last_sequence_number' that holds the 'sequence_number' value of the last GTID event (either GTID_LOG, ANONYMOUS_GTID_LOG or GTID_TAGGED_LOG events) written to the binlog file.

…part 2)

https://perconadev.atlassian.net/browse/PS-11080

This is a prerequisite commit required to implement rewriting
'sequence_number' / 'last_committed' / 'transaction_length' in GTID events.

Along with last seen transaction GTID, 'binstv::events::reader_context' now also
keeps track of the last seen GTID event sequence_number.

At the same time 'binsrv::storage' expects one extra
'transaction_sequence_number' argument passed to its 'write_event()' method
(which is expected to be taken from the
'binstv::events::reader_context::get_transaction_sequence_number()'). It
implements the same logic of storing transaction's sequence_number for both
"ready to be flushed" buffered event data and for the "incomplete transaction"
buffered event data as for 'timestamps' and 'gtids'.

Binlog metadata file extended with one more value 'last_sequence_number' that
holds the 'sequence_number' value of the last GTID event (either GTID_LOG,
ANONYMOUS_GTID_LOG or GTID_TAGGED_LOG events) written to the binlog file.

Co-authored-by: Yura Sorokin <yura.sorokin@percona.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants