You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2015/02/21 23:26:58 UTC

[8/8] mesos git commit: Updated documentation for explicit acknowledgement API change.

Updated documentation for explicit acknowledgement API change.

Review: https://reviews.apache.org/r/30978


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/33699793
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/33699793
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/33699793

Branch: refs/heads/master
Commit: 336997936f1ee49f66a2b7e1ab7ed97b4bf082ae
Parents: a7df8d9
Author: Benjamin Mahler <be...@gmail.com>
Authored: Thu Feb 12 22:34:40 2015 -0800
Committer: Benjamin Mahler <be...@gmail.com>
Committed: Sat Feb 21 14:26:33 2015 -0800

----------------------------------------------------------------------
 CHANGELOG                               | 18 ++++++++++++++----
 docs/app-framework-development-guide.md | 11 +++++++----
 docs/upgrades.md                        | 14 +++++++++++++-
 3 files changed, 34 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/33699793/CHANGELOG
----------------------------------------------------------------------
diff --git a/CHANGELOG b/CHANGELOG
index 966661a..2a54f08 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,11 +1,21 @@
 (WIP) Release Notes - Mesos - Version 0.22.0
 --------------------------------------
 
+This release contains several new features:
+
+* Support for explicitly sending status updates acknowledgements from
+  schedulers; refer to the upgrades document for upgrading schedulers.
+
 * API Changes:
-  * [MESOS-1143] - TASK_ERROR is now sent instead of TASK_LOST when rescheduling a task should not be attempted.
-  * [MESOS-2086] - Update messages.proto to use a raw bytestream instead of a string for AuthenticationStartMessage.
-  * [MESOS-2322] - All arguments can now read their values from a file, just specify
-    --name=file://path/to/file.
+  * [MESOS-1143] - TASK_ERROR is now sent instead of TASK_LOST when rescheduling
+                   a task should not be attempted.
+  * [MESOS-2086] - Update messages.proto to use a raw bytestream instead of a
+                   string for AuthenticationStartMessage.
+  * [MESOS-2322] - All arguments can now read their values from a file, just
+                   specify --name=file://path/to/file.
+  * [MESOS-2347] - The C++/Java/Python APIs have been updated to provide the
+                   ability for schedulers to explicitly send acknowledgements.
+                   TaskStatus now includes a UUID to enable this.
 
 * Deprecations:
   * [MESOS-2058] - Deprecate stats.json endpoints for Master and Slave.

http://git-wip-us.apache.org/repos/asf/mesos/blob/33699793/docs/app-framework-development-guide.md
----------------------------------------------------------------------
diff --git a/docs/app-framework-development-guide.md b/docs/app-framework-development-guide.md
index e6247b2..dd7603d 100644
--- a/docs/app-framework-development-guide.md
+++ b/docs/app-framework-development-guide.md
@@ -79,12 +79,15 @@ Declared in `MESOS_HOME/include/mesos/scheduler.hpp`
   /**
    * Invoked when the status of a task has changed (e.g., a slave is
    * lost and so the task is lost, a task finishes and an executor
-   * sends a status update saying so, etc). Note that returning from
-   * this callback _acknowledges_ receipt of this status update! If
-   * for whatever reason the scheduler aborts during this callback (or
+   * sends a status update saying so, etc). If implicit
+   * acknowledgements are being used, then returning from this
+   * callback _acknowledges_ receipt of this status update! If for
+   * whatever reason the scheduler aborts during this callback (or
    * the process exits) another status update will be delivered (note,
    * however, that this is currently not true if the slave sending the
-   * status update is lost/fails during that time).
+   * status update is lost/fails during that time). If explicit
+   * acknowledgements are in use, the scheduler must acknowledge this
+   * status on the driver.
    */
   virtual void statusUpdate(SchedulerDriver* driver,
                             const TaskStatus& status) = 0;

http://git-wip-us.apache.org/repos/asf/mesos/blob/33699793/docs/upgrades.md
----------------------------------------------------------------------
diff --git a/docs/upgrades.md b/docs/upgrades.md
index 168e761..07d19f9 100644
--- a/docs/upgrades.md
+++ b/docs/upgrades.md
@@ -8,6 +8,8 @@ This document serves as a guide for users who wish to upgrade an existing mesos
 
 ## (WIP) Upgrading from 0.21.x to 0.22.x
 
+**NOTE** The C++/Java/Python scheduler bindings have been updated. In particular, the driver can be constructed with an additional argument that specifies whether to use implicit driver acknowledgements. In `statusUpdate`, the `TaskStatus` now includes a UUID to make explicit acknowledgements possible.
+
 **NOTE**: The Authentication API has changed slightly in this release to support additional authentication mechanisms. The change from 'string' to 'bytes' for AuthenticationStartMessage.data has no impact on C++ or the over-the-wire representation, so it only impacts pure language bindings for languages like Java and Python that use different types for UTF-8 strings vs. byte arrays.
 
 ```
@@ -17,7 +19,17 @@ message AuthenticationStartMessage {
 }
 ```
 
-All Mesos arguments can now be passed using file:// to read them out of a file (either an absolute or relative path). The --credentials, --whitelist, and any flags that expect JSON backed arguments (such as --modules) behave as before, although support for just passing a absolute path for any JSON flags rather than file:// has been deprecated and will produce a warning (and the absolute path behavior will be removed in a future release).
+**NOTE** All Mesos arguments can now be passed using file:// to read them out of a file (either an absolute or relative path). The --credentials, --whitelist, and any flags that expect JSON backed arguments (such as --modules) behave as before, although support for just passing a absolute path for any JSON flags rather than file:// has been deprecated and will produce a warning (and the absolute path behavior will be removed in a future release).
+
+In order to upgrade a running cluster:
+
+* Install the new master binaries and restart the masters.
+* Install the new slave binaries and restart the slaves.
+* Upgrade the schedulers:
+  * For Java schedulers, link the new native library against the new JAR. The JAR contains API changes per the **NOTE** above. A 0.21.0 JAR will work with a 0.22.0 libmesos. A 0.22.0 JAR will work with a 0.21.0 libmesos if explicit acks are not being used. 0.22.0 and 0.21.0 are inter-operable at the protocol level between the master and the scheduler.
+  * For Python schedulers, upgrade to use a 0.22.0 egg. If constructing `MesosSchedulerDriverImpl` with `Credentials`, your code must be updated to pass the `implicitAcknowledgements` argument before `Credentials`. You may run a 0.21.0 Python scheduler against a 0.22.0 master, and vice versa.
+* Restart the schedulers.
+* Upgrade the executors by linking the latest native library / jar / egg.
 
 ## Upgrading from 0.20.x to 0.21.x