apache / apache/pinot

SegmentGeneratorTaskRunner doesn't take IngestionConfig into consideration

Open
#7,778 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
6.1k
Forks
1.5k
Avg merge
1d 21h
Merged PRs (30d)
189

Description

See: https://github.com/apache/pinot/blob/611f3b11b1336bc9f426ead5ba908a9632a50fd9/pinot-plugins/pinot-batch-ingestion/pinot-batch-ingestion-common/src/main/java/org/apache/pinot/plugin/ingestion/batch/common/SegmentGenerationTaskRunner.java#L105.

By the time SegmentGeneratorConfig is created.
1. it is not using `IngestionUtils.generateSegmentGeneratorConfig` to generate segmentGeneratorConfig.
2. even if so. the SegmentNameGenerator is created without the knowledge of the tableConfig.
Thus if we set the segmentNameGenerator config in tableconfig.ingestionConfig.BatchIngestconfig.BatchConfigMap. it is not honored.

I was wondering if there's a general rule of thumb on what to expect when users are setting the configuration.

For example in this case when using the ingestion plugin. setting in tableConfig directly is useless and is not doing what the user wanted. which makes it hard to debug/trace because nothing fails.

Proposal
===

From my point of view we should have a rule of thumb.

If one setting/config-key is provided in multiple places, then:
* plugin configuration > table config > pinot default.

Contributor guide

Open the contributing guide

Research direction

Start at SegmentGenerationTaskRunner.java around line 105 and trace how SegmentGeneratorConfig and SegmentNameGenerator are created, then inspect IngestionUtils.generateSegmentGeneratorConfig. Confirm the intended precedence between plugin, table, and default settings, and consider the work complete when the tableConfig ingestion settings are honored and the behavior is covered by relevant tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
data-engineering
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.