-
Notifications
You must be signed in to change notification settings - Fork 489
Description
Currently, the dev XP is quite poor when a user needs to create an index or make some updates on one index.
I played a bit with Quickwit on a Kubernetes cluster and I'm just putting here my frustrations
Create an index
To create an index, I need to connect to the metastore pod which typically has the right env env variables to execute correctly a CLI command against the right database. Then I need to cp my local index config and source files on the pod and execute the right CLI commands.
Then I need to restart my indexers.
Update an index
- update the
max_merge_write_throughput
- update
max_num_partitions
- update the merge policy
- update the
commit_timeout_secs
- update retention policy (Index configuration update #4832)
All these modifications require to use of SQL queries to modify the index_metadata_json
. Then I need to restart the indexers.
Possible solutions
For updates, we could provide a CLI command to update the index config (with some checks on some restrictions to avoid breaking everything). This solution has one drawback: we need to connect to the metastore pod which typically has the right env env variables to execute correctly a CLI command against the right database.
Another solution that could help on create/update could be to provide a REST endpoint and let the user restart the indexers if needed.
I have a preference for providing a REST endpoint... we always need to restart the indexers anyway :/ (we could poll the metastore on the indexer side to check if there are new indexes).
I know we will handle things correctly with the control place but for now, I think it is not so crazy to add the right endpoint.