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

ASF GitHub Bot commented on STORM-837:
--------------------------------------

Github user revans2 commented on the pull request:

    https://github.com/apache/storm/pull/644#issuecomment-130315702
  
    For me internally the tests pass and everything builds.  Although the rest 
of storm seems a bit unstable with tests.
    
    I think the changes look fine +1 for merging this in.
    
    I don't think we have any split brain problems because of how we route 
messages, so the begin command and commit messages should prevent this.
    
    There are some things that I think we can do better, but are not wrong. 
    1) I am scared that the transaction file is going to put more of a load on 
the Name Node than I like.  I am mostly concerned that if we have thousands of 
instances of hdfs state creating/deleting transaction files multiple times a 
second the load is going to noticeable on a large cluster.  But this is a 
premature optimization so I would say we don't address it unless we see it as 
an actual problem.
    2) The RotationActions don't have a recovery interface, and things like the 
MoveFile action could potentially fail after successfully rotating the file 
which might leave the file in the wrong directory.
    3) I don't really like the special case for the TimedRotationAction.start.  
I would rather see start a part of the RotationAction interface, that can be 
ignored by those that don't want/need it.
    
    The last two could perhaps be a follow on JIRA.  I am fine with the code as 
is, but I would like another pair of eyes looking at this too before merging it 
in.


> HdfsState ignores commits
> -------------------------
>
>                 Key: STORM-837
>                 URL: https://issues.apache.org/jira/browse/STORM-837
>             Project: Apache Storm
>          Issue Type: Bug
>            Reporter: Robert Joseph Evans
>            Assignee: Arun Mahadevan
>            Priority: Critical
>
> HdfsState works with trident which is supposed to provide exactly once 
> processing.  It does this two ways, first by informing the state about 
> commits so it can be sure the data is written out, and second by having a 
> commit id, so that double commits can be handled.
> HdfsState ignores the beginCommit and commit calls, and with that ignores the 
> ids.  This means that if you use HdfsState and your worker crashes you may 
> both lose data and get some data twice.
> At a minimum the flush and file rotation should be tied to the commit in some 
> way.  The commit ID should at a minimum be written out with the data so 
> someone reading the data can have a hope of deduping it themselves.
> Also with the rotationActions it is possible for a file that was partially 
> written is leaked, and never moved to the final location, because it is not 
> rotated.  I personally think the actions are too generic for this case and 
> need to be deprecated.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to