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

Kuhu Shukla commented on TEZ-3437:
----------------------------------

Something like this :
TezProcessorContextImpl :
{code}
@Override
  public void setProgress(float progress) {
    runtimeTask.setProgress(progress);
  }
{code}
To be consistent we would need to add the following to MRTaskReporter :
{code}
if (isProcessorContext) {
      ((ProcessorContext)context).setProgress(progress);
      context.notifyProgress();
    } 
{code}

This would mean that setProgress does not auto-invoke notifyProgress after this 
change. Would that be acceptable?
Another way would have been as I mentioned above, have runtimeTask available to 
the progress thread, which is not straight forward since we use 
ProcessorContext objects (an interface) and type casting to 
{{TezProcessorContextImpl}} breaks dependency rules and would be restrictive.

> Improve synchronization and the progress report behavior for Inputs from 
> TEZ-3317
> ---------------------------------------------------------------------------------
>
>                 Key: TEZ-3437
>                 URL: https://issues.apache.org/jira/browse/TEZ-3437
>             Project: Apache Tez
>          Issue Type: Bug
>            Reporter: Kuhu Shukla
>            Assignee: Kuhu Shukla
>         Attachments: TEZ-3437.001.patch, TEZ-3437.002.patch, 
> TEZ-3437.003.patch
>
>
> Follow up from TEZ-3317 to improve the getProgress thread synchronization and 
> replace timerTasks with ScheduledExecutorService. 



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

Reply via email to