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

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

{quote}Previously, LAST_ONLY was running the latest ready action. The gap was 
that it was picking up even the old ready instances after that. {quote}
Actually, previously LAST_ONLY was basically the same as LIFO.  And from what I 
could tell, it hasn't worked properly for at least 3 years.  

{quote}But the current implementation changes the meaning of LAST_ONLY to run 
only the latest nominal time{quote}
The meaning of LAST_ONLY was never clearly specified.  From the documentation, 
it only had this: "discards all older materializations".  That's pretty vague 
and could mean a few different things.  After Bowen's attempt at this JIRA, and 
then my earlier attempts, it was getting too complicated and we kept find edge 
cases that we couldn't fix.  t finally decided that LAST_ONLY could be 
interpreted as essentially the same as having a timeout equal to the frequency, 
but with a "good" ending status (see [this 
comment|https://issues.apache.org/jira/browse/OOZIE-1319?focusedCommentId=14003922&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14003922]
 and later).  

{quote}Is there a usecase for the current implementation of LAST_ONLY. If there 
is{quote}
LAST_ONLY is good if you have a coordinator where you don't necessarily care 
about the specific instances that it runs, just that it runs.  Specifically, we 
had a customer who had a coordinator with LAST_ONLY and was expecting this 
behavior.  They brought down their Oozie server for a while for maintenance; 
when they brought it up, they were expecting Oozie to ignore the "missed" 
instantiations and just do the last one and continue normally after that, but 
it instead played "catch up" and started them all.  That's why I wanted to fix 
this; otherwise, nobody has complained that LAST_ONLY hasn't worked in 3 
years... I imagine most users don't even know that you can change it to LIFO or 
LAST_ONLY.  

{quote}I will add another enum which executes latest ready action and discards 
the rest.{quote}
Feel free to add another execution strategy.  [~bowenzhangusa] has already 
created a new one called NONE in OOZIE-1875.  

> "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: 4.1.0
>
>         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