> On Nov. 29, 2016, 4:18 a.m., Joshua Cohen wrote:
> > src/test/java/org/apache/aurora/scheduler/storage/db/InstrumentingInterceptorTest.java,
> >  line 46
> > <https://reviews.apache.org/r/54107/diff/3/?file=1571611#file1571611line46>
> >
> >     You shouldn't need to create a mock of `FakeClock`, it's already itself 
> > essentially a mock. Instead, the generally usage is along the lines of...
> >     
> >         FakeClock clock = new FakeClock();
> >         
> >         ...
> >         
> >         // advance the clock by 1 second
> >         clock.advance(Amount.of(1L, Time.SECONDS));
> >         
> >         ...
> >         // Do some more work
> >         
> >         // Advance the clock some more...
> >         clock.advance(Amount.of(10L, Time.SECONDS));
> >         
> >         ...
> >         // Reset the clock...
> >         clock.setNowMillis(0L);
> >         
> >     If you search through the codebase you should be able to find copious 
> > examples to crib from.
> 
> Reza Motamedi wrote:
>     I am not sure if FakeClokc let me do what I want here. I want the clock 
> to advance inside the interceptors execution, i.e., first time nowmillis 
> called give me this, next time give me that. I aggree that I should just mock 
> a Clock, not a FakeClock.

Seems like the issue here is that the clock start and end times are both 
checked inside a method that is mocked. So to call clock.advance(...) in the 
manner described, the mock for Invocation.class would need to be replaced with 
a stub that contains a body that actually advances the clock. I think the mock 
is the better way to go.


- David


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


On Nov. 30, 2016, 6:14 a.m., Reza Motamedi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/54107/
> -----------------------------------------------------------
> 
> (Updated Nov. 30, 2016, 6:14 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Joshua Cohen, Mehrdad 
> Nurolahzade, and Santhosh Kumar Shanmugham.
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> MyBatis allows us to intercept calls within the execution of a mapped 
> statement. This allows us to time various mapped statements and ultimately 
> gain more insight on the performance of the database module.
> 
> This patch introduces an interceptor on MyBatis on `updates` and `query` 
> mapped statements. I used the following convention to create name for the 
> newly collected stats:
> mybatis.<<the id of the mapped statement>>
> 
> After interception the process is very similar to the one in 
> @Timed-interceptor. SlidingStats can be used to export interval averages, 
> total milliseconds and the event counts.
> 
> __example stats (from ./vars.json)__
> mybatis.create_tables_events 1
> mybatis.create_tables_events_per_sec 0.0
> mybatis.create_tables_nanos_per_event 0.0
> mybatis.create_tables_nanos_total 592633784
> mybatis.create_tables_nanos_total_per_sec 0.0
> mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.selectAll_events
>  3
> mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.selectAll_events_per_sec
>  0.0
> mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.selectAll_nanos_per_event
>  0.0
> mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.selectAll_nanos_total
>  2858362
> mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.selectAll_nanos_total_per_sec
>  0.0
> mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.select_events 
> 333
> mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.select_events_per_sec
>  0.0
> mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.select_nanos_per_event
>  0.0
> mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.select_nanos_total
>  85745680
> mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.select_nanos_total_per_sec
>  0.0
> 
> 
> Diffs
> -----
> 
>   src/main/java/org/apache/aurora/scheduler/storage/db/DbModule.java 
> e7287cec28e7b8ca978c506bfe821f261bc0ac26 
>   
> src/main/java/org/apache/aurora/scheduler/storage/db/InstrumentingInterceptor.java
>  PRE-CREATION 
>   
> src/test/java/org/apache/aurora/scheduler/storage/db/InstrumentingInterceptorTest.java
>  PRE-CREATION 
>   
> src/test/java/org/apache/aurora/scheduler/storage/mem/InMemTaskStoreTest.java 
> 2e560c0d565689703b282391fe49dbf213ee25dc 
>   
> src/test/java/org/apache/aurora/scheduler/storage/mem/MemCronJobStoreTest.java
>  79999e19454568540c14f91808635bf8dff82bb3 
> 
> Diff: https://reviews.apache.org/r/54107/diff/
> 
> 
> Testing
> -------
> 
> Tests are covered in InstrumentingInterceptorTest.
> 
> - testStatIsCreatedOnce
> Tests that each stat is created one time only.
> 
> - testInterceptMarksMetrics
> Tests that invocation is correctly intercepted and then proceeds.
> 
> 
> Thanks,
> 
> Reza Motamedi
> 
>

Reply via email to