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 2016/12/15 18:09:48 UTC

aurora git commit: Add finer grained timings to the Snapshot process. I also added some log output, as I found those existing numbers handy when investigating our long snapshot times.

Repository: aurora
Updated Branches:
  refs/heads/master 220e23b6e -> 8e37d0f18


Add finer grained timings to the Snapshot process. I also added some log output, as I found those existing numbers handy when investigating our long snapshot times.

Related ticket: https://issues.apache.org/jira/browse/AURORA-1861

Reviewed at https://reviews.apache.org/r/54773/


Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/8e37d0f1
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/8e37d0f1
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/8e37d0f1

Branch: refs/heads/master
Commit: 8e37d0f181b7a1a4b3fd8c0ca11f6405991ce560
Parents: 220e23b
Author: David McLaughlin <da...@dmclaughlin.com>
Authored: Thu Dec 15 10:08:54 2016 -0800
Committer: David McLaughlin <dm...@twitter.com>
Committed: Thu Dec 15 10:08:54 2016 -0800

----------------------------------------------------------------------
 .../aurora/scheduler/storage/log/LogStorage.java      |  3 ++-
 .../scheduler/storage/log/SnapshotStoreImpl.java      | 14 ++++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aurora/blob/8e37d0f1/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java b/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java
index 39924c6..9c9218c 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java
@@ -495,7 +495,8 @@ public class LogStorage implements NonVolatileStorage, DistributedSnapshotStore
           + ", cron jobs: " + snapshot.getCronJobsSize()
           + ", locks: " + snapshot.getLocksSize()
           + ", quota confs: " + snapshot.getQuotaConfigurationsSize()
-          + ", tasks: " + snapshot.getTasksSize());
+          + ", tasks: " + snapshot.getTasksSize()
+          + ", updates: " + snapshot.getJobUpdateDetailsSize());
     });
   }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/8e37d0f1/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java b/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java
index d2c8590..853780b 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java
@@ -105,6 +105,7 @@ public class SnapshotStoreImpl implements SnapshotStore<Snapshot> {
       //   moment a new snapshot is created
       new SnapshotField() {
         @Override
+        @Timed("snapshot_save_db")
         public void saveToSnapshot(MutableStoreProvider store, Snapshot snapshot) {
           LOG.info("Saving dbsnapshot");
           // Note: we don't use mybatis mapped statements for performance reasons and to avoid
@@ -126,6 +127,7 @@ public class SnapshotStoreImpl implements SnapshotStore<Snapshot> {
         }
 
         @Override
+        @Timed("snapshot_restore_db")
         public void restoreFromSnapshot(MutableStoreProvider store, Snapshot snapshot) {
           if (snapshot.isSetDbScript()) {
             try (Connection c = ((DataSource) store.getUnsafeStoreAccess()).getConnection()) {
@@ -159,11 +161,13 @@ public class SnapshotStoreImpl implements SnapshotStore<Snapshot> {
         // It's important for locks to be replayed first, since there are relations that expect
         // references to be valid on insertion.
         @Override
+        @Timed("snapshot_save_lock_store")
         public void saveToSnapshot(MutableStoreProvider store, Snapshot snapshot) {
           snapshot.setLocks(ILock.toBuildersSet(store.getLockStore().fetchLocks()));
         }
 
         @Override
+        @Timed("snapshot_restore_lock_store")
         public void restoreFromSnapshot(MutableStoreProvider store, Snapshot snapshot) {
           if (hasDbSnapshot(snapshot)) {
             LOG.info("Deferring lock restore to dbsnapshot");
@@ -181,12 +185,14 @@ public class SnapshotStoreImpl implements SnapshotStore<Snapshot> {
       },
       new SnapshotField() {
         @Override
+        @Timed("snapshot_save_host_attributes")
         public void saveToSnapshot(MutableStoreProvider store, Snapshot snapshot) {
           snapshot.setHostAttributes(
               IHostAttributes.toBuildersSet(store.getAttributeStore().getHostAttributes()));
         }
 
         @Override
+        @Timed("snapshot_restore_host_attributes")
         public void restoreFromSnapshot(MutableStoreProvider store, Snapshot snapshot) {
           if (hasDbSnapshot(snapshot)) {
             LOG.info("Deferring attribute restore to dbsnapshot");
@@ -204,6 +210,7 @@ public class SnapshotStoreImpl implements SnapshotStore<Snapshot> {
       },
       new SnapshotField() {
         @Override
+        @Timed("snapshot_save_task_store")
         public void saveToSnapshot(MutableStoreProvider store, Snapshot snapshot) {
           snapshot.setTasks(
               IScheduledTask.toBuildersSet(store.getTaskStore().fetchTasks(Query.unscoped())));
@@ -211,6 +218,7 @@ public class SnapshotStoreImpl implements SnapshotStore<Snapshot> {
         }
 
         @Override
+        @Timed("snapshot_restore_task_store")
         public void restoreFromSnapshot(MutableStoreProvider store, Snapshot snapshot) {
           if (hasDbTaskStore(snapshot)) {
             LOG.info("Deferring task restore to dbsnapshot");
@@ -227,6 +235,7 @@ public class SnapshotStoreImpl implements SnapshotStore<Snapshot> {
       },
       new SnapshotField() {
         @Override
+        @Timed("snapshot_save_cron_store")
         public void saveToSnapshot(MutableStoreProvider store, Snapshot snapshot) {
           ImmutableSet.Builder<StoredCronJob> jobs = ImmutableSet.builder();
 
@@ -238,6 +247,7 @@ public class SnapshotStoreImpl implements SnapshotStore<Snapshot> {
         }
 
         @Override
+        @Timed("snapshot_restore_cron_store")
         public void restoreFromSnapshot(MutableStoreProvider store, Snapshot snapshot) {
           if (hasDbTaskStore(snapshot)) {
             LOG.info("Deferring cron job restore to dbsnapshot");
@@ -278,6 +288,7 @@ public class SnapshotStoreImpl implements SnapshotStore<Snapshot> {
       },
       new SnapshotField() {
         @Override
+        @Timed("snapshot_save_quota_store")
         public void saveToSnapshot(MutableStoreProvider store, Snapshot snapshot) {
           ImmutableSet.Builder<QuotaConfiguration> quotas = ImmutableSet.builder();
           for (Map.Entry<String, IResourceAggregate> entry
@@ -290,6 +301,7 @@ public class SnapshotStoreImpl implements SnapshotStore<Snapshot> {
         }
 
         @Override
+        @Timed("snapshot_restore_quota_store")
         public void restoreFromSnapshot(MutableStoreProvider store, Snapshot snapshot) {
           if (hasDbSnapshot(snapshot)) {
             LOG.info("Deferring quota restore to dbsnapshot");
@@ -308,11 +320,13 @@ public class SnapshotStoreImpl implements SnapshotStore<Snapshot> {
       },
       new SnapshotField() {
         @Override
+        @Timed("snapshot_save_update_store")
         public void saveToSnapshot(MutableStoreProvider store, Snapshot snapshot) {
           snapshot.setJobUpdateDetails(store.getJobUpdateStore().fetchAllJobUpdateDetails());
         }
 
         @Override
+        @Timed("snapshot_restore_update_store")
         public void restoreFromSnapshot(MutableStoreProvider store, Snapshot snapshot) {
           if (hasDbSnapshot(snapshot)) {
             LOG.info("Deferring job update restore to dbsnapshot");