You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@reef.apache.org by "Andrew Chung (JIRA)" <ji...@apache.org> on 2016/04/28 22:40:12 UTC
[jira] [Assigned] (REEF-1364) C# Evaluator should not fire and
forget
[ https://issues.apache.org/jira/browse/REEF-1364?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrew Chung reassigned REEF-1364:
----------------------------------
Assignee: Andrew Chung
> C# Evaluator should not fire and forget
> ---------------------------------------
>
> Key: REEF-1364
> URL: https://issues.apache.org/jira/browse/REEF-1364
> Project: REEF
> Issue Type: Improvement
> Components: REEF.NET, REEF.NET Evaluator
> Reporter: Andrew Chung
> Assignee: Andrew Chung
>
> The C# Evaluator is structured as follows:
> 1. Main {{System.Threading.Tasks.Task}} runs a clock which triggers heartbeats periodically.
> 2. A {{System.Threading.Tasks.Task}} is fired and forgotten for the user's Task. It updates the status by setting a shared variable between the two {{System.Threading.Tasks.Task}}.
> What should be done is the follows:
> {{await}} two {{System.Threading.Tasks.Task}} using {{Task.WaitAny}} , one for the {{ContextManager}} which handles user's Tasks, the other for heartbeats . If either of those Tasks leaks an {{Exception}}, that means our {{Exception}} handling was not done properly in the {{System.Threading.Tasks.Task}} that threw the {{Exception}}, in which case we should fail the Evaluator.
> The {{ContextManager}} {{System.Threading.Tasks.Task}} should contain the logic for performing Context and Task-related heartbeats.
> The Evaluator {{System.Threading.Tasks.Task}} should contain the logic for performing periodic heartbeats that notify the Driver that the Evaluator is still running.
> This will immensely simplify the Exception handling logic and provide a clearer structure to the C# Evaluator.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)