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