apache / apache/pinot

Update deepstore segments with schema/tableConfig changes

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

Description

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.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the server's segment download and reload path, including the preprocessing applied after schema or tableConfig changes. Then determine how a background minion task could update the corresponding segment directory in deep store, with completion meaning persisted segments reflect those changes without adding reload-time preprocessing work.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
databases, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.