Skip to content

Add the hashed connectors manager - #2884

Open
delthas wants to merge 3 commits into
improvement/BB-906/resume-token-timesfrom
improvement/BB-906/hashed-connectors-manager
Open

delthas wants to merge 3 commits into
improvement/BB-906/resume-token-timesfrom
improvement/BB-906/hashed-connectors-manager

Conversation

@delthas

@delthas delthas commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Connector naming (N, k and a pipeline hash), then the reconciliation and migration logic, explained in the code; not wired yet.

Part of the hashed oplog ingestion stack, overview in #2869.

Issue: BB-906

@delthas
delthas added this pull request to stack #2885 October 14, 2026 08:48
Comment thread extensions/oplogPopulator/modules/HashedConnectorsManager.js Outdated
@delthas
delthas force-pushed the improvement/BB-906/hashed-connectors-manager branch from 7aa13f6 to 7383411 Compare October 14, 2026 09:02
@delthas
delthas removed this pull request from stack #2885 October 14, 2026 10:06
@delthas
delthas force-pushed the improvement/BB-906/hashed-connectors-manager branch from 7383411 to cd95364 Compare October 14, 2026 10:07
@delthas
delthas added this pull request to stack #2886 October 14, 2026 10:07
Comment thread extensions/oplogPopulator/modules/HashedConnectorsManager.js Outdated
@delthas
delthas force-pushed the improvement/BB-906/hashed-connectors-manager branch from cd95364 to 56470fe Compare October 14, 2026 12:22
@delthas
delthas force-pushed the improvement/BB-906/hashed-connectors-manager branch from 56470fe to cc15e92 Compare October 14, 2026 12:49
@delthas
delthas force-pushed the improvement/BB-906/hashed-connectors-manager branch from cc15e92 to fa76ffd Compare October 14, 2026 12:58
@delthas
delthas force-pushed the improvement/BB-906/hashed-connectors-manager branch from fa76ffd to bd9aa4f Compare October 14, 2026 13:04
@delthas
delthas force-pushed the improvement/BB-906/hashed-connectors-manager branch from bd9aa4f to ba83020 Compare October 15, 2026 08:58
Comment thread extensions/oplogPopulator/modules/HashedConnectorsManager.js
@delthas
delthas force-pushed the improvement/BB-906/hashed-connectors-manager branch from ba83020 to eefa311 Compare October 15, 2026 10:49
Comment thread extensions/oplogPopulator/modules/HashedConnectorsManager.js Outdated
@delthas
delthas force-pushed the improvement/BB-906/hashed-connectors-manager branch from eefa311 to 7862742 Compare October 15, 2026 12:54
@delthas
delthas force-pushed the improvement/BB-906/hashed-connectors-manager branch from 7862742 to 6cd9b54 Compare October 15, 2026 15:34
Comment thread extensions/oplogPopulator/modules/HashedConnectorsManager.js Outdated
@delthas
delthas force-pushed the improvement/BB-906/hashed-connectors-manager branch 2 times, most recently from bd559ea to 4d2875c Compare October 15, 2026 17:56
Comment thread extensions/oplogPopulator/modules/ConnectorsManager.js
Comment thread extensions/oplogPopulator/OplogPopulatorMetrics.js Outdated
Comment thread extensions/oplogPopulator/OplogPopulatorMetrics.js Outdated
Comment thread extensions/oplogPopulator/OplogPopulatorMetrics.js Outdated
Comment thread extensions/oplogPopulator/modules/HashedConnectorsManager.js Outdated
Comment thread extensions/oplogPopulator/modules/HashedConnectorsManager.js Outdated
Comment thread extensions/oplogPopulator/modules/HashedConnectorsManager.js Outdated
Comment thread extensions/oplogPopulator/modules/HashedConnectorsManager.js Outdated
Comment thread extensions/oplogPopulator/modules/HashedConnectorsManager.js Outdated
Comment thread extensions/oplogPopulator/modules/HashedConnectorsManager.js Outdated
@delthas
delthas force-pushed the improvement/BB-906/hashed-connectors-manager branch from 4d2875c to c51123d Compare October 16, 2026 08:29
Comment thread extensions/oplogPopulator/modules/HashedConnectorsManager.js Outdated
The default connector configuration, the partition name generation, the
failed state checks and the constructor params are about to be shared
with the hashed connectors manager. No behaviour change.

Issue: BB-906
Connector names embed N, k and a hash of the pipeline:

- Any pipeline change, from code or configuration, yields new names, so
  the previous connectors can be replaced while still running.
- N and k tell which previous connector covers exactly the same
  collections when only the configuration changed.

Issue: BB-906
@delthas
delthas force-pushed the improvement/BB-906/hashed-connectors-manager branch from c51123d to 0724cb9 Compare October 16, 2026 10:47
@delthas

delthas commented Oct 16, 2026

Copy link
Copy Markdown
Contributor Author

I switched from paused to stopped (I didn't initially in the design because it required Kafka Connect to be fully rolled out to 3.5 and I hadn't realized the zenko-operator rollout order guarantees this for us).

This simplifies things and drops the long pause flush wait.

@delthas delthas closed this Oct 16, 2026
@delthas delthas reopened this Oct 16, 2026
@delthas

delthas commented Oct 16, 2026

Copy link
Copy Markdown
Contributor Author

Oops missclick

Keeps N hashed connectors and migrates every other connector carrying
the oplog populator prefix (per-bucket, other N or pipeline) to them,
on a periodic reconciliation: fix the current connectors, create the
missing ones, then delete the outdated ones.

- When migrating, the outdated connectors are first stopped: stopped
  tasks commit their final offsets (Kafka Connect >= 3.5), which the
  offsets API serves once they are shut down. New connectors start at
  the committed offset of the connectors covering their collections:
  the one with the same index when only the pipeline configuration
  changed (same number of connectors), the earliest one otherwise.
- Outdated connectors are only deleted once all hashed connectors
  exist: any crash or failed request leaves state from which the next
  run resumes, without persisting anything.
- Connectors deleted by someone else meanwhile keep the offsets read
  before stopping them; a connector without any offset is assumed to
  have started shortly before it stopped.
- A current connector whose managed settings drifted is updated in
  place, or else restarted if failed; a paused or stopped one is
  reported, never resumed.
- Connector creations, updates and deletions feed the existing
  reconfiguration and request size metrics, under a single connector
  label created at 0 on start: each connector is only created or
  deleted once, which a per-connector series would not show as an
  increase. The pipeline size of each connector is reported.

Not wired yet.

Issue: BB-906
@delthas
delthas force-pushed the improvement/BB-906/hashed-connectors-manager branch from 0724cb9 to c5e45da Compare October 16, 2026 12:54

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants