From 76807ae00e2308ab0b9ad2aaf61098ede7c0bd03 Mon Sep 17 00:00:00 2001 From: Fangjin Yang Date: Fri, 14 Dec 2012 22:55:12 -0800 Subject: [PATCH] fix overloading of segments --- .../main/java/com/metamx/druid/master/ServerHolder.java | 4 ++-- .../main/java/com/metamx/druid/master/rules/LoadRule.java | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/com/metamx/druid/master/ServerHolder.java b/server/src/main/java/com/metamx/druid/master/ServerHolder.java index 82c31fd7337..5fba424f429 100644 --- a/server/src/main/java/com/metamx/druid/master/ServerHolder.java +++ b/server/src/main/java/com/metamx/druid/master/ServerHolder.java @@ -99,9 +99,9 @@ public class ServerHolder implements Comparable return (server.getSegment(segment.getIdentifier()) != null); } - public boolean containsSegment(DataSegment segment) + public boolean isLoadingSegment(DataSegment segment) { - return isServingSegment(segment) || peon.getSegmentsToLoad().contains(segment); + return peon.getSegmentsToLoad().contains(segment); } @Override diff --git a/server/src/main/java/com/metamx/druid/master/rules/LoadRule.java b/server/src/main/java/com/metamx/druid/master/rules/LoadRule.java index fea94f882a1..bc1af64ba69 100644 --- a/server/src/main/java/com/metamx/druid/master/rules/LoadRule.java +++ b/server/src/main/java/com/metamx/druid/master/rules/LoadRule.java @@ -83,7 +83,12 @@ public abstract class LoadRule implements Rule ); break; } - if (holder.containsSegment(segment)) { + if (holder.isServingSegment(segment)) { + assignedServers.add(holder); + continue; + } + if (holder.isLoadingSegment(segment)) { + ++actualReplicants; assignedServers.add(holder); continue; }