apache / apache/pinot

Decouple pinot-tools dependency on pinot-server, pinot-controller and pinot-broker

Open
#5,692 2 comments 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

It would be a great idea to break this dependency by introducing some api modules or some other way. The result would be a smaller pinot-tools with none of the vulnerabilities or license issues that come with including the server, controller or broker. See https://github.com/apache/incubator-pinot/blob/master/pinot-tools/pom.xml for the dependencies included.

For example in order to get the Pinot Table Creation url, I have to access the class https://github.com/apache/incubator-pinot/blob/47ff09b4c5d726355a4516d2e1eb72c9705b81b9/pinot-controller/src/main/java/org/apache/pinot/controller/helix/ControllerRequestURLBuilder.java which defines the url and is in the pinot-controller module. This could be defined in a much smaller pinot-controller-client or pinot-controller-api to avoid having to include all of pinot controller.

Contributor guide

Open the contributing guide

Research direction

Start with pinot-tools/pom.xml and inspect its dependencies on pinot-server, pinot-controller, and pinot-broker. Read ControllerRequestURLBuilder.java in pinot-controller to identify the client-facing API that motivates the change. Done means pinot-tools no longer includes those large modules while retaining the required functionality and avoiding their vulnerabilities and license issues.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.