Added initial version of the file_storage #30
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Added the 'file_storage" class that helps to write events received from the MySQL Server to local binlog files. It automatically deals with writing magic binlog payloads ("\xFEbin") and maintaining binlog index file ("binlog.index"). At the moment, this class can start with only empty initial state.
Main configuration file extended with additional "storage" section, which currently has only one parameter "path", pointing to the location to which binlog files should be downloaded.
Main application extended with writing received binlog events into local files using the functionality of the 'file_storage' class.
Added additional flag 'binlog_in_use' to the 'binsrv::event::flag_type' enum which is used by the server to mark binlog files that are currently in use. This flag should never appear in events received on the client side.
'reader_context' class extended with additional check that position in non-artificial rotate event post header must always be equal to magic_binlog_offset (4).
Some '.size()' calls changed to 'std::size()'. Some '.data()' calls changed to 'std::data()'.
Added the very first MTR test case that tests Binlog Server Utility functionality. It instructs the MySQL Server to generate 2 binary log files. Then it executes the Binlog Server Utility to download them into a local file storage. And after that it compares the binlog files stored on the server with those downloaded via the utility.
Added instructions on how to integrate these tests with the MTR framework.
Links pointing to MySQL Source code fragments on GitHub updated to version 8.0.36.