Skip to content

Extend disk utilization checker to offline segment upload APIs #17557

@mluvin-stripe

Description

@mluvin-stripe

Problem

The existing “pause ingestion based on resource utilization” feature (docs) only works for realtime ingestion and minion based offline ingestion. I’m looking to add support to the offline segment upload API, /v2/segments, so that the Pinot controller rejects a segment upload if disk utilization has breached the threshold.

Solution

The existing disk utilization checks are using ResourceUtilizationManager (code), which will check that all resources are under their utilization thresholds when deciding to allow ingestion to proceed. Since the only resource currently checked is disk utilization, this is effectively equivalent to calling the DiskUtilizationChecker (code) directly.

However, if in the future someone decides to add another resource (in addition to disk), all callers using ResourceUtilizationManager will automatically be opted in to checking that new resource, since the only config available is controller.enable.resource.utilization.check; you can't enable each resource individually as of today. This could be problematic, since users (like me) may only want the disk utilization check, but with the current config setup, they will be automatically opted in to any future resource utilization checks unexpectedly.

So as part of extending the disk utilization check to offline segment upload, I'd like to also introduce a way to toggle each resource utilization checker individually to prevent a case in the future where we're automatically opted-in to a new resource utilization checker. Something like controller.enable.resource.utilization.check.disk to specify we'd only like to enable the disk check.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions