Skip to content

Commit

Permalink
don't save history usage summary data
Browse files Browse the repository at this point in the history
  • Loading branch information
matush-v committed May 23, 2017
1 parent 75cfd41 commit 1f6d650
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 41 deletions.
1 change: 0 additions & 1 deletion Docs/reference/configuration.md
Expand Up @@ -197,7 +197,6 @@ These settings should live under the "mesos" field inside the root configuration
#### Offers ####
| Parameter | Default | Description | Type |
|-----------|---------|-------------|------|
| minOfferScore | 0.70 | The starting minimum score a task will accept for a mesos offer. The best possible offer score is 1.00 | double |
| maxMillisPastDuePerTask | 300000 (5 min) | The max milliseconds a task can be past due when scoring an offer | long |
| longRunningUsedCpuWeightForOffer | 0.30 | The weight long running tasks' cpu utilization carries when scoring an offer (should add up to 1 with longRunningUsedMemWeightForOffer) | double |
| longRunningUsedMemWeightForOffer | 0.70 | The weight long running tasks' memory utilization carries when scoring an offer (should add up to 1 with longRunningUsedCpuWeightForOffer) | double |
Expand Down
Expand Up @@ -11,6 +11,7 @@
import org.apache.curator.utils.ZKPaths;

import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Optional;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.hubspot.singularity.SingularityClusterUtilization;
Expand Down Expand Up @@ -104,10 +105,6 @@ private String getCurrentSlaveUsagePath(String slaveId) {
return ZKPaths.makePath(getSlaveUsagePath(slaveId), CURRENT_USAGE_NODE_KEY);
}

private String getSpecificClusterUtilizationPath(long timestamp) {
return ZKPaths.makePath(USAGE_SUMMARY_PATH, Long.toString(timestamp));
}

private String getCurrentTaskUsagePath(String taskId) {
return ZKPaths.makePath(getTaskUsagePath(taskId), CURRENT_USAGE_NODE_KEY);
}
Expand All @@ -120,10 +117,6 @@ public SingularityDeleteResult deleteTaskUsage(String taskId) {
return delete(getTaskUsagePath(taskId));
}

public SingularityDeleteResult deleteSpecificClusterUtilization(long timestamp) {
return delete(getSpecificClusterUtilizationPath(timestamp));
}

public SingularityDeleteResult deleteSpecificSlaveUsage(String slaveId, long timestamp) {
return delete(getSpecificSlaveUsagePath(slaveId, timestamp));
}
Expand All @@ -140,8 +133,8 @@ public SingularityCreateResult saveSpecificTaskUsage(String taskId, SingularityT
return save(getSpecificTaskUsagePath(taskId, usage.getTimestamp()), usage, taskUsageTranscoder);
}

public SingularityCreateResult saveSpecificClusterUtilization(SingularityClusterUtilization utilization) {
return save(getSpecificClusterUtilizationPath(utilization.getTimestamp()) , utilization, clusterUtilizationTranscoder);
public SingularityCreateResult saveClusterUtilization(SingularityClusterUtilization utilization) {
return save(USAGE_SUMMARY_PATH, utilization, clusterUtilizationTranscoder);
}

public SingularityCreateResult saveSpecificSlaveUsageAndSetCurrent(String slaveId, SingularitySlaveUsage usage) {
Expand Down Expand Up @@ -179,20 +172,8 @@ public List<SingularityTaskUsage> getTaskUsage(String taskId) {
return children;
}

private static final Comparator<SingularityClusterUtilization> CLUSTER_UTILIZATION_COMPARATOR_TIMESTAMP_ASC = new Comparator<SingularityClusterUtilization>() {

@Override
public int compare(SingularityClusterUtilization o1, SingularityClusterUtilization o2) {
return Long.compare(o1.getTimestamp(), o2.getTimestamp());
}

};


public List<SingularityClusterUtilization> getClusterUtilization() {
List<SingularityClusterUtilization> children = getAsyncChildren(USAGE_SUMMARY_PATH, clusterUtilizationTranscoder);
children.sort(CLUSTER_UTILIZATION_COMPARATOR_TIMESTAMP_ASC);
return children;
public Optional<SingularityClusterUtilization> getClusterUtilization() {
return getData(USAGE_SUMMARY_PATH, clusterUtilizationTranscoder);
}

public List<SingularitySlaveUsageWithId> getCurrentSlaveUsages(List<String> slaveIds) {
Expand Down
Expand Up @@ -135,7 +135,7 @@ public List<SingularityOfferHolder> checkOffers(final Collection<Protos.Offer> o
SingularityTaskRequestHolder taskRequestHolder = iterator.next();

Map<SingularityOfferHolder, Double> scorePerOffer = new HashMap<>();
double minScore = minScore(taskRequestHolder.getTaskRequest(), offerMatchAttemptsPerTask, getLatestClusterUtilization(), System.currentTimeMillis());
double minScore = minScore(taskRequestHolder.getTaskRequest(), offerMatchAttemptsPerTask, usageManager.getClusterUtilization(), System.currentTimeMillis());

LOG.trace("Minimum score {} for task {}", minScore, taskRequestHolder.getTaskRequest().getPendingTask().getPendingTaskId().getId());

Expand Down Expand Up @@ -192,11 +192,6 @@ public List<SingularityOfferHolder> checkOffers(final Collection<Protos.Offer> o
return offerHolders;
}

private Optional<SingularityClusterUtilization> getLatestClusterUtilization() {
List<SingularityClusterUtilization> clusterUtilizations = usageManager.getClusterUtilization();
return clusterUtilizations.isEmpty() ? Optional.absent() : Optional.of(clusterUtilizations.get(clusterUtilizations.size() - 1));
}

private double getNormalizedWeight(ResourceUsageType type) {
double freeCpuWeight = configuration.getFreeCpuWeightForOffer();
double freeMemWeight = configuration.getFreeMemWeightForOffer();
Expand Down
Expand Up @@ -159,7 +159,7 @@ public void runActionOnPoll() {
exceptionNotifier.notify(message, e);
}

saveClusterUtilization(totalMemBytesUsed, totalMemBytesAvailable, totalCpuUsed, totalCpuAvailable, now);
usageManager.saveClusterUtilization(new SingularityClusterUtilization(totalMemBytesUsed, totalMemBytesAvailable, totalCpuUsed, totalCpuAvailable, now));
}
}

Expand Down Expand Up @@ -190,12 +190,4 @@ private void updateLongRunningTasksUsage(Map<ResourceUsageType, Number> longRunn
longRunningTasksUsage.compute(ResourceUsageType.MEMORY_BYTES_USED, (k, v) -> (v == null) ? memBytesUsed : v.longValue() + memBytesUsed);
longRunningTasksUsage.compute(ResourceUsageType.CPU_USED, (k, v) -> (v == null) ? cpuUsed : v.doubleValue() + cpuUsed);
}

private void saveClusterUtilization(long totalMemBytesUsed, long totalMemBytesAvailable, double totalCpuUsed, double totalCpuAvailable, long now) {
List<SingularityClusterUtilization> utilizations = usageManager.getClusterUtilization();
if (utilizations.size() + 1 > configuration.getNumUsageToKeep()) {
usageManager.deleteSpecificClusterUtilization(utilizations.get(0).getTimestamp());
}
usageManager.saveSpecificClusterUtilization(new SingularityClusterUtilization(totalMemBytesUsed, totalMemBytesAvailable, totalCpuUsed, totalCpuAvailable, now));
}
}
Expand Up @@ -289,7 +289,7 @@ public void itCorrectlyScoresLongNonLongRunningTasks() {
}

@Test
public void itGetsTheCorrectMinScore() {
public void itGetsTheCorrectMinScore() {
long now = System.currentTimeMillis();
String taskId = "taskId";
setNextRunAt(now);
Expand Down

0 comments on commit 1f6d650

Please sign in to comment.