Adding Plugins APIs to show Pinot plugins status and support loading/unloading plugins at runtime
- Dominant language
- Java
- Stars
- 6.1k
- Forks
- 1.5k
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 189
Description
The motivation of this is due to my recent test with S3 and other remote filesystems. If we want to use PinotFS in Pinot, the only way is to build a custom config file and set the configurations explicitly, then restart the Pinot components. And it's impossible for users to run Pinot Quickstart and interact with deep store like s3.
The proposed change is to add new APIs in all Pinot components to allow users to dynamically load Pinot plugins. E.g. For PinotFS, we can ask users to provide .
Below are sample APIs:
```
GET /plugins/filesystem
GET /plugins/filesystem/
POST /plugins/filesystem/load
DELETE /plugins/filesystem/
```
Contributor guide
Research direction
Start by examining PinotFS usage and the proposed plugin endpoints: GET /plugins/filesystem, GET /plugins/filesystem/, POST /plugins/filesystem/load, and DELETE /plugins/filesystem/. Done would require agreed APIs across Pinot components that can report plugin status and load or unload plugins at runtime without restarting components.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100