Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update deepstore segments with schema/tableConfig changes #9360

Open
vvivekiyer opened this issue Sep 9, 2022 · 1 comment
Open

Update deepstore segments with schema/tableConfig changes #9360

vvivekiyer opened this issue Sep 9, 2022 · 1 comment

Comments

@vvivekiyer
Copy link
Contributor

Currently, we support a number of preprocessing operations for a segment in response to schema/tableConfig changes. Some of them are:

  1. Add a new column. Remove/Modify an autogenerated column.
  2. Add a new index, remove an index.

Every time the server downloads and reloads a segment, the server preprocesses the segment and applies these changes. However, the segment directory in the deep store is never modified to reflect these schema changes. As we keep piling more segment preprocessing logic in reload path, time taken to reload a segment could increase if the user has a number of schema/tableConfig changes applied.

The suggestion here is to also update the segment in deep store to reflect these changes. This can be done with a background minion task.

@Jackie-Jiang
Copy link
Contributor

We already have an API to ask server to upload the segment to deep store. We may leverage the same mechanism to refresh the segments in the deep store. Currently it is used to fix the realtime segments that do not have the deep store copy. See PinotLLCRealtimeSegmentManager.uploadToDeepStoreIfMissing() for more details

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

No branches or pull requests

2 participants