Skip to content

Small suggestion: Two kinds of druid.segmentCache.numLoadingThreads #12020

@didip

Description

@didip

Description

I think Historical could benefit from two different type of druid.segmentCache.numLoadingThreads.

One is for when historical is cold booted, it needs as much threads as possible to download all the segment files.

And then, when all segments are available, there’s another setting that can throttle it down so that it does not take too much IOPS.

Motivation

When deploying in AWS, EBS IOPS is precious, if we can reduce the IOPS used for loading segments, we can use them for serving queries.

Example Use Case

On cold boot, when segmentCache is empty, use druid.segmentCache.numInitLoadingThreads = 100

Then, once all segments are 100%, use druid.segmentCache.numLoadingThreads = 10

This will save the number of write IOPS by a staggering 10x during business hours when both querying and ingestions are happening. And during cluster rebuild, historical can still fill in the empty disk very quickly.

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