Skip to content

Commit

Permalink
3.0.0.CR1 announcement
Browse files Browse the repository at this point in the history
  • Loading branch information
Naros committed Sep 17, 2024
1 parent ce3f0d5 commit 6b258c6
Show file tree
Hide file tree
Showing 2 changed files with 151 additions and 1 deletion.
2 changes: 1 addition & 1 deletion _data/releases/3.0/3.0.0.CR1.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ date: 2024-07-13
version: "3.0.0.Beta1"
stable: false
summary: Support for MySQL 8.4 and 9; Support for MySQL vector datatypes and grammar; Support for MariaDB 11.4.x; Reduced delay in Oracle RAC offline node situation; Shard inheritenace in Vitess connector; MariaDB added to server distribution
#announcement_url:
announcement_url: /blog/2024/09/16/debezium-3-0-cr1-released/
150 changes: 150 additions & 0 deletions _posts/2024-09-16-debezium-3-0-cr1-released.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
---
layout: post
title: Debezium 3.0.0.CR1 Released
date: 2024-09-16
tags: [ releases, mongodb, mysql, mariadb, postgres, sqlserver, cassandra, oracle, db2, vitess, outbox, spanner, jdbc, informix, ibmi ]
author: ccranfor
---

The community is in the homestretch toward the next major milestone for Debezium, and we're happy to announce the availability of Debezium *3.0.0.CR1*!

Beyond a number of bugfixes to connectors, this release also brings several improvements for MySQL, Oracle, and the Vitess connectors.
Unless any major regressions show up, we can expect Debezium 3 in the not too distant future.

+++<!-- more -->+++

[id="breaking-changes"]
== Breaking changes

The team aims to avoid any potential breaking changes between minor releases; however, such changes are sometimes inevitable.

PostgreSQL::
Vector data type names introduced for PostgreSQL were too database specific.
In order to provide a more generic support for vector data types, the names were adjusted to support PostgreSQL and MySQL (https://issues.redhat.com/browse/DBZ-8183[DBZ-8183]).

Oracle::
Several deprecated configuration properties have been removed:
* `log.mining.transaction.retention.hours` replaced by `log.mining.transaction.retention.ms`
* `log.mining.archive.destination.name` replaced by `archive.destination.name`
* `log.mining.archive.log.hours` replaced by `archive.log.hours`

+
Please be sure to update your Oracle connector configuration when using the deprecated configuration options to retain old behavior (https://issues.redhat.com/browse/DBZ-8181[DBZ-8181]). +
+
The default `log.mining.strategy` value has changed and is now `online_catalog`.
As a vast majority of users typically use this strategy, and it generally performs better than `redo_log_catalog`, we felt this change made since in Debezium 3.
If your deployments were previously relying on the default `redo_log_catalog` strategy, you will need to explicitly add `log.mining.strategy` to the connector configuration and specify the value `redo_log_catalog` when upgrading (https://issues.redhat.com/browse/DBZ-3656[DBZ-3656]).

SQL Server::
The JMX signaling and notifications for SQL Server did not work correctly when a connector was configured with multiple databases spawning multiple tasks.
To resolve this issue, it was necessary to change the naming of signalling and notification MBean names to make sure they are unique per task (https://issues.redhat.com/browse/DBZ-8137[DBZ-8137]).

[id="new-features-and-improvements"]
== New features and improvements

Debezium 3.0.0.CR1 also introduces several improvements and features, lets take a look at each individually.

=== MySQL 9

Oracle unveiled the first innovation release of MySQL 9.0 on July 1st, 2024.
We are pleased to announce that we've tested and verified that MySQL 9.0 works and is supported starting with Debezium 3.0 (https://issues.redhat.com/browse/DBZ-8030[DBZ-8030]).
If you experience any issues or problems, please be sure to https://issues.redhat.com/projects/DBZ[open an issue].

=== MySQL Vector data types

One of the newest features being added to relational databases is the introduction of vector data types.
In addition to support for MySQL 9.0, Debezium 3 also introduces support for the new `VECTOR(n)` data type, which supports a list of floating-point values that can be expressed as a binary or list-formatted string.
More information is available in the https://dev.mysql.com/doc/refman/9.0/en/vector.html[MySQL documentation] about the vector data type (https://issues.redhat.com/browse/DBZ-8157[DBZ-8157]).

In addition, the MySQL grammar has been updated to reflect support for the new MySQL 9.0 vector functions (https://issues.redhat.com/browse/DBZ-8210[DBZ-8210]).
More information about these functions are also in the https://dev.mysql.com/doc/refman/9.0/en/vector-functions.html[MySQL documentation].

=== MariaDB 11.4.3

Debezium 3 also introduces support for the most recent non-rolling release of MariaDB, 11.4.3 (https://issues.redhat.com/browse/DBZ-8226[DBZ-8226]).
We are also closing monitoring the MariaDB 11.6 release cycle and plan to introduce vector data type support when MariaDB 11.6 becomes stable.

=== Oracle offline RAC node flush improvements

In recent improvements to the Oracle RAC node flush strategy, it was determined that a three-second delay was being forced when an Oracle RAC node was taken offline by the database administrator.
Since an Oracle RAC node cannot perform any writes to the redo logs while offline, this three-second delay introduced an unnecessary amount of latency while the node remained offline.

In Debezium 3, the three-second delay is only imposed if a connection is active to an Oracle RAC node; however, the flush SQL operation was unsuccessful.
This means that when database administrators take RAC nodes offline for maintenance, no latency overhead will be imposed by the connector (https://issues.redhat.com/browse/DBZ-8177[DBZ-8177]).

=== Vitess inherit shard epoch

A new Vitess connector configuration property has been added to control whether epochs of a new shard, after a re-shard operation, inherits epochs from its parent shard.
This new configuration property, `vitess.inherit.epoch`, defaults to `false` and isn't enabled by default (https://issues.redhat.com/browse/DBZ-8163[DBZ-8163]).

[id="other-changes"]
== Other changes

Altogether, https://issues.redhat.com/issues/?jql=project%20%3D%20DBZ%20AND%20fixVersion%20%3D%203.0.0.CR1%20ORDER%20BY%20issuetype%20DESC[45 issues] were fixed in this release.
Here are a list of some additional noteworthy changes:

* Make ORA-00600 - krvrdccs10 automatically retriable https://issues.redhat.com/browse/DBZ-5009[DBZ-5009]
* Incremental snapshot fails with NPE if surrogate key doesn't exist https://issues.redhat.com/browse/DBZ-7797[DBZ-7797]
* MySQL 8.4 incompatibility due to removed SQL commands https://issues.redhat.com/browse/DBZ-7838[DBZ-7838]
* Postgres connector - null value processing for "money" type column. https://issues.redhat.com/browse/DBZ-8027[DBZ-8027]
* Using snapshot.include.collection.list with Oracle raises NullPointerException https://issues.redhat.com/browse/DBZ-8032[DBZ-8032]
* Performance degradation when reconstructing (log.mining.stragtegy hybrid mode) https://issues.redhat.com/browse/DBZ-8071[DBZ-8071]
* Documentation for signals provides incorrect data-collection format for some connectors https://issues.redhat.com/browse/DBZ-8090[DBZ-8090]
* The source data type exceeds the debezium data type and cannot deserialize the object https://issues.redhat.com/browse/DBZ-8142[DBZ-8142]
* Refactor engine signal support https://issues.redhat.com/browse/DBZ-8160[DBZ-8160]
* Incorrect use of generic types in tests https://issues.redhat.com/browse/DBZ-8166[DBZ-8166]
* Latest Informix JDBC Driver https://issues.redhat.com/browse/DBZ-8167[DBZ-8167]
* Postgres JSONB Fields are not supported with Reselect Post Processor https://issues.redhat.com/browse/DBZ-8168[DBZ-8168]
* upgrade Adobe s3mock to version 3.10.0 https://issues.redhat.com/browse/DBZ-8169[DBZ-8169]
* Include Jackson libraries to JDBC connector Docker image distribution https://issues.redhat.com/browse/DBZ-8175[DBZ-8175]
* Ehcache fails to start, throwing "Invaild XML Configuration" https://issues.redhat.com/browse/DBZ-8178[DBZ-8178]
* Enable snapshot.database.errors.max.retriesEnable during Oracle tests https://issues.redhat.com/browse/DBZ-8184[DBZ-8184]
* Change event for a logical decoding message doesn't contain `transaction` field https://issues.redhat.com/browse/DBZ-8185[DBZ-8185]
* Add MariaDB connector server distribution https://issues.redhat.com/browse/DBZ-8186[DBZ-8186]
* NullPointerException (schemaUpdateCache is null) when restarting Oracle engine https://issues.redhat.com/browse/DBZ-8187[DBZ-8187]
* XStream may fail to attach on retry if previous attempt failed https://issues.redhat.com/browse/DBZ-8188[DBZ-8188]
* Truncate byte buffer should return a new array https://issues.redhat.com/browse/DBZ-8189[DBZ-8189]
* Update Vitess example to Debezium 2.7/Vitess 19 https://issues.redhat.com/browse/DBZ-8196[DBZ-8196]
* OracleConnectorIT test shouldGracefullySkipObjectBasedTables can timeout prematurely https://issues.redhat.com/browse/DBZ-8197[DBZ-8197]
* Exclude Oracle 23 VECSYS tablespace from capture https://issues.redhat.com/browse/DBZ-8198[DBZ-8198]
* AbstractProcessorTest uses an incorrect database name when run against Oracle 23 Free edition https://issues.redhat.com/browse/DBZ-8199[DBZ-8199]
* Reduce log verbosity of OpenLogReplicator SCN confirmation https://issues.redhat.com/browse/DBZ-8201[DBZ-8201]
* Support for older MongoDb versions https://issues.redhat.com/browse/DBZ-8202[DBZ-8202]
* DDL statement couldn't be parsed: REVOKE IF EXISTS https://issues.redhat.com/browse/DBZ-8209[DBZ-8209]
* System testsuite fails with route name being too long https://issues.redhat.com/browse/DBZ-8213[DBZ-8213]
* Oracle TableSchemaBuilder provides wrong column name in error message https://issues.redhat.com/browse/DBZ-8217[DBZ-8217]
* Using ehcache in Kafka connect throws an XMLConfiguration parse exception https://issues.redhat.com/browse/DBZ-8219[DBZ-8219]
* Implement separate source and sink connector sections in documentation navigation https://issues.redhat.com/browse/DBZ-8220[DBZ-8220]
* OcpJdbcSinkConnectorIT fails https://issues.redhat.com/browse/DBZ-8228[DBZ-8228]
* Container image does not install correct apicurio deps https://issues.redhat.com/browse/DBZ-8230[DBZ-8230]
* Add information about helm chart installation to operator readme https://issues.redhat.com/browse/DBZ-8233[DBZ-8233]

A huge thank you to all contributors from the community who worked on this release:
https://github.com/ajit97singh[Ajit],
https://github.com/Naros[Chris Cranford],
https://github.com/jcechace[Jakub Cechacek],
https://github.com/jpechane[Jiri Pechanec],
https://github.com/joschi[Jochen Schalanda],
https://github.com/nrkljo[Lars M. Johansson],
https://github.com/mfvitale[Mario Fiore Vitale],
https://github.com/nguymin4[Minh Son Nguyen],
https://github.com/shaer[Mohamed El Shaer],
https://github.com/obabec[Ondrej Babec],
https://github.com/zalmane[Oren Elias],
https://github.com/rk3rn3r[René Kerner],
https://github.com/roldanbob[Robert Roldan],
https://github.com/rkudryashov[Roman Kudryashov],
https://github.com/sullis[Sean C. Sullivan],
https://github.com/GitHubSergei[Sergei Kazakov],
https://github.com/SylvainMarty[Sylvain Marty],
https://github.com/twthorn[Thomas Thornton],
https://github.com/PlugaruT[Tudor Plugaru],
https://github.com/vjuranek[Vojtěch Juránek], and
https://github.com/moyq5[moyq5]!







0 comments on commit 6b258c6

Please sign in to comment.