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

Robert Kanter commented on OOZIE-1319:
--------------------------------------

{quote}CoordActionInputCheckXCommand, why the comparison with now and next 
nominal time? {quote}
As for what the LAST_ONLY option was supposed to do, we never actually had any 
very specific documentation.  To try to keep this from becoming very 
complicated (both to implement and to use), at some point I made the decision 
that the LAST_ONLY will look at the nominal time of the next nominal time.  In 
essence, you can think of this like having the timeout set to the interval, but 
instead of being TIMEDOUT (which results in a "bad" end state for the job), it 
becomes SKIPPED (which results in a "good" end state for the job).  I think 
this decision makes sense anyway because if the next action is ready to run, 
the previous action should have either already ran or should not run.  

{quote}Take an example of an hourly coord and there are coord actions for 8th, 
9th, 10th and 11th hour in WAITING state. The expectation of LAST_ONLY is that 
among the ready actions(all dependencies met), it runs only the last one. But 
with now and next nominal time check, CoordActionInputCheckXCommand marks 8th, 
9th and 10th as SKIPPED and 11th will remain in WAITING state. If the 
dependencies are available late consistently, the same thing continues(in 12th 
hour, 11th will be marked SKIPPED) and so on and none of the instances for this 
coord will run.{quote}
If the dependencies are met, then shouldn't the 11th transition from WAITING to 
READY to RUNNING etc?  
But yes, I suppose if you had a job where the data was consistently late by 
over one interval of the frequency, and the timeout was set high enough, then 
it is possible that no actions will actually run.  I'm not sure of a good way 
to handle this scenario, but if you have any ideas, please file a JIRA.

> "LAST_ONLY" in execution control for coordinator job still runs all the 
> actions
> -------------------------------------------------------------------------------
>
>                 Key: OOZIE-1319
>                 URL: https://issues.apache.org/jira/browse/OOZIE-1319
>             Project: Oozie
>          Issue Type: Bug
>            Reporter: Bowen Zhang
>            Assignee: Robert Kanter
>             Fix For: trunk
>
>         Attachments: OOZIE-1319.patch, OOZIE-1319.patch, OOZIE-1319.patch, 
> OOZIE-1319.patch, OOZIE-1319.patch, OOZIE-1319.patch, OOZIE-1319.patch, 
> oozie-1319.patch
>
>
> In execute() of CoordJobGetReadyActionsJPAExecutor.java, once we retrieve the 
> top item from a "LIFO" query result, we do not discard or delete the 
> remaining items from the result list. As a result, the next time execute() is 
> invoked, we will be retrieving the next item in line. Consequently, LAST_ONLY 
> strategy will also execute all ready actions for a given coordinator job, 
> making it no different than LIFO.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to