> 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 > >
