You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by dm...@apache.org on 2017/06/02 20:41:42 UTC
aurora git commit: Improve task history pruning by batch deleting
tasks.
Repository: aurora
Updated Branches:
refs/heads/master e76862a39 -> accd46aef
Improve task history pruning by batch deleting tasks.
Bugs closed: AURORA-1929
Reviewed at https://reviews.apache.org/r/59699/
Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/accd46ae
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/accd46ae
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/accd46ae
Branch: refs/heads/master
Commit: accd46aef4706819d45676b061835f92c5bbb2f2
Parents: e76862a
Author: Kai Huang <te...@hotmail.com>
Authored: Fri Jun 2 13:32:23 2017 -0700
Committer: David McLaughlin <da...@dmclaughlin.com>
Committed: Fri Jun 2 13:32:23 2017 -0700
----------------------------------------------------------------------
.../scheduler/state/StateManagerImpl.java | 35 ++++++++++----------
1 file changed, 17 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aurora/blob/accd46ae/src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java b/src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java
index 7387821..6b780ec 100644
--- a/src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java
@@ -16,9 +16,9 @@ package org.apache.aurora.scheduler.state;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import java.util.function.Function;
+import java.util.stream.Collectors;
import javax.inject.Inject;
@@ -31,7 +31,6 @@ import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
import com.google.common.collect.Ordering;
import com.google.common.collect.Sets;
@@ -347,7 +346,10 @@ public class StateManagerImpl implements StateManager {
"Operation expected task %s to be present.",
taskId);
- events.add(deleteTasks(taskStore, ImmutableSet.of(taskId)));
+ PubsubEvent.TasksDeleted event = createDeleteEvent(taskStore, ImmutableSet.of(taskId));
+ taskStore.deleteTasks(
+ event.getTasks().stream().map(Tasks::id).collect(Collectors.toSet()));
+ events.add(event);
break;
default:
@@ -369,23 +371,20 @@ public class StateManagerImpl implements StateManager {
@Override
public void deleteTasks(MutableStoreProvider storeProvider, final Set<String> taskIds) {
- Map<String, IScheduledTask> tasks = Maps.uniqueIndex(
- storeProvider.getTaskStore().fetchTasks(Query.taskScoped(taskIds)),
- Tasks::id);
+ TaskStore.Mutable taskStore = storeProvider.getUnsafeTaskStore();
+ // Create a single event for all task deletions.
+ PubsubEvent.TasksDeleted event = createDeleteEvent(taskStore, taskIds);
- for (Map.Entry<String, IScheduledTask> entry : tasks.entrySet()) {
- updateTaskAndExternalState(
- storeProvider.getUnsafeTaskStore(),
- entry.getKey(),
- Optional.of(entry.getValue()),
- Optional.absent(),
- Optional.absent());
- }
+ taskStore.deleteTasks(event.getTasks().stream().map(Tasks::id).collect(Collectors.toSet()));
+
+ eventSink.post(event);
}
- private static PubsubEvent deleteTasks(TaskStore.Mutable taskStore, Set<String> taskIds) {
- Iterable<IScheduledTask> tasks = taskStore.fetchTasks(Query.taskScoped(taskIds));
- taskStore.deleteTasks(taskIds);
- return new PubsubEvent.TasksDeleted(ImmutableSet.copyOf(tasks));
+ private static PubsubEvent.TasksDeleted createDeleteEvent(
+ TaskStore.Mutable taskStore,
+ Set<String> taskIds) {
+
+ return new PubsubEvent.TasksDeleted(
+ ImmutableSet.copyOf(taskStore.fetchTasks(Query.taskScoped(taskIds))));
}
}