Package org.apache.druid.segment.loading
Class MostAvailableSizeStorageLocationSelectorStrategy
- java.lang.Object
-
- org.apache.druid.segment.loading.MostAvailableSizeStorageLocationSelectorStrategy
-
- All Implemented Interfaces:
StorageLocationSelectorStrategy
public class MostAvailableSizeStorageLocationSelectorStrategy extends Object implements StorageLocationSelectorStrategy
AStorageLocationselector strategy that selects a segment cache location that has most free space among the available storage locations.
-
-
Constructor Summary
Constructors Constructor Description MostAvailableSizeStorageLocationSelectorStrategy(List<StorageLocation> storageLocations)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Iterator<StorageLocation>getLocations()Finds the best ordering of theStorageLocations to load aDataSegmentaccording to the location selector strategy.StringtoString()
-
-
-
Constructor Detail
-
MostAvailableSizeStorageLocationSelectorStrategy
public MostAvailableSizeStorageLocationSelectorStrategy(List<StorageLocation> storageLocations)
-
-
Method Detail
-
getLocations
public Iterator<StorageLocation> getLocations()
Description copied from interface:StorageLocationSelectorStrategyFinds the best ordering of theStorageLocations to load aDataSegmentaccording to the location selector strategy. This method returns an iterator instead of a single best location. The caller is responsible for iterating over the locations and callingStorageLocation.reserve(java.lang.String, org.apache.druid.timeline.DataSegment)method. This is because a single location may be problematic like failed disk or might become unwritable for whatever reasons. This method can be called by different threads and so should be thread-safe.- Specified by:
getLocationsin interfaceStorageLocationSelectorStrategy- Returns:
- An iterator of
StorageLocations from which the callers can iterate and pick a location.
-
-