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

Hari Shreedharan commented on FLUME-2181:
-----------------------------------------

Thanks for the feedback Brock. 

1. Yes, we must at least flush, but we do actually fsync during a close anyway. 
I will add a null check for syncExecutor.
2. When the channel is corrupt (there is a partial event in the file or like I 
mentioned above in case 2 - there is an fsync-ed take for a not yet fsync-ed 
put), we basically need to ignore the take. In reality, all takes past that 
event is really not valid - we can check for this by simply checking the length 
of the file before doing a take - though this won't handle partial events. For 
partial events, we actually will need to read the event and have a separate 
exception to show that we read in a partial event. Does that make approach 
sound good? Basically, skip partial or non-existent events and log it - make it 
as efficient as we can.

> Optionally disable File Channel fsyncs 
> ---------------------------------------
>
>                 Key: FLUME-2181
>                 URL: https://issues.apache.org/jira/browse/FLUME-2181
>             Project: Flume
>          Issue Type: Improvement
>            Reporter: Hari Shreedharan
>            Assignee: Hari Shreedharan
>         Attachments: FLUME-2181.patch
>
>
> This will give File Channel performance a big boost, at the cost of possible 
> data loss if a crash happens between checkpoints. 
> Also we should make it configurable, with default to false. If the user does 
> not mind slight inconsistencies, this feature can be explicitly enabled 
> through configuration. So if it is not configured, then the behavior will be 
> exactly as it is now.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to