-
Task
-
Resolution: Unresolved
-
Major
-
None
-
None
-
3
-
False
-
-
False
-
-
DBZ-9367 added information to specify that the MariaDB connector does not support binlog compression. In addressing that change, the new content was added directly to the mariadb.adoc file, rather than adding it to the existing shared file shared-mariadb-mysql.adoc.
Adding the content directly into the connector file departs from the current model, which was implemented so that when a change affects both MariaDB and MySQL, it would be possible to update the content in one location.
Not only does this departure from the current model require future updates to this section to be authored in two places, but it also makes it difficult to identify and trace the lineage of the changes and directly compare successive versions.
This issue restores the shared content model. Although ideally, when a piece of content applies to only one of the connectors, a conditional could control the context in which the content renders, previous attempts to implement specific MYSQL and MARIADB conditionals rendered revealed that the downstream docs did not support the added conditionalization.
To work around that limitation, I propose to break the content in region of the current shared file that is tagged enabling-binlog tagged into separate regions, and then interpolating a new region anywhere that MariaDB-specific changes are required.
New include directives in the parent mariadb.adoc file will enable incorporation of the content that was added in DBZ-9367.
To restore the shared file structure, this issue proposes the following changes:
- In mariadb.adoc remove text between L327 - 391 in the topic Enabling the binlog (L325)
- In `shared-mariadb-mysql.adoc`, truncate the region tagged as `enabling-binlog` just before the code block that show the database attributes to set for the database (L2411). That is, move the closing tag to ~L2412
- In mariadb.adoc, restore the following {{include }}directive that existed prior to
DBZ-9367. That is:
include::{partialsdir}/modules/all-connectors/shared-mariadb-mysql.adoc[leveloffset=+1,tags=enabling-binlog] - In the shared file, create a second copy of the code block that shows the properties that must be set on the database (LL2412-2419).
- In the duplicate version of the block, for the MariaDB version, add the line for the `log_bin_compress` property.
- Place the two new code blocks for MariaDB and MySQL into two new tagged regions:
- [binlog-config-props-mariadb] For the MariaDB version, include `log_bin_compress = 0`.
- [binlog-config-props-mysql] For the MySQL version, do not list the property. Debezium is agnostic as to its Boolean value.
(Does it make sense to convert the blocks into a true table? Maybe not, because, as-is, it facilitates direct copying of the key-value pairs)
- In the parent files, after the include directive mentioned in Step 3, add the`include` directive for the relevant tagged regions. For example,
include::{partialsdir}/modules/all-connectors/shared-mariadb-mysql.adoc[leveloffset=+1,tags=binlog-config-props-mariadb].
(It might be optional to create the additional tagged region for MySQL, if I can structure the MySQL include directive and the original `enabling-binlog` region so that it spans the full block of content that's tagged for MySQL. Need to investigate further.) - In the shared file, on ~L2429 create a new tagged region `descriptions-of-db-binlog-props`. This region will contain the entire content of the existing properties table.
- Convert the table of properties on LL 2431-2454 into a description list. The list format more easily accommodates use of include directives to conditionalize entries.
- After the descriptions-of-db-binlog-props region created in Step 8, create another tagged region to contain the entry for the added property and tag it specifically for MariaDB as `mariadb-description-of-log-bin-compress-prop`.
- In the tagged region created in Step 10, create the list entry for an entry for the `log_bin_compress` property.
- Add the following include directives to the parent files after the include directive added in Step 7 :
- MySQL:
include::{partialsdir}/modules/all-connectors/shared-mariadb-mysql.adoc[leveloffset=+1,tags=descriptions-of-db-binlog-props] - MariaDB:
include::{partialsdir}/modules/all-connectors/shared-mariadb-mysql.adoc[leveloffset=+1,tags=descriptions-of-db-binlog-props]
include::{partialsdir}/modules/all-connectors/shared-mariadb-mysql.adoc[leveloffset=+1,tags=mariadb-description-of-log-bin-compress-prop]
- is caused by
-
DBZ-9367 MariaDB connector documentation should make clear compressed logs are not supported
-
- Closed
-