You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by ma...@apache.org on 2014/09/22 21:31:36 UTC
git commit: Adding timing stats to DB stores.
Repository: incubator-aurora
Updated Branches:
refs/heads/master 2b2c9910a -> db88bd413
Adding timing stats to DB stores.
Reviewed at https://reviews.apache.org/r/25897/
Project: http://git-wip-us.apache.org/repos/asf/incubator-aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-aurora/commit/db88bd41
Tree: http://git-wip-us.apache.org/repos/asf/incubator-aurora/tree/db88bd41
Diff: http://git-wip-us.apache.org/repos/asf/incubator-aurora/diff/db88bd41
Branch: refs/heads/master
Commit: db88bd4138d3b5f183501f35f3501131c9709cd4
Parents: 2b2c991
Author: Maxim Khutornenko <ma...@apache.org>
Authored: Mon Sep 22 12:31:27 2014 -0700
Committer: Maxim Khutornenko <ma...@apache.org>
Committed: Mon Sep 22 12:31:27 2014 -0700
----------------------------------------------------------------------
.../scheduler/storage/db/DBJobUpdateStore.java | 12 +++++++++
.../scheduler/storage/db/DbLockStore.java | 27 ++++++++++++--------
.../scheduler/storage/db/DbQuotaStore.java | 7 +++++
.../scheduler/storage/db/DbSchedulerStore.java | 4 +++
4 files changed, 40 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/db88bd41/src/main/java/org/apache/aurora/scheduler/storage/db/DBJobUpdateStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/db/DBJobUpdateStore.java b/src/main/java/org/apache/aurora/scheduler/storage/db/DBJobUpdateStore.java
index 4db336c..361d3b8 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/db/DBJobUpdateStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/db/DBJobUpdateStore.java
@@ -38,6 +38,8 @@ import org.apache.aurora.scheduler.storage.entities.IRange;
import static java.util.Objects.requireNonNull;
+import static com.twitter.common.inject.TimedInterceptor.Timed;
+
/**
* A relational database-backed job update store.
*/
@@ -61,6 +63,7 @@ public class DBJobUpdateStore implements JobUpdateStore.Mutable {
this.instanceEventMapper = requireNonNull(instanceEventMapper);
}
+ @Timed("job_update_store_save_update")
@Override
public void saveJobUpdate(IJobUpdate update, Optional<String> lockToken) {
requireNonNull(update);
@@ -102,26 +105,31 @@ public class DBJobUpdateStore implements JobUpdateStore.Mutable {
}
}
+ @Timed("job_update_store_save_event")
@Override
public void saveJobUpdateEvent(IJobUpdateEvent event, String updateId) {
jobEventMapper.insert(updateId, event.newBuilder());
}
+ @Timed("job_update_store_save_instance_event")
@Override
public void saveJobInstanceUpdateEvent(IJobInstanceUpdateEvent event, String updateId) {
instanceEventMapper.insert(event.newBuilder(), updateId);
}
+ @Timed("job_update_store_delete_all")
@Override
public void deleteAllUpdatesAndEvents() {
detailsMapper.truncate();
}
+ @Timed("job_update_store_fetch_summaries")
@Override
public List<IJobUpdateSummary> fetchJobUpdateSummaries(IJobUpdateQuery query) {
return IJobUpdateSummary.listFromBuilders(detailsMapper.selectSummaries(query.newBuilder()));
}
+ @Timed("job_update_store_fetch_details")
@Override
public Optional<IJobUpdateDetails> fetchJobUpdateDetails(final String updateId) {
return Optional.fromNullable(detailsMapper.selectDetails(updateId))
@@ -133,6 +141,7 @@ public class DBJobUpdateStore implements JobUpdateStore.Mutable {
});
}
+ @Timed("job_update_store_fetch_update")
@Override
public Optional<IJobUpdate> fetchJobUpdate(String updateId) {
return Optional.fromNullable(detailsMapper.selectUpdate(updateId))
@@ -144,6 +153,7 @@ public class DBJobUpdateStore implements JobUpdateStore.Mutable {
});
}
+ @Timed("job_update_store_fetch_instructions")
@Override
public Optional<IJobUpdateInstructions> fetchJobUpdateInstructions(String updateId) {
return Optional.fromNullable(detailsMapper.selectInstructions(updateId))
@@ -155,11 +165,13 @@ public class DBJobUpdateStore implements JobUpdateStore.Mutable {
});
}
+ @Timed("job_update_store_fetch_all_details")
@Override
public Set<StoredJobUpdateDetails> fetchAllJobUpdateDetails() {
return ImmutableSet.copyOf(detailsMapper.selectAllDetails());
}
+ @Timed("job_update_store_get_lock_token")
@Override
public Optional<String> getLockToken(String updateId) {
// We assume here that cascading deletes will cause a lock-update associative row to disappear
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/db88bd41/src/main/java/org/apache/aurora/scheduler/storage/db/DbLockStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/db/DbLockStore.java b/src/main/java/org/apache/aurora/scheduler/storage/db/DbLockStore.java
index 4b4f127..335d7a9 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/db/DbLockStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/db/DbLockStore.java
@@ -27,6 +27,8 @@ import org.apache.aurora.scheduler.storage.entities.ILockKey;
import static java.util.Objects.requireNonNull;
+import static com.twitter.common.inject.TimedInterceptor.Timed;
+
/**
* A relational database-backed lock store.
*/
@@ -41,39 +43,44 @@ class DbLockStore implements LockStore.Mutable {
this.lockKeyMapper = requireNonNull(lockKeyMapper);
}
+ @Timed("lock_store_save_lock")
@Override
public void saveLock(ILock lock) {
lockKeyMapper.insert(lock.getKey().newBuilder());
mapper.insert(lock.newBuilder());
}
+ @Timed("lock_store_remove_lock")
@Override
public void removeLock(ILockKey lockKey) {
mapper.delete(lockKey.newBuilder());
}
+ @Timed("lock_store_delete_locks")
@Override
public void deleteLocks() {
mapper.truncate();
}
- /**
- * LockRow converter to satisfy the ILock interface.
- */
- private static final Function<LockRow, ILock> TO_ROW = new Function<LockRow, ILock>() {
- @Override
- public ILock apply(LockRow input) {
- return ILock.build(input.getLock());
- }
- };
-
+ @Timed("lock_store_fetch_locks")
@Override
public Set<ILock> fetchLocks() {
return FluentIterable.from(mapper.selectAll()).transform(TO_ROW).toSet();
}
+ @Timed("lock_store_fetch_lock")
@Override
public Optional<ILock> fetchLock(ILockKey lockKey) {
return Optional.fromNullable(mapper.select(lockKey.newBuilder())).transform(TO_ROW);
}
+
+ /**
+ * LockRow converter to satisfy the ILock interface.
+ */
+ private static final Function<LockRow, ILock> TO_ROW = new Function<LockRow, ILock>() {
+ @Override
+ public ILock apply(LockRow input) {
+ return ILock.build(input.getLock());
+ }
+ };
}
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/db88bd41/src/main/java/org/apache/aurora/scheduler/storage/db/DbQuotaStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/db/DbQuotaStore.java b/src/main/java/org/apache/aurora/scheduler/storage/db/DbQuotaStore.java
index 412b3e7..9371907 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/db/DbQuotaStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/db/DbQuotaStore.java
@@ -25,6 +25,8 @@ import org.apache.aurora.scheduler.storage.entities.IResourceAggregate;
import static java.util.Objects.requireNonNull;
+import static com.twitter.common.inject.TimedInterceptor.Timed;
+
/**
* Quota store backed by a relational database.
*/
@@ -37,12 +39,14 @@ class DbQuotaStore implements QuotaStore.Mutable {
this.mapper = requireNonNull(mapper);
}
+ @Timed("quota_store_fetch_quota")
@Override
public Optional<IResourceAggregate> fetchQuota(String role) {
return Optional.fromNullable(mapper.select(role))
.transform(IResourceAggregate.FROM_BUILDER);
}
+ @Timed("quota_store_fetch_quotas")
@Override
public Map<String, IResourceAggregate> fetchQuotas() {
ImmutableMap.Builder<String, IResourceAggregate> results = ImmutableMap.builder();
@@ -52,16 +56,19 @@ class DbQuotaStore implements QuotaStore.Mutable {
return results.build();
}
+ @Timed("quota_store_delete_quotas")
@Override
public void deleteQuotas() {
mapper.truncate();
}
+ @Timed("quota_store_remove_quota")
@Override
public void removeQuota(String role) {
mapper.delete(role);
}
+ @Timed("quota_store_save_quota")
@Override
public void saveQuota(String role, IResourceAggregate quota) {
mapper.merge(role, quota.newBuilder());
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/db88bd41/src/main/java/org/apache/aurora/scheduler/storage/db/DbSchedulerStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/db/DbSchedulerStore.java b/src/main/java/org/apache/aurora/scheduler/storage/db/DbSchedulerStore.java
index fc7913e..d7696cd 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/db/DbSchedulerStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/db/DbSchedulerStore.java
@@ -20,6 +20,8 @@ import com.google.inject.Inject;
import org.apache.aurora.scheduler.storage.SchedulerStore;
+import static com.twitter.common.inject.TimedInterceptor.Timed;
+
/**
* A relational database-backed scheduler store.
*/
@@ -32,11 +34,13 @@ class DbSchedulerStore implements SchedulerStore.Mutable {
this.mapper = Objects.requireNonNull(mapper);
}
+ @Timed("scheduler_store_save_framework_id")
@Override
public void saveFrameworkId(String frameworkId) {
mapper.insert(Objects.requireNonNull(frameworkId));
}
+ @Timed("scheduler_store_fetch_framework_id")
@Override
public Optional<String> fetchFrameworkId() {
return Optional.fromNullable(mapper.select());