> On May 3, 2016, 5:23 p.m., Chris Pettitt wrote:
> > samza-core/src/main/java/org/apache/samza/coordinator/StreamPartitionCountMonitor.java,
> >  line 107
> > <https://reviews.apache.org/r/46856/diff/2/?file=1367775#file1367775line107>
> >
> >     This is not thread-safe, but I believe it could be made so without 
> > requiring volatile / atomics / locks. Could we initialize all of the guages 
> > in the constructor and place them in an immutable map?
> 
> Jake Maes wrote:
>     Does it need to be thread-safe? The executor is single-threaded, start() 
> is idempotent, and this method is private. Is there a hole I'm not seeing?
> 
> Chris Pettitt wrote:
>     Yes, that is a fair argument to make. However, those assumptions may not 
> hold over time. Assuming that we can construct these in the constructor and 
> make the map immutable at no cost, I think we should make this thread safe.
>     
>     There are also assumptions about how the tests are run. For example, 
> getGauges exposes the map, which would require that test code does enough to 
> guarantee visibility (this holds now, may not later).
>     
>     If there is a cost to make this thread-safe then this is not as clear cut 
> (though I know how I'd bias). Would be interested in the details if this is 
> the case.

Ahh, no, it wasn't about cost. I just wasn't clear that this was about 
future-proofing. I thought maybe you saw a bug that I was missing. I'm all for 
it. Stay tuned.


- Jake


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


On April 29, 2016, 11:38 p.m., Jake Maes wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/46856/
> -----------------------------------------------------------
> 
> (Updated April 29, 2016, 11:38 p.m.)
> 
> 
> Review request for samza, Boris Shkolnik, Navina Ramesh, Jagadish 
> Venkatraman, and Yi Pan (Data Infrastructure).
> 
> 
> Bugs: SAMZA-943
>     https://issues.apache.org/jira/browse/SAMZA-943
> 
> 
> Repository: samza
> 
> 
> Description
> -------
> 
> SAMZA-943 Occasional test failure: 
> TestStreamPartitionCountMonitor.testStartStopBehavior
> 
> * Rewrote the monitor in Java following the pattern of the 
> PollingScanDiskSpaceMonitor in SAMZA-924
>   ** The main difference is that it uses a ScheduledExecutorService to 
> cleanly run the monitor in a loop and provide determinism around startup and 
> shutdown
> * Got rid of the sleep() in the unit test
> * Added a unit test to verify the scheduler calls the monitor method
> * Enforced that the monitor isn't restarted (which is a problem for the 
> scheduler service)
>   ** This required that the reference to the monitor not be static (defined 
> in the JobCoordinator object) and instead instantiated whenever the 
> JobCoordinator is instantiated.
> 
> 
> Diffs
> -----
> 
>   checkstyle/import-control.xml c15b8e74de8e5aac5ac83278c52ab3dba1630e50 
>   
> samza-core/src/main/java/org/apache/samza/coordinator/StreamPartitionCountMonitor.java
>  PRE-CREATION 
>   samza-core/src/main/scala/org/apache/samza/coordinator/JobCoordinator.scala 
> 384b2e777c73fc1e4bc8a29312c9ea5372162ca1 
>   
> samza-core/src/main/scala/org/apache/samza/coordinator/StreamPartitionCountMonitor.scala
>  6aeff5787a0018ca2cae7d901c25537fbc7dea23 
>   
> samza-core/src/test/scala/org/apache/samza/coordinator/TestStreamPartitionCountMonitor.scala
>  f47f8189bd92c4071ae76ae323e066823f3a6f61 
> 
> Diff: https://reviews.apache.org/r/46856/diff/
> 
> 
> Testing
> -------
> 
> Added a test. 
> 
> Ran check-all.sh
> 
> 
> Thanks,
> 
> Jake Maes
> 
>

Reply via email to