Skip to content

test(inkless:consolidation): add born-consolidated pipeline + WAL-prune system test#646

Draft
viktorsomogyi wants to merge 1 commit into
svv/ts-unification-systestfrom
svv/ts-unification-systest-test1
Draft

test(inkless:consolidation): add born-consolidated pipeline + WAL-prune system test#646
viktorsomogyi wants to merge 1 commit into
svv/ts-unification-systestfrom
svv/ts-unification-systest-test1

Conversation

@viktorsomogyi

Copy link
Copy Markdown
Contributor

Add ConsolidationPipelineTest for a born-consolidated topic, asserting the full WAL -> local log -> remote pipeline: consolidation JMX gauges are exported, the MinIO tiered-storage prefix grows, the Postgres control plane prunes the WAL, and every acked record is still consumable.

Consolidation is enabled per-test via KafkaService(consolidation=True) (also flips the isolated controller), so it runs in the unified inkless ducktape suite without a run-wide --globals flag. JmxTool runs on brokers only since the controller never exposes the consolidation MBeans.

Add ConsolidationVerifier helper (JMX gauges, MinIO via mc, control plane via psql) and install mc + postgresql-client in the ducker image.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds an end-to-end ducktape system test that exercises the “born-consolidated” inkless pipeline (WAL → local log → remote tiered storage) and verifies that WAL pruning occurs, using new helper tooling to query JMX, MinIO, and the Postgres control plane.

Changes:

  • Add ConsolidationPipelineTest to validate consolidation gauges, tiered object movement, WAL pruning, and post-prune consumability.
  • Add ConsolidationVerifier helper to query consolidation state via broker JMX, MinIO (mc), and Postgres (psql).
  • Extend the ducker image to include postgresql-client and MinIO mc.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 6 comments.

File Description
tests/kafkatest/tests/inkless/consolidation_pipeline_test.py New system test covering consolidation pipeline + WAL prune behavior end-to-end.
tests/kafkatest/services/inkless/consolidation_verifier.py New helper for JMX/MinIO/Postgres assertions used by consolidation tests.
tests/kafkatest/services/inkless/init.py Introduces the inkless services package init file.
tests/docker/Dockerfile Installs psql and downloads mc to support consolidation system tests.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tests/kafkatest/services/inkless/consolidation_verifier.py Outdated
Comment thread tests/kafkatest/services/inkless/consolidation_verifier.py
Comment thread tests/kafkatest/services/inkless/consolidation_verifier.py Outdated
Comment thread tests/docker/Dockerfile Outdated
Comment thread tests/kafkatest/services/inkless/consolidation_verifier.py
Comment thread tests/kafkatest/services/inkless/consolidation_verifier.py Outdated
@viktorsomogyi viktorsomogyi force-pushed the svv/ts-unification-systest-test1 branch 2 times, most recently from 5cb8ce0 to c2d1d6e Compare June 15, 2026 09:19
@viktorsomogyi viktorsomogyi requested a review from Copilot June 15, 2026 09:19

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 5 changed files in this pull request and generated 5 comments.

Comment thread tests/kafkatest/tests/inkless/consolidation_pipeline_test.py Outdated
Comment thread tests/kafkatest/services/inkless/consolidation_verifier.py
Comment thread tests/docker/Dockerfile
Comment thread tests/kafkatest/tests/inkless/consolidation_pipeline_test.py
Comment thread tests/kafkatest/tests/inkless/consolidation_pipeline_test.py Outdated
@viktorsomogyi viktorsomogyi force-pushed the svv/ts-unification-systest-test1 branch from c2d1d6e to e51509b Compare June 15, 2026 10:44
@viktorsomogyi viktorsomogyi force-pushed the svv/ts-unification-systest branch from 1f25fba to 8b105a4 Compare June 15, 2026 10:50
@viktorsomogyi viktorsomogyi force-pushed the svv/ts-unification-systest-test1 branch from e51509b to b7173a9 Compare June 15, 2026 10:51
@viktorsomogyi viktorsomogyi requested a review from Copilot June 15, 2026 10:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 5 changed files in this pull request and generated 1 comment.

Comment thread tests/kafkatest/services/inkless/consolidation_verifier.py

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 5 changed files in this pull request and generated 1 comment.

Comment thread tests/kafkatest/tests/inkless/consolidation_pipeline_test.py Outdated
@viktorsomogyi viktorsomogyi force-pushed the svv/ts-unification-systest branch from 8b105a4 to bf02116 Compare June 15, 2026 13:45
@viktorsomogyi viktorsomogyi force-pushed the svv/ts-unification-systest-test1 branch 2 times, most recently from dae5934 to f897e44 Compare June 15, 2026 13:49
@viktorsomogyi viktorsomogyi requested a review from Copilot June 16, 2026 14:58
@viktorsomogyi viktorsomogyi force-pushed the svv/ts-unification-systest branch from bf02116 to fd552d5 Compare June 16, 2026 15:01
…ne system test

Add ConsolidationPipelineTest for a born-consolidated topic, asserting the
full WAL -> local log -> remote pipeline: consolidation JMX gauges are
exported, the MinIO tiered-storage prefix grows, the Postgres control plane
prunes the WAL, and every acked record is still consumable.

Consolidation is enabled per-test via KafkaService(consolidation=True) (also
flips the isolated controller), so it runs in the unified inkless ducktape
suite without a run-wide --globals flag. JmxTool runs on brokers only since
the controller never exposes the consolidation MBeans.

Add ConsolidationVerifier helper (JMX gauges, MinIO via mc, control plane via
psql) and install mc + postgresql-client in the ducker image.
@viktorsomogyi viktorsomogyi force-pushed the svv/ts-unification-systest-test1 branch from f897e44 to 864e013 Compare June 16, 2026 15:03

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 5 changed files in this pull request and generated 2 comments.

target += "/" + prefix
cmd = "mc ls --recursive --json %s" % target
keys = []
for line in node.account.ssh_capture(cmd, allow_fail=True):
Comment on lines +150 to +161
# Read every acked record back (from remote).
consumer = VerifiableConsumer(self.test_context, num_nodes=1, kafka=self.kafka,
topic=self.TOPIC, group_id="consolidation-pipeline-group")
consumer.start()
wait_until(lambda: consumer.total_consumed() >= acked or consumer.worker_errors,
timeout_sec=180, backoff_sec=1,
err_msg="Consumer failed to read back all %d acked records." % acked)
assert not consumer.worker_errors, "Consumer errors: %s" % consumer.worker_errors
consumer.stop()
total_consumed = consumer.total_consumed()
consumer.free()
self.logger.info("Read back %d records after consolidation + prune" % total_consumed)
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