You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by vi...@apache.org on 2016/12/16 19:24:26 UTC
[3/5] mesos git commit: Updated agent to use BoundedHashMap.
Updated agent to use BoundedHashMap.
Review: https://reviews.apache.org/r/54180/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/c38550ab
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/c38550ab
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/c38550ab
Branch: refs/heads/master
Commit: c38550abef838f3769a26322584f60cbe300994b
Parents: b6ce8c9
Author: Neil Conway <ne...@gmail.com>
Authored: Fri Dec 16 14:23:42 2016 -0500
Committer: Vinod Kone <vi...@gmail.com>
Committed: Fri Dec 16 14:23:42 2016 -0500
----------------------------------------------------------------------
src/slave/http.cpp | 10 +++++-----
src/slave/slave.cpp | 25 ++++++++++++-------------
src/slave/slave.hpp | 3 ++-
3 files changed, 19 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/c38550ab/src/slave/http.cpp
----------------------------------------------------------------------
diff --git a/src/slave/http.cpp b/src/slave/http.cpp
index e1cea46..b6e2d4f 100644
--- a/src/slave/http.cpp
+++ b/src/slave/http.cpp
@@ -1242,8 +1242,8 @@ Future<Response> Slave::Http::state(
"completed_frameworks",
[this, &frameworksApprover, &executorsApprover, &tasksApprover](
JSON::ArrayWriter* writer) {
- foreach (const Owned<Framework>& framework,
- slave->completedFrameworks) {
+ foreachvalue (const Owned<Framework>& framework,
+ slave->completedFrameworks) {
// Skip unauthorized frameworks.
if (!approveViewFrameworkInfo(
frameworksApprover, framework->info)) {
@@ -1317,7 +1317,7 @@ agent::Response::GetFrameworks Slave::Http::_getFrameworks(
->CopyFrom(framework->info);
}
- foreach (const Owned<Framework>& framework, slave->completedFrameworks) {
+ foreachvalue (const Owned<Framework>& framework, slave->completedFrameworks) {
// Skip unauthorized frameworks.
if (!approveViewFrameworkInfo(frameworksApprover, framework->info)) {
continue;
@@ -1394,7 +1394,7 @@ agent::Response::GetExecutors Slave::Http::_getExecutors(
frameworks.push_back(framework);
}
- foreach (const Owned<Framework>& framework, slave->completedFrameworks) {
+ foreachvalue (const Owned<Framework>& framework, slave->completedFrameworks) {
// Skip unauthorized frameworks.
if (!approveViewFrameworkInfo(frameworksApprover, framework->info)) {
continue;
@@ -1508,7 +1508,7 @@ agent::Response::GetTasks Slave::Http::_getTasks(
frameworks.push_back(framework);
}
- foreach (const Owned<Framework>& framework, slave->completedFrameworks) {
+ foreachvalue (const Owned<Framework>& framework, slave->completedFrameworks) {
// Skip unauthorized frameworks.
if (!approveViewFrameworkInfo(frameworksApprover, framework->info)) {
continue;
http://git-wip-us.apache.org/repos/asf/mesos/blob/c38550ab/src/slave/slave.cpp
----------------------------------------------------------------------
diff --git a/src/slave/slave.cpp b/src/slave/slave.cpp
index 68bdaa0..a7a3a39 100644
--- a/src/slave/slave.cpp
+++ b/src/slave/slave.cpp
@@ -1445,7 +1445,8 @@ void Slave::doReliableRegistration(Duration maxBackoff)
}
// Add completed frameworks.
- foreach (const Owned<Framework>& completedFramework, completedFrameworks) {
+ foreachvalue (const Owned<Framework>& completedFramework,
+ completedFrameworks) {
VLOG(1) << "Reregistering completed framework "
<< completedFramework->id();
@@ -1618,17 +1619,15 @@ void Slave::run(
framework->checkpointFramework();
}
- // Is this same framework in completedFrameworks? If so, move the completed
- // executors to this framework and remove it from that list.
- // TODO(brenden): Consider using stout/cache.hpp instead of boost
- // circular_buffer.
- for (auto it = completedFrameworks.begin(); it != completedFrameworks.end();
- ++it) {
- if ((*it)->id() == frameworkId) {
- framework->completedExecutors = (*it)->completedExecutors;
- completedFrameworks.erase(it);
- break;
- }
+ // Does this framework ID already exist in `completedFrameworks`?
+ // If so, move the completed executors of the old framework to
+ // this new framework and remove the old completed framework.
+ if (completedFrameworks.contains(frameworkId)) {
+ Owned<Framework>& completedFramework =
+ completedFrameworks.at(frameworkId);
+
+ framework->completedExecutors = completedFramework->completedExecutors;
+ completedFrameworks.erase(frameworkId);
}
}
@@ -4894,7 +4893,7 @@ void Slave::removeFramework(Framework* framework)
frameworks.erase(framework->id());
// Pass ownership of the framework pointer.
- completedFrameworks.push_back(Owned<Framework>(framework));
+ completedFrameworks.set(framework->id(), Owned<Framework>(framework));
if (state == TERMINATING && frameworks.empty()) {
terminate(self());
http://git-wip-us.apache.org/repos/asf/mesos/blob/c38550ab/src/slave/slave.hpp
----------------------------------------------------------------------
diff --git a/src/slave/slave.hpp b/src/slave/slave.hpp
index be72ba9..03860b5 100644
--- a/src/slave/slave.hpp
+++ b/src/slave/slave.hpp
@@ -52,6 +52,7 @@
#include <process/protobuf.hpp>
#include <process/shared.hpp>
+#include <stout/boundedhashmap.hpp>
#include <stout/bytes.hpp>
#include <stout/linkedhashmap.hpp>
#include <stout/hashmap.hpp>
@@ -761,7 +762,7 @@ private:
hashmap<FrameworkID, Framework*> frameworks;
- boost::circular_buffer<process::Owned<Framework>> completedFrameworks;
+ BoundedHashMap<FrameworkID, process::Owned<Framework>> completedFrameworks;
mesos::master::detector::MasterDetector* detector;