Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CAY-909] Notify client job progress #1081

Merged
merged 20 commits into from
Apr 5, 2017
Merged

Conversation

JunhoeKim
Copy link
Contributor

Closed #909
This PR implements a messaging channel between Dolphin driver and client. so Dolphin driver can notify progress information to client in each epoch time.

@wynot12
Copy link
Contributor

wynot12 commented Mar 28, 2017

@JunhoeKim The test has failed. Could you check it?

@wynot12
Copy link
Contributor

wynot12 commented Mar 28, 2017

I'm attaching error logs of Jenkins.
It looks that you've been working in a stale branch, and it makes your new component incompatible to newly updated changes.

17:56:46 [INFO] -------------------------------------------------------------
17:56:46 [INFO] -------------------------------------------------------------
17:56:46 [ERROR] COMPILATION ERROR : 
17:56:46 [INFO] -------------------------------------------------------------
17:56:46 [ERROR] /var/lib/jenkins/workspace/Cay/dolphin/async/src/main/java/edu/snu/cay/dolphin/async/AsyncDolphinLauncher.java:[19,40] package edu.snu.cay.dolphin.async.client does not exist
17:56:46 [ERROR] /var/lib/jenkins/workspace/Cay/dolphin/async/src/main/java/edu/snu/cay/dolphin/async/AsyncDolphinLauncher.java:[219,52] cannot find symbol
17:56:46   symbol:   class ProgressMessageHandler
17:56:46   location: class edu.snu.cay.dolphin.async.AsyncDolphinLauncher
17:56:46 [ERROR] /var/lib/jenkins/workspace/Cay/dolphin/async/src/main/java/edu/snu/cay/dolphin/async/AsyncDolphinLauncher.java:[218,75] package DolphinDriverLauncher does not exist
17:56:46 [ERROR] /var/lib/jenkins/workspace/Cay/dolphin/async/src/main/java/edu/snu/cay/dolphin/async/AsyncDolphinLauncher.java:[217,72] package DolphinDriverLauncher does not exist
17:56:46 [ERROR] /var/lib/jenkins/workspace/Cay/dolphin/async/src/main/java/edu/snu/cay/dolphin/async/AsyncDolphinLauncher.java:[216,75] package DolphinDriverLauncher does not exist
17:56:46 [ERROR] /var/lib/jenkins/workspace/Cay/dolphin/async/src/main/java/edu/snu/cay/dolphin/async/AsyncDolphinLauncher.java:[215,73] package DolphinDriverLauncher does not exist
17:56:46 [ERROR] /var/lib/jenkins/workspace/Cay/dolphin/async/src/main/java/edu/snu/cay/dolphin/async/AsyncDolphinLauncher.java:[214,35] cannot find symbol
17:56:46   symbol:   variable ON_JOB_SUBMITTED
17:56:46   location: class org.apache.reef.client.ClientConfiguration
17:56:46 [ERROR] /var/lib/jenkins/workspace/Cay/dolphin/async/src/main/java/edu/snu/cay/dolphin/async/AsyncDolphinLauncher.java:[214,75] package DolphinDriverLauncher does not exist
17:56:46 [ERROR] /var/lib/jenkins/workspace/Cay/dolphin/async/src/main/java/edu/snu/cay/dolphin/async/AsyncDolphinLauncher.java:[222,37] cannot find symbol

@JunhoeKim
Copy link
Contributor Author

Sorry, I'll check it.

@wynot12 wynot12 requested review from sj6077 and wynot12 and removed request for sj6077 March 29, 2017 05:23
@yunseong
Copy link
Contributor

Thanks @JunhoeKim for the PR! As we described in #1084, we need to update REEF at the Jenkins's local repository. Let's handle the issue this afternoon. Thanks!

@yunseong
Copy link
Contributor

!rebuild

@yunseong yunseong closed this Mar 30, 2017
@yunseong yunseong reopened this Mar 30, 2017
@yunseong
Copy link
Contributor

Sorry, I closed this PR accidently. The build should be successful as I've rebuilt REEF at Jenkins's local repository. Let's see how it goes. :)

@wynot12
Copy link
Contributor

wynot12 commented Mar 30, 2017

Great :)
Let's update our own development environment, too!

@wynot12
Copy link
Contributor

wynot12 commented Mar 30, 2017

I'll take a look at the PR tonight :)

Copy link
Contributor

@wynot12 wynot12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall it looks good :)

I've left several minor comments.
Please take a look!

import java.util.logging.Logger;

/**
* A launcher for Dolphin driver.
Copy link
Contributor

@wynot12 wynot12 Mar 30, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This class is not specific for Dolphin.
Could you rewrite the comment?

You may use the comment of REEF's DriverLauncher and specify what you modified.

return this.status;
}

/** Update job status and notify the waiting thread. */
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Though it's copied from REEF's code, let's make it in the right form by breaking lines.

/**
* Handler of {@link JobMessage} from driver.
* It logs progress report to console.
*/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix the indentation.

* See the License for the specific language governing permissions and
* limitations under the License.
*/
package edu.snu.cay.common;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's put it into edu.snu.cay.common.client package.

@@ -143,7 +142,6 @@ public static LauncherStatus launch(final String jobName,
basicParameterInjector.getNamedInstance(LocalRuntimeMaxNumEvaluators.class),
basicParameterInjector.getNamedInstance(JVMHeapSlack.class)) :
getYarnRuntimeConfiguration(basicParameterInjector.getNamedInstance(JVMHeapSlack.class));

Copy link
Contributor

@wynot12 wynot12 Mar 30, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you undo this change, which is irrelevant from the PR?

@@ -72,6 +72,11 @@
*/
private int globalMinimumClock;

/**
* The list of EventHandler about progress update.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The list of listeners for the update of {@link #globalMinimumClock}.

/**
* The list of EventHandler about progress update.
*/
private final List<EventHandler<Integer>> progressUpdateCallbacks = new ArrayList<>();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better to rename it as clockUpdateListeners.

* Add listener to progress update list.
* @param callback when #globalMinimumClock increases, callback functions in list are called.
*/
public void addProgressUpdateListener(final EventHandler<Integer> callback) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's rename it as addClockUpdateListener.

@JunhoeKim
Copy link
Contributor Author

Thank you, I'll check and resolve them.

@wynot12
Copy link
Contributor

wynot12 commented Apr 4, 2017

@JunhoeKim Is it ready for review?
Then I'll take a final look in this afternoon.

@wynot12 wynot12 force-pushed the notify-client-job-progress branch from 3513280 to 6e0e9aa Compare April 4, 2017 09:14
@wynot12
Copy link
Contributor

wynot12 commented Apr 4, 2017

LGTM. I'll merge it once test pass.

@wynot12
Copy link
Contributor

wynot12 commented Apr 4, 2017

It looks that Jenkins uses jar files of PR branches.
Let's fix this build environment issue later.

@wynot12 wynot12 merged commit 89eb3c2 into master Apr 5, 2017
@wynot12 wynot12 deleted the notify-client-job-progress branch April 5, 2017 13:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants