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
In #15, there's the TaskOffsetContext implemented that contains all partitions and offsets to be processed by a task. Next, we need to implement the iteration over all task partitions in the event coordinator by introducing a parallel "partitioned" event source class hierarchy. There are two points to this:
Not all connectors are partitioned by design (the MySQL one isn't).
By introducing a new API, we'll be able to continue with the changes only for SQL Server and simplify the migration of other connectors to the new API later.
Acceptance criteria:
Introduce the following classes and interfaces:
PartitionedChangeEventSourceCoordinator
PartitionedChangeEventSourceFactory
PartitionedSnapshotChangeEventSource
PartitionedStreamingChangeEventSource
Apart from being parametrized with <O extends OffsetContext>, these APIs should be parametrized with <P extends TaskPartition>. This will allow the underlying components to use the database name of the currently processed partition via partition.getDatabaseName(). Copy/paste where extension is not possible (e.g. the coordinator).
Update the SQL Server connector components to implement the partitioned API.
UPD: work on this issue showed that there's more classes apart from the Coordinator which need their APIs changed. Copy-pasting more code will increase the likelihood of being not in-sync with upstream when the changes are made to the duplicated code. In order to expedite development and lower this risk, let's take a shortcut:
Instead of introducing new class hierarchy, add partition awareness to the existing one.
Temporarily delete all plugins except for the one for SQL Server that would otherwise require code/API changes.
The text was updated successfully, but these errors were encountered:
In #15, there's the
TaskOffsetContext
implemented that contains all partitions and offsets to be processed by a task. Next, we need to implement the iteration over all task partitions in the event coordinator by introducing a parallel "partitioned" event source class hierarchy. There are two points to this:Acceptance criteria:
PartitionedChangeEventSourceCoordinator
PartitionedChangeEventSourceFactory
PartitionedSnapshotChangeEventSource
PartitionedStreamingChangeEventSource
Apart from being parametrized with
<O extends OffsetContext>
, these APIs should be parametrized with<P extends TaskPartition>
. This will allow the underlying components to use the database name of the currently processed partition viapartition.getDatabaseName()
. Copy/paste where extension is not possible (e.g. the coordinator).OffsetContext offsetContext
arguments introduced in DBZ-2975: Extract offset context from object states to method signatures #13, add theTaskPartition partition
argument where necessary.break
temporarily, repeat for each source (snapshot, streaming).UPD: work on this issue showed that there's more classes apart from the Coordinator which need their APIs changed. Copy-pasting more code will increase the likelihood of being not in-sync with upstream when the changes are made to the duplicated code. In order to expedite development and lower this risk, let's take a shortcut:
The text was updated successfully, but these errors were encountered: