apache / apache/pinot

Support for storage quota for realtime tables

Open
#11,276 5 comments 0 reactions 0 assignees View on GitHub
feature
Dominant language
Java
Stars
6.1k
Forks
1.5k
Avg merge
2d 55m
Merged PRs (30d)
182

Description

Storage quota is currently available for offline tables, done during segment upload. For realtime tables we'd like to enable tail deletion of old segments once a table uses more than a set quota. For our use case this is preferable to setting ingestion rate limits as fresh data has more value than historic data. This helps when multiple tables share the same tenant and ingestion rate can be highly unpredictable.

We'd prefer to add this as a non-blocking/asynchronous process. Strict adherence to the quota is not necessarily required and a segment commit should not be blocked if the new segment would go over the configured quota. Instead, we'd prefer a lazy tail deletion of old segments when the quota is breached in order to not impact segment commit duration/p99 freshness.

I did not find similar issues open and would be open to adding this.

Contributor guide

Open the contributing guide

Research direction

No files or tests are named. Start by locating the existing offline-table quota handling during segment upload and the realtime segment lifecycle; done means realtime tables asynchronously delete old tail segments after the configured quota is exceeded without blocking segment commits.

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
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.