> On Jan. 4, 2017, 10:48 a.m., Joshua Cohen wrote:
> > src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java,
> >  lines 520-532
> > <https://reviews.apache.org/r/55105/diff/1/?file=1594663#file1594663line520>
> >
> >     Can these be default methods on the interface rather than converting to 
> > an abstract class?
> 
> Mehrdad Nurolahzade wrote:
>     You are right, will refactor.

Actually, converting it back to an interface causes `SnapshotStoreImplIT` fail 
after `Stats` is flushed; a static field is only initialized once.
```
private interface SnapshotField {

    LoadingCache<String, SlidingStats> STATS = CacheBuilder.newBuilder().build(
        new CacheLoader<String, SlidingStats>() {
          @Override
          public SlidingStats load(String name) throws Exception {
            return new SlidingStats(name, "nanos");
          }
        });

    String getName();

    void saveToSnapshot(MutableStoreProvider storeProvider, Snapshot snapshot);

    void restoreFromSnapshot(MutableStoreProvider storeProvider, Snapshot 
snapshot);

    default void save(MutableStoreProvider storeProvider, Snapshot snapshot) {
      STATS.getUnchecked(SNAPSHOT_SAVE + getName())
          .time((Timeable.NoResult.Quiet) () -> saveToSnapshot(storeProvider, 
snapshot));
    }

    default void restore(MutableStoreProvider storeProvider, Snapshot snapshot) 
{
      STATS.getUnchecked(SNAPSHOT_RESTORE + getName())
          .time((Timeable.NoResult.Quiet) () -> 
restoreFromSnapshot(storeProvider, snapshot));
    }
  }
```
Seems like it is safer to keep it as abstract class?


- Mehrdad


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/55105/#review160521
-----------------------------------------------------------


On Jan. 4, 2017, 8:36 p.m., Mehrdad Nurolahzade wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/55105/
> -----------------------------------------------------------
> 
> (Updated Jan. 4, 2017, 8:36 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin and Joshua Cohen.
> 
> 
> Bugs: AURORA-1870
>     https://issues.apache.org/jira/browse/AURORA-1870
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> AURORA-1870 Add finer grained timings to the Snapshot process
> 
> I gave up on `@Timed` interceptor approach because major refactoring is 
> required in order to have snapshot fields instantiated by Guice through 
> `Provider` or `@Provides` interfaces. The abstract class approach is much 
> easier/cleaner.
> 
> 
> Diffs
> -----
> 
>   commons/src/main/java/org/apache/aurora/common/stats/SlidingStats.java 
> f7a5ae41e307627fc55157758e9b7cdd861c3268 
>   commons/src/test/java/org/apache/aurora/common/stats/SlidingStatsTest.java 
> PRE-CREATION 
>   
> src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java 
> 7aa111ec14696ae40f518c42f3c7f45d8ab0e94c 
>   
> src/test/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImplIT.java
>  f56a1624c7188da175ad3e6de323c3442802f2ea 
> 
> Diff: https://reviews.apache.org/r/55105/diff/
> 
> 
> Testing
> -------
> 
> ```
> $ curl localhost:8081/vars | grep snapshot_restore
>   % Total    % Received % Xferd  Average Speed   Time    Time     Time  
> Current
>                                  Dload  Upload   Total   Spent    Left  Speed
>   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
> snapshot_restore_crons_events 1
> snapshot_restore_crons_events_per_sec 0.0
> snapshot_restore_crons_nanos_per_event 0.0
> snapshot_restore_crons_nanos_total 73648
> snapshot_restore_crons_nanos_total_per_sec 0.0
> snapshot_restore_dbscript_events 1
> snapshot_restore_dbscript_events_per_sec 0.0
> snapshot_restore_dbscript_nanos_per_event 0.0
> snapshot_restore_dbscript_nanos_total 1148842021
> snapshot_restore_dbscript_nanos_total_per_sec 0.0
> snapshot_restore_hosts_events 1
> snapshot_restore_hosts_events_per_sec 0.0
> snapshot_restore_hosts_nanos_per_event 0.0
> snapshot_restore_hosts_nanos_total 76166
> snapshot_restore_hosts_nanos_total_per_sec 0.0
> snapshot_restore_job_updates_events 1
> snapshot_restore_job_updates_events_per_sec 0.0
> snapshot_restore_job_updates_nanos_per_event 0.0
> snapshot_restore_job_updates_nanos_total 49482
> snapshot_restore_job_updates_nanos_total_per_sec 0.0
> snapshot_restore_locks_events 1
> snapshot_restore_locks_events_per_sec 0.0
> snapshot_restore_locks_nanos_per_event 0.0
> snapshot_restore_locks_nanos_total 125084
> snapshot_restore_locks_nanos_total_per_sec 0.0
> snapshot_restore_quota_events 1
> snapshot_restore_quota_events_per_sec 0.0
> snapshot_restore_quota_nanos_per_event 0.0
> snapshot_restore_quota_nanos_total 52305
> snapshot_restore_quota_nanos_total_per_sec 0.0
> snapshot_restore_scheduler_metadata_events 1
> snapshot_restore_scheduler_metadata_events_per_sec 0.0
> snapshot_restore_scheduler_metadata_nanos_per_event 0.0
> snapshot_restore_scheduler_metadata_nanos_total 70816
> snapshot_restore_scheduler_metadata_nanos_total_per_sec 0.0
> snapshot_restore_tasks_events 1
> snapshot_restore_tasks_events_per_sec 0.0
> snapshot_restore_tasks_nanos_per_event 0.0
> snapshot_restore_tasks_nanos_total 91377
> snapshot_restore_tasks_nanos_total_per_sec 0.0
> ```
> 
> ```
> $ aurora_admin scheduler_snapshot devcluster
>  INFO] Response from scheduler: OK (message: )
>  
> $ curl localhost:8081/vars | grep snapshot_save
>   % Total    % Received % Xferd  Average Speed   Time    Time     Time  
> Current
>                                  Dload  Upload   Total   Spent    Left  Speed
> 100 48226    0 48226    0     0  3266k      0 --:--:-- --:--:-- --:--:-- 3363k
> snapshot_save_crons_events 1
> snapshot_save_crons_events_per_sec 0.0
> snapshot_save_crons_nanos_per_event 0.0
> snapshot_save_crons_nanos_total 466181
> snapshot_save_crons_nanos_total_per_sec 0.0
> snapshot_save_dbscript_events 1
> snapshot_save_dbscript_events_per_sec 0.0
> snapshot_save_dbscript_nanos_per_event 0.0
> snapshot_save_dbscript_nanos_total 18201542
> snapshot_save_dbscript_nanos_total_per_sec 0.0
> snapshot_save_hosts_events 1
> snapshot_save_hosts_events_per_sec 0.0
> snapshot_save_hosts_nanos_per_event 0.0
> snapshot_save_hosts_nanos_total 1286180
> snapshot_save_hosts_nanos_total_per_sec 0.0
> snapshot_save_job_updates_events 1
> snapshot_save_job_updates_events_per_sec 0.0
> snapshot_save_job_updates_nanos_per_event 0.0
> snapshot_save_job_updates_nanos_total 123760632
> snapshot_save_job_updates_nanos_total_per_sec 0.0
> snapshot_save_locks_events 1
> snapshot_save_locks_events_per_sec 0.0
> snapshot_save_locks_nanos_per_event 0.0
> snapshot_save_locks_nanos_total 1523926
> snapshot_save_locks_nanos_total_per_sec 0.0
> snapshot_save_quota_events 1
> snapshot_save_quota_events_per_sec 0.0
> snapshot_save_quota_nanos_per_event 0.0
> snapshot_save_quota_nanos_total 5725489
> snapshot_save_quota_nanos_total_per_sec 0.0
> snapshot_save_scheduler_metadata_events 1
> snapshot_save_scheduler_metadata_events_per_sec 0.0
> snapshot_save_scheduler_metadata_nanos_per_event 0.0
> snapshot_save_scheduler_metadata_nanos_total 2142
> snapshot_save_scheduler_metadata_nanos_total_per_sec 0.0
> snapshot_save_tasks_events 1
> snapshot_save_tasks_events_per_sec 0.0
> snapshot_save_tasks_nanos_per_event 0.0
> snapshot_save_tasks_nanos_total 6939463
> snapshot_save_tasks_nanos_total_per_sec 0.0 
> ```
> 
> 
> Thanks,
> 
> Mehrdad Nurolahzade
> 
>

Reply via email to