> On 2012-05-21 08:09:28, Arvind Prabhakar wrote:
> > flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/BucketWriter.java,
> >  line 40
> > <https://reviews.apache.org/r/5175/diff/1/?file=109725#file109725line40>
> >
> >     I think to be on the safer side we should make this class all 
> > synchronized. It does introduce a potential for dead locks but without 
> > making this change, it is hard to analyze where other problems may be.

synchronized all public methods that can modify state


> On 2012-05-21 08:09:28, Arvind Prabhakar wrote:
> > flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSEventSink.java,
> >  lines 488-503
> > <https://reviews.apache.org/r/5175/diff/1/?file=109726#file109726line488>
> >
> >     This block is being done outside of a committed transaction. As a 
> > result, a failure in this will likely cause data loss. I suggest move it 
> > inside with a nested try/catch if necessary.

done


> On 2012-05-21 08:09:28, Arvind Prabhakar wrote:
> > flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/BucketWriter.java,
> >  line 68
> > <https://reviews.apache.org/r/5175/diff/1/?file=109725#file109725line68>
> >
> >     should be volatile or guarded

done, as well as a few other immutable or primitive variables readable via 
public methods


- Mike


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


On 2012-05-21 09:44:35, Mike Percy wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/5175/
> -----------------------------------------------------------
> 
> (Updated 2012-05-21 09:44:35)
> 
> 
> Review request for Flume.
> 
> 
> Summary
> -------
> 
> BucketWriter refactoring: append() does all the work of open/close/roll. 
> open() is a private method that takes no arguments. No abort() call. Only one 
> constructor.
> Far fewer entry points and code paths. I believe I've closed all or many of 
> the race conditions and clarified the API responsibilities/semantics.
> 
> 
> This addresses bug FLUME-1219.
>     https://issues.apache.org/jira/browse/FLUME-1219
> 
> 
> Diffs
> -----
> 
>   
> flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/BucketWriter.java
>  91cb822 
>   
> flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSEventSink.java
>  d272f74 
>   
> flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/TestBucketWriter.java
>  397138b 
>   
> flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/TestHDFSEventSink.java
>  0f78f37 
> 
> Diff: https://reviews.apache.org/r/5175/diff
> 
> 
> Testing
> -------
> 
> Looks good under load. Unit tests pass.
> 
> 
> Thanks,
> 
> Mike
> 
>

Reply via email to