You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by zm...@apache.org on 2016/02/19 21:49:23 UTC
aurora git commit: Do not create a set inside DbTaskStore#fetchTasks.
Repository: aurora
Updated Branches:
refs/heads/master 9d642dcfa -> 8501d8219
Do not create a set inside DbTaskStore#fetchTasks.
The TaskStore interface allows for an Iterable to be returned. Taking advantage
of this and returning the list MyBatis creates results in a performance
improvement.
Reviewed at https://reviews.apache.org/r/43643/
Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/8501d821
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/8501d821
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/8501d821
Branch: refs/heads/master
Commit: 8501d821973bacb1411915fe7a39ef95de82864f
Parents: 9d642dc
Author: Zameer Manji <zm...@apache.org>
Authored: Fri Feb 19 12:49:02 2016 -0800
Committer: Zameer Manji <zm...@apache.org>
Committed: Fri Feb 19 12:49:02 2016 -0800
----------------------------------------------------------------------
.../org/apache/aurora/scheduler/storage/db/DbTaskStore.java | 4 ++--
.../aurora/scheduler/storage/AbstractTaskStoreTest.java | 9 ++++++++-
2 files changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aurora/blob/8501d821/src/main/java/org/apache/aurora/scheduler/storage/db/DbTaskStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/db/DbTaskStore.java b/src/main/java/org/apache/aurora/scheduler/storage/db/DbTaskStore.java
index b899d0f..078dd8b 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/db/DbTaskStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/db/DbTaskStore.java
@@ -89,13 +89,13 @@ class DbTaskStore implements TaskStore.Mutable {
@Timed("db_storage_fetch_tasks")
@Override
- public ImmutableSet<IScheduledTask> fetchTasks(Builder query) {
+ public Iterable<IScheduledTask> fetchTasks(Builder query) {
requireNonNull(query);
// TODO(wfarner): Consider making slow query logging more reusable, or pushing it down into the
// database.
long start = clock.nowNanos();
- ImmutableSet<IScheduledTask> result = matches(query).toSet();
+ Iterable<IScheduledTask> result = matches(query);
long durationNanos = clock.nowNanos() - start;
boolean infoLevel = durationNanos >= slowQueryThresholdNanos;
long time = Amount.of(durationNanos, Time.NANOSECONDS).as(Time.MILLISECONDS);
http://git-wip-us.apache.org/repos/asf/aurora/blob/8501d821/src/test/java/org/apache/aurora/scheduler/storage/AbstractTaskStoreTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/AbstractTaskStoreTest.java b/src/test/java/org/apache/aurora/scheduler/storage/AbstractTaskStoreTest.java
index dee34e2..dc5e2bd 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/AbstractTaskStoreTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/AbstractTaskStoreTest.java
@@ -22,6 +22,7 @@ import java.util.concurrent.TimeUnit;
import com.google.common.base.Optional;
import com.google.common.collect.FluentIterable;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Maps;
@@ -564,7 +565,13 @@ public abstract class AbstractTaskStoreTest extends TearDownTestCase {
}
private void assertQueryResults(Query.Builder query, Set<IScheduledTask> tasks) {
- assertEquals(tasks, fetchTasks(query));
+ Iterable<IScheduledTask> result = fetchTasks(query);
+ assertQueryHasNoDupes(result);
+ assertEquals(tasks, ImmutableSet.copyOf(fetchTasks(query)));
+ }
+
+ private void assertQueryHasNoDupes(Iterable<IScheduledTask> result) {
+ assertEquals(ImmutableList.copyOf(result).size(), ImmutableSet.copyOf(result).size());
}
private static IScheduledTask createTask(String id) {