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

Inder SIngh commented on FLUME-1045:
------------------------------------

Proposed Solution
------------------

Sink triggered spooling
----------------------------
A sink going down/all sinks go down in a failover policy setup triggers 
spooling of data from the channel to local disk. As and when there is a 
successful commit from the channel to one of the sinks a de-spool is triggered 
from local disk to channel.

Proposed Implementation
---------------------------

1. SpooledFailoverSinkProcessor – extending from FailoverSinkProcessor. 
Capabilities include triggering spool(), despool() when the sink go down and 
comes up respectively.

Some more design choices & assumptions
----------------------------------------
1. Persist avro serialized objects in local disk which preserves data & headers.
2. Use channel based transaction semantics while spooling to avoid any data 
loss.
3. Spool location is configurable for each SinkGroup controlled by “spool-dir". 
 Event’s will be spooled in batches controlled by “spool-batch-size “ Spool 
files will be rolled over after they reach a size controlled by 
“spoolfile-size”.
4. Validation to avoid misconfiguration of overlapping spool locations across 
SinkGroups.
5. De-spooling happens one file at a time to avoid the complexity of persisting 
offsets in the first cut.

                
> Proposal to support disk based spooling
> ---------------------------------------
>
>                 Key: FLUME-1045
>                 URL: https://issues.apache.org/jira/browse/FLUME-1045
>             Project: Flume
>          Issue Type: New Feature
>    Affects Versions: v1.0.0
>            Reporter: Inder SIngh
>            Priority: Minor
>              Labels: patch
>
> 1. Problem Description 
> A sink being unavailable at any stage in the pipeline causes it to back-off 
> and retry after a while. Channel's associated with such sinks start buffering 
> data with the caveat that if you are using a memory channel it can result in 
> a domino effect on the entire pipeline. There could be legitimate down times 
> eg: HDFS sink being down for name node maintenance, hadoop upgrades. 
> 2. Why not use a durable channel (JDBC, FileChannel)?
> Want high throughput and support sink down times as a first class use-case.

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