mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Shuai Lin <linshuai2...@gmail.com>
Subject Re: Review Request 43321: Speeded up SchedulerTest.Decline by advancing the clock.
Date Wed, 10 Feb 2016 14:47:15 GMT


> On Feb. 9, 2016, 2:29 p.m., Guangya Liu wrote:
> > src/tests/scheduler_tests.cpp, line 839
> > <https://reviews.apache.org/r/43321/diff/1/?file=1237111#file1237111line839>
> >
> >     Do we need Clock::settle() here to make sure the `recoverResources` messages
to be dispatched and processed completely?
> 
> haosdent huang wrote:
>     +1 for add settle
> 
> Shuai Lin wrote:
>     Hello haosdent and Guangya,
>     
>     I don't think `Clock::settle()` is needed here.
>     
>     I guess your rationale is we need to be sure the decline call is processed *before*
the next around of allocation is executed, which I totally agree. But we already have it without
`clock::settle()`, here is my understanding:
>     
>     - We advance the clock after the dispatch event of `recoverResources` is enqueued.
And by advancing the clock, we can be sure the `HierarchicalAllocatorProcess::batch()` function,
which does the allocation work, being added to the event loop.
>     
>     - Since the `recoverResources` is dispatched before `HierarchicalAllocatorProcess::batch()`,
it would always be processed first by allocator.
>     
>     What do you think?
> 
> Guangya Liu wrote:
>     I think we cannot make sure that the `HierarchicalAllocatorProcess::batch()` is always
handled before `recoverResources` for some race condition cases, you may see that most of
the `advance()` always including `Clock::settle()`
> 
> Shuai Lin wrote:
>     Hello Guangya, Could you please elaborate more on the "race condition cases"? IMHO
libprocess guarantees for a given actor, first enqueued event is also hanlded first, no?
> 
> Guangya Liu wrote:
>     My understanding is that the `decline` will involve two libprocess calls `decline`
and `recoverResources`, there might be problem if `HierarchicalAllocatorProcess::batch()`
is called after `decline` but before `recoverResources`, comments?

Let's inspect the behavior of the allocator actor:

- When `AWAIT_READY(recoverResources)` returns, we can be sure that a dispatch event of `HierarchicalAllocatorProcess::recoverResource`
for the allocator actor is already in the run queue. 
- After that we advance the clock so that a dispatch event of `HierarchicalAllocatorProcess::batch()`
is enqueued immediately (instead of waiting for a duration of `flags.allocation_interval`).
- Since the `HierarchicalAllocatorProcess::recoverResource` is enquened first, we can be sure
it's called before `HierarchicalAllocatorProcess::batch()` is called.


- Shuai


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


On Feb. 8, 2016, 4:20 a.m., Shuai Lin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/43321/
> -----------------------------------------------------------
> 
> (Updated Feb. 8, 2016, 4:20 a.m.)
> 
> 
> Review request for mesos and Alexander Rukletsov.
> 
> 
> Bugs: MESOS-4175
>     https://issues.apache.org/jira/browse/MESOS-4175
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Speeded up SchedulerTest.Decline by advancing the clock.
> 
> 
> Diffs
> -----
> 
>   src/tests/scheduler_tests.cpp 4e2db2ac40c59b9b9a97cd214b3cd1e727a4f0ad 
> 
> Diff: https://reviews.apache.org/r/43321/diff/
> 
> 
> Testing
> -------
> 
> sudo make check -j2 GTEST_FILTER='ContentType/SchedulerTest.Decline/*
> 
> ```sh
> [ RUN      ] ContentType/SchedulerTest.Decline/0
> [       OK ] ContentType/SchedulerTest.Decline/0 (114 ms)
> [ RUN      ] ContentType/SchedulerTest.Decline/1
> [       OK ] ContentType/SchedulerTest.Decline/1 (98 ms)
> ```
> 
> 
> Thanks,
> 
> Shuai Lin
> 
>


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