mirror of https://github.com/apache/druid.git
reduce memory usage for end points
do not copy entire segments when not needed, reduces memory pressure on the coordinator when no. of segments is large enough.
This commit is contained in:
parent
46ef5c4560
commit
03e1fb6f3f
|
@ -422,7 +422,7 @@ public class DruidCoordinator
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<DataSegment> getAvailableDataSegments()
|
public Set<DataSegment> getOrderedAvailableDataSegments()
|
||||||
{
|
{
|
||||||
Set<DataSegment> availableSegments = Sets.newTreeSet(Comparators.inverse(DataSegment.bucketMonthComparator()));
|
Set<DataSegment> availableSegments = Sets.newTreeSet(Comparators.inverse(DataSegment.bucketMonthComparator()));
|
||||||
|
|
||||||
|
@ -452,6 +452,23 @@ public class DruidCoordinator
|
||||||
return availableSegments;
|
return availableSegments;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Iterable<DataSegment> getAvailableDataSegments()
|
||||||
|
{
|
||||||
|
return Iterables.concat(
|
||||||
|
Iterables.transform(
|
||||||
|
databaseSegmentManager.getInventory(),
|
||||||
|
new Function<DruidDataSource, Iterable<DataSegment>>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public Iterable<DataSegment> apply(DruidDataSource input)
|
||||||
|
{
|
||||||
|
return input.getSegments();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
@LifecycleStart
|
@LifecycleStart
|
||||||
public void start()
|
public void start()
|
||||||
{
|
{
|
||||||
|
|
|
@ -41,7 +41,7 @@ public class DruidCoordinatorSegmentInfoLoader implements DruidCoordinatorHelper
|
||||||
public DruidCoordinatorRuntimeParams run(DruidCoordinatorRuntimeParams params)
|
public DruidCoordinatorRuntimeParams run(DruidCoordinatorRuntimeParams params)
|
||||||
{
|
{
|
||||||
// Display info about all available segments
|
// Display info about all available segments
|
||||||
final Set<DataSegment> availableSegments = coordinator.getAvailableDataSegments();
|
final Set<DataSegment> availableSegments = coordinator.getOrderedAvailableDataSegments();
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Available DataSegments");
|
log.debug("Available DataSegments");
|
||||||
for (DataSegment dataSegment : availableSegments) {
|
for (DataSegment dataSegment : availableSegments) {
|
||||||
|
|
Loading…
Reference in New Issue