ClickHouse/docs/en/operations
Val Doroshchuk 5c221d123d MaterializedMySQL: Introduce MySQL Binlog Client
One binlog connection for many databases.

Suggesting to disable this feature by default for now. It should be explicitly enabled by SETTINGS use_binlog_client=1.
But if you would permanently enable it in MaterializedMySQLSettings, it should keep old behavior and all tests should pass too.

1. Introduced `IBinlog` and its impl to read the binlog events from socket - `BinlogFromSocket`, or file - `BinlogFromFile`. Based on prev impl of `EventBase` and the same old binlog parsers. It fully keeps BC with old version. Fixed `./check-mysql-binlog` to test new impl.
2. Introduced `BinlogEventsDispatcher`, it reads the event from the source `IBinlog` and sends it to currently attached `IBinlog` instances.
3. Introduced `BinlogClient`, which is used to group a list of `BinlogEventsDispatcher` by MySQL binlog connection which is defined by `user:password@host:port`. All dispatchers with the same binlog position should be merged to one.
4. Introduced `BinlogClientFactory`, which is a singleton and it is used to track all binlogs created over the instance.
5. Introduced `use_binlog_client` setting to `MaterializedMySQL`, which forces to reuse a `BinlogClient` if it already exists in `BinlogClientCatalog` or create new one. By default, it is disabled.
6. Introduced `max_bytes_in_binlog_queue` setting to define the limit of bytes in binlog's queue of events. If bytes in the queue increases this limit, `BinlogEventsDispatcher` will stop reading new events from source `IBinlog` until the space for new events will be freed.
7. Introduced `max_milliseconds_to_wait_in_binlog_queue` setting to define max ms to wait when the max bytes exceeded.
7. Introduced `max_milliseconds_to_wait_in_binlog_queue` setting to define max ms to wait when the max bytes exceeded.
8. Introduced `max_bytes_in_binlog_dispatcher_buffer` setting to define max bytes in the binlog dispatcher's buffer before it is flushed to attached binlogs.
9. Introduced `max_flush_milliseconds_in_binlog_dispatcher` setting to define max milliseconds in the binlog dispatcher's buffer to wait before it is flushed to attached binlogs.
10. Introduced `system.mysql_binlogs` system table, which shows a list of active binlogs.
11. Introduced `UnparsedRowsEvent` and `MYSQL_UNPARSED_ROWS_EVENT`, which defines that an event is not parsed and should be explicitly parsed later.
12. Fixed bug when not possible to apply DDL since syntax error or unsupported SQL.

@larspars is the author of following:
`GTIDSets::contains()`
`ReplicationHelper`
`shouldReconnectOnException()`
2024-01-03 15:26:09 +01:00
..
external-authenticators Add external HTTP Basic authenticator (#55199) 2023-10-20 19:24:19 +02:00
optimizing-performance Fix anchors to settings.md 2023-12-20 18:26:36 +00:00
server-configuration-parameters Fix anchors to settings.md 2023-12-20 18:26:36 +00:00
settings MaterializedMySQL: Introduce MySQL Binlog Client 2024-01-03 15:26:09 +01:00
system-tables Merge upstream/master into ncb/system-database-engines 2023-12-30 23:10:48 -08:00
utilities Merge pull request #57851 from azat/revert-55271-local-lazy-database 2023-12-15 03:25:59 +01:00
_category_.yml New nav - reverting the revert 2023-03-17 21:45:43 -05:00
_troubleshooting.md Update outdated script in troubleshooting 2023-11-15 15:09:22 +01:00
backup.md Added docs 2023-11-14 14:22:15 +00:00
caches.md Mark query cache as non-experimental 2023-05-06 13:58:40 +00:00
cluster-discovery.md Add cluster discovery documentation 2023-09-14 11:16:09 +00:00
configuration-files.md Docs: Follow-up to #53818 2023-08-31 11:15:50 +00:00
monitoring.md Fix anchors to settings.md 2023-12-20 18:26:36 +00:00
named-collections.md NamedCollections: prevent fields overriding in functions call 2023-11-09 17:25:16 +01:00
opentelemetry.md update blog references 2023-04-10 15:23:00 +01:00
performance-test.md Go live with doc updates (#42053) 2022-10-04 14:36:59 +03:00
query-cache.md fix doc 2023-12-26 16:57:18 +11:00
quotas.md Docs: Replace annoying three spaces in enumerations by a single space 2023-04-19 15:56:55 +00:00
ssl-zookeeper.md Go live with doc updates (#42053) 2022-10-04 14:36:59 +03:00
storing-data.md Increase load_metadata_threads to 16 2023-12-11 00:49:20 +01:00
tips.md fix tip doc 2023-12-05 17:52:33 +08:00
update.md Add issue list when running mismatched versions 2022-12-09 08:43:26 -05:00
workload-scheduling.md default max_burst equals to max_speed as in Throttler 2023-09-19 10:10:21 +00:00