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