mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anand Mazumdar" <mazumdar.an...@gmail.com>
Subject Re: Review Request 42273: Modified scheduler library to move the queue contents before `async`.
Date Thu, 14 Jan 2016 16:16:18 GMT


> On Jan. 14, 2016, 9:03 a.m., Benjamin Bannier wrote:
> > Was the decision to optimize here driven by profiling?
> > 
> > Given the proposed implementation I wonder if this was worth the risk. I can only
see this being called for single element `queues` of `Events` which should not be too expensive
to copy, especially given how little we worry about e.g., creating temporary `strings` elsewhere.

My main motivation for making the change was driven by the semantics of how the callback function
processes the data here:

```
void received(queue<Event> events)
  {
    while (!events.empty()) {
      Event event = events.front();
      events.pop();

      switch (event.type()) {
      }
  }
```

Since, the callback function always has to invoke a `.pop()`. The argument `queue<Event>
events` has to be passed on by value. So, we were effectively, copying the same object twice.


Also, after performing the `move`, we were invoking the assignment operation that did not
have a precondition associated with it for `std::queue` and hence seemed safe to make the
change. But, the queue can at best have a few events (at max). In most cases being `== 1`
as you pointed out, except for the cases where the callback function takes some time and we
queued more events from the master in the interim. 

I am discarding this for now. We can always revisit this later.


- Anand


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


On Jan. 13, 2016, 11:06 p.m., Anand Mazumdar wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/42273/
> -----------------------------------------------------------
> 
> (Updated Jan. 13, 2016, 11:06 p.m.)
> 
> 
> Review request for mesos and Vinod Kone.
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> This trivial fix invokes `std::move` on the `queue` object to not perform a copy before
invoking the `async(..)` call.
> 
> 
> Diffs
> -----
> 
>   src/scheduler/scheduler.cpp a17872b46ec600e0fae6c43247ccb63f5ee55ac0 
> 
> Diff: https://reviews.apache.org/r/42273/diff/
> 
> 
> Testing
> -------
> 
> make check
> 
> 
> Thanks,
> 
> Anand Mazumdar
> 
>


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