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

Juhani Connolly commented on FLUME-865:
---------------------------------------

I have tried for a couple of hours to work the suggested changes and have run 
into some problems that lead me believe that they are not the best approach:

- Adding a policy into the runner effectively turns the SinkRunner into a 
nearly empty shell... All that is left is starting up the polling thread and 
maintaining counters. I think it would make more sense to turn SinkRunner into 
an abstract class that implements this shared logic, and then let 
implementations handle the points of contention. I would be  happy to make 
these changes

- The impact on the existing codebase is significantly larger. I do not think 
we need to add sink groups when we already have an existing configuration for 
runners.

- Neither my suggestion nor the one suggested invalidate existing configurations
  - Mine adds the functionality in the runner, allowing for sink specific  
configurations in the runner(weight/priority/etc). While the runner 
configuration code hasn't really been used much to date, it is there and can be 
leveraged well.
  - The configuration suggested by Arvind avoids some repetition, but loses 
sink specific configurations which are necessary for something like a weighted 
policy. They could be added in the group, but would result in a lot more 
repetition

With this being said, after spending some time on this, I do not think that the 
approach we have arrived at is the best one and think that turning SinkRunner 
into an abstract class, along with a factory to create the right type will 
result in a simpler patch with less impact to both existing configurations and 
the codebase. I can do this, and make the necessary modifications to verify 
configurations are valid. Let me know if this sounds ok.

I did not feel comfortable with implementing Arvinds configuration, but if we 
want to proceed with it, I would be happy to reassign the issue to someone else 
that is interested in implementing it. Please pardon my pickiness.
                
> Implement failover sink 
> ------------------------
>
>                 Key: FLUME-865
>                 URL: https://issues.apache.org/jira/browse/FLUME-865
>             Project: Flume
>          Issue Type: New Feature
>          Components: Sinks+Sources
>    Affects Versions: NG alpha 2
>            Reporter: Jarek Jarcec Cecho
>            Assignee: Juhani Connolly
>             Fix For: v1.1.0
>
>         Attachments: FLUME-865.patch
>
>
> It would be nice if the flume-ng would have ability to failover to different 
> sink in case that the active one is not responding (e.g. before failing the 
> transaction).

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