You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
https://perconadev.atlassian.net/browse/PS-10245
Implemented more sophisticated event data buffering and flushing at the
'binstv::storage' level. We now accumulate data from several events in the
'binstv::storage'internal memory buffer (16K initially but can grow) and perform
actual writing only at transaction boundaries. This helps a lot with making sure that
after a crash we can continue operations from a position that corresponds to a
committed transaction. This is vitally important for GTID-based replication.
'binstv::storage::write_event()' method extended with an extra parameter that indicates
whether the event data being written corresponds to the end of a transaction.
Reworked 'binsrv::basic_storage_engine' interface: removed 'flush_stream()' method
and all 'write_data_to_stream()' method overloads are now expected to immediately
flush data. 'binsrv::filesystem_storage_backend' and 'binsrv::s3_storage_backend'
concrete implementations updated to accommodate these changes.
We also added "rdbuf()->pubsetbuf(nullptr, 0U)" calls before `std::fstream` read/writes
inside 'binsrv::filesystem_storage_backend' to disable internal buffering.
Fixed an issue with unnecessary data uploading upon stream closing / object
destruction inside 'binsrv::s3_storage_backend'.
'binlog_streaming.binsrv' MTR test case adapted for new buffering behavior.
Fixed problem with the 'checkpointing_both' combination in the
'binlog_streaming.checkpointing' MTR test case when checkpointing parameters were not set properly.
0 commit comments