[ 
https://issues.apache.org/jira/browse/FLUME-896?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13234041#comment-13234041
 ] 

[email protected] commented on FLUME-896:
-----------------------------------------------------


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


Thanks for the patch Brock. The changes look good. Some feedback follows:

General:
* There are a few places where whitespace has creeped in - highlighted as red 
in the review. Please remove it in the final patch.
* Also, there are a few places where the line length exceeds 80 chars, will be 
nice to take care of that as well in the final patch.

Design/Impl:
* The FileBackedTransaction.doCommit() only calls the 
fileChannel.commitSequenceID(lastSequenceId) if the lastSequenceId is greater 
than 0. This will not be the case if the channel has no sinks for it. As a 
result everything will be replayed every time the channel starts up, causing 
FileChannel.configure() to fail with OOM after a certain threshold is breached. 
Ideally, the sequeceId commit should happen on every commit call.
* On the same lines, the implementation should override the stop() method to 
perform cleanup and close any of the WAL resources that may be actively in use.
* The take implementation seems to be limited to the contents of MemoryChannel 
only. This will not have any of the events that were persisted in the previous 
run of the FileChannel and therefore those events will get locked out of any 
sink's reach.
* Finally, it is not clear to me from the implementation how the concurrent 
semantic will work. Can you please explain (or better still javadoc) the 
expected workings of the WAL implementation?



flume-ng-channels/flume-file-channel/pom.xml
<https://reviews.apache.org/r/4325/#comment13164>

    This change seems to be unrelated to the file channel. If that is the case, 
we should factor it out.



flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java
<https://reviews.apache.org/r/4325/#comment13181>

    Please override the initialize() method to do any initialization for the 
system.



flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java
<https://reviews.apache.org/r/4325/#comment13180>

    The JDBC channel defaults to ${user.home}/.flume/jdbc-channel. I suggest 
defaulting the file channel working directory to something similar like 
${user.home}/.flume/file-channel



flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java
<https://reviews.apache.org/r/4325/#comment13214>

    It will be great if this memory channel can also be configured correctly 
via the system configuration. That way, the end user will be able to specify 
the cap on the number of events that can live in all the active transactions 
combined.
    
    This will help ensure that this channel does not run into OOM issues.



flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java
<https://reviews.apache.org/r/4325/#comment13182>

    This constructor does not allow the specification of roll size, roll 
required interval, max log size, min log retention period and worker interval.  
All of these properties should be extracted from the context and passed into 
the WAL constructor.



flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java
<https://reviews.apache.org/r/4325/#comment13222>

    This logic is probably better done in the start() method than in the 
configure method. 



flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/wal/SequenceIDBuffer.java
<https://reviews.apache.org/r/4325/#comment13162>

    Missing license header.



flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/wal/TestSequenceIDBuffer.java
<https://reviews.apache.org/r/4325/#comment13163>

    Missing license header.


- Arvind


On 2012-03-14 19:04:52, Brock Noland wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/4325/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2012-03-14 19:04:52)
bq.  
bq.  
bq.  Review request for Flume.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  Attached patch not meant for commit. Just posting here for easy review.
bq.  
bq.  
bq.  This addresses bug FLUME-896.
bq.      https://issues.apache.org/jira/browse/FLUME-896
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    flume-ng-channels/flume-file-channel/pom.xml ee2d20f 
bq.    
flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java
 a279453 
bq.    
flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannelEvent.java
 PRE-CREATION 
bq.    
flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/wal/SequenceIDBuffer.java
 PRE-CREATION 
bq.    
flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/wal/WAL.java
 PRE-CREATION 
bq.    
flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/wal/WALDataFile.java
 PRE-CREATION 
bq.    
flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/wal/WALEntry.java
 PRE-CREATION 
bq.    
flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/wal/WALReplayResult.java
 PRE-CREATION 
bq.    
flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestFileChannel.java
 ab66998 
bq.    
flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/wal/TestSequenceIDBuffer.java
 PRE-CREATION 
bq.    
flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/wal/TestWAL.java
 PRE-CREATION 
bq.  
bq.  Diff: https://reviews.apache.org/r/4325/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Brock
bq.  
bq.


                
> Implement file write ahead log channel
> --------------------------------------
>
>                 Key: FLUME-896
>                 URL: https://issues.apache.org/jira/browse/FLUME-896
>             Project: Flume
>          Issue Type: New Feature
>          Components: Channel
>    Affects Versions: NG alpha 1
>            Reporter: E. Sammer
>            Assignee: Brock Noland
>             Fix For: v1.2.0
>
>         Attachments: FLUME-896-1.patch, FLUME-896-4.patch
>
>
> Implement a channel that uses a regular file system and a write ahead log for 
> durable event delivery.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to