You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@reef.apache.org by "Markus Weimer (JIRA)" <ji...@apache.org> on 2015/09/15 20:19:46 UTC
[jira] [Updated] (REEF-429) Implement IMRU on Group Communications
[ https://issues.apache.org/jira/browse/REEF-429?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Markus Weimer updated REEF-429:
-------------------------------
Assignee: Dhruv Mahajan (was: Markus Weimer)
> Implement IMRU on Group Communications
> --------------------------------------
>
> Key: REEF-429
> URL: https://issues.apache.org/jira/browse/REEF-429
> Project: REEF
> Issue Type: New Feature
> Components: REEF.NET
> Reporter: Markus Weimer
> Assignee: Dhruv Mahajan
>
> h2. Client-Side input
> The user of the IMRU API will have to provide:
> * A REEF Runtime Configuration. This will be used to submit the IMRU Driver.
> * Configurations for the IMRU components: Map, Reduce and Update function as well as the needed Codec configurations.
> * A Configuration that allows us to instantiate an instance of the (yet to be defined) {{IInputProviderDriver}} API.
> * A Configuration for the yet to instantiate the (yet to be defined) {{IOutputProviderDriver}}
> h2. Driver side
> h3. Constructor
> * Use {{IInputProviderDriver}} to get partition information:
> * Number of partitions
> * Partition ID
> * Partition locations (not immediately, but we will want this in the future)
> * Use that information to configure Group Communications with:
> * Data Broadcast and Reduce
> * Control Broadcast (this is to indicate to the Mappers when to close)
> h3. OnNext(DriverStarted)
> * Request the Evaluators as per the data provider's information
> * Set a timeout for this request to be satisfied. If it is not within that time, exit the Driver.
> h3. OnNext(AllocatedEvaluator)
> * For the {{UpdateFunction}}:
> * Assemble the Service Configurations for group communication and data output
> * Submit the {{UpdateTask}}
> * For the {{MapFunction}}
> * Assemble the Service Configurations for group communication and data input
> * Submit the {{MapTask}}
> h3. OnNext(CompletedTask) and OnNext(CompletedEvaluator)
> * Keep track of all Tasks and make sure that they all exit cleanly
> * Set a timer when the first task completes and fail when not all tasks complete by the end of the timer.
> h3. OnNext(FailedTask) and OnNext(FailedEvaluator)
> * Fail the Driver (for now)
> h2. UpdateTask
> h3. Constructor
> * Establish and validate data output
> * Establish and validate group communications
> h3. Call() main loop
> * Use the {{IUpdateFunction}} instance to determine whether there is a next iteration
> * If yes:
> * Send control message to the mappers, followed by the data message
> * If no:
> * Send the ending control message to the mappers
> * If the {{IUpdateFunction}} provided output, send it.
> h2. MapTask
> h3. Constructor
> * Establish and validate data input
> * Establish and validate group communications
> h3. Call() main loop
> * Wait for control message.
> * If one more iteration, call the {{IMapFunction}} with the data sent on the data broadcast.
> * If the computation is to end, exit the loop.
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)