mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benjamin Bannier <benjamin.bann...@mesosphere.io>
Subject Re: Review Request 61183: Triggered 'UpdateSlaveMessage' when 'ResourceProviderManager' updates.
Date Mon, 31 Jul 2017 17:28:38 GMT


> On July 29, 2017, 12:20 a.m., Jie Yu wrote:
> > src/slave/slave.cpp
> > Lines 6496 (patched)
> > <https://reviews.apache.org/r/61183/diff/1/?file=1784503#file1784503line6496>
> >
> >     I think we can still process `UPDATE_TOTAL_RESOURCES` message in DISCONNECTED
state by updating slave's internal data structure about total resources. We just need to send
that new total to the master once the slave is in RUNNING state.
> >     
> >     However, we should only send the message to the master if slave is in RUNNING
state. This logic is indeed very similar to the oversubscription logic. Take a look at the
logics there.

Good point about being able to consume the message at least on the agent side -- I have updated
the code.

I also now use the same log message when an update is send, regardless on whether the message
was generated in direct message handling or on reregistrated.

I added an assertion for `state == RUNNING` to the sending in reregistered agent state; as
we do not periodically poll the resource provider manager we rely on the fact that every update
reaches the master. This is different for oversubscription where we poll the resource estimator
periodically.


- Benjamin


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/61183/#review181736
-----------------------------------------------------------


On July 31, 2017, 5:08 p.m., Benjamin Bannier wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/61183/
> -----------------------------------------------------------
> 
> (Updated July 31, 2017, 5:08 p.m.)
> 
> 
> Review request for mesos, Jie Yu and Jan Schlicht.
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> The agent's resource provider manager sends a
> 'ResourceProviderMessage' when its managed resources change. This
> commit adds handling in the agent so that an 'UpdateSlaveMessage' is
> sent to the master to update the total resource available on the
> agent. We also store this total in the agent memory so that it can be
> resent on agent resubscription.
> 
> In order to provide push-like handling of the resource provider
> manager's message queue, we chain recursive calls to the handler for
> continuous processing. Initially, processing is kicked off from
> 'Slave::initialize'. In this simple implementation we e.g., provide no
> direct way to stop processing of messages, yet, but it can be achieved
> by e.g., replacing the manager with a new instance (this would also
> require updating routes).
> 
> Since the agent can only send an 'UpdateSlaveMessage' when it is
> registered with a master, a simple back-off of 5 s is implemented which
> will defer processing of a ready message should the agent not yet have
> registered.
> 
> To facilitate logging we add a stringification function for
> 'ResourceProviderMessage's.
> 
> 
> Diffs
> -----
> 
>   src/resource_provider/message.hpp 916926bf278de9ed919384a82a452d3ced06bd04 
>   src/slave/slave.hpp 1fe93dab1b2bef24721cc1bcffebe1b259e96d79 
>   src/slave/slave.cpp 7381530515f86faf4c3e8f82bcd9483f6cf0498b 
>   src/tests/slave_tests.cpp a089cc47eae41cd6baeffd3f4a7ee7c7984aacbd 
> 
> 
> Diff: https://reviews.apache.org/r/61183/diff/2/
> 
> 
> Testing
> -------
> 
> `make check`
> 
> 
> Thanks,
> 
> Benjamin Bannier
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message