> On April 23, 2018, 9:43 p.m., Chun-Hung Hsiao wrote:
> > src/resource_provider/manager.cpp
> > Line 222 (original), 253-259 (patched)
> > <https://reviews.apache.org/r/66311/diff/7/?file=2009012#file2009012line254>
> >
> >     If this is not called elsewhere, how about not exposing this as a 
> > function but put in it `initialize()`?

This is a private function which encapsulates a single aspect, so I feel 
keeping it would be worthwile. We already use it in `initialize` where it helps 
improve readability.

Let's keep it, dropping.


> On April 23, 2018, 9:43 p.m., Chun-Hung Hsiao wrote:
> > src/resource_provider/manager.cpp
> > Lines 266-270 (patched)
> > <https://reviews.apache.org/r/66311/diff/7/?file=2009012#file2009012line267>
> >
> >     ```
> >     // ... actor's indox, which could become large if a big ...
> >            ^^^^^^^      ^^^^^^^                    ^^
> >     ```
> >     I'm not a native speaker though, so please drop this if I'm incorrect ;)

Adopted suggestion, dropped _if_ :P


> On April 23, 2018, 9:43 p.m., Chun-Hung Hsiao wrote:
> > src/resource_provider/registrar.cpp
> > Lines 199-205 (original), 204-208 (patched)
> > <https://reviews.apache.org/r/66311/diff/7/?file=2009014#file2009014line207>
> >
> >     I just realized that I missed one thing here: if `recover()` is called 
> > before `recovered` is assigned, it will return a future that is forever 
> > pending. We can do one of the followings to resolve this:
> >     
> >     1. Revert `recovered` back to an `Option<Future<Nothing>>`, move this 
> > assignment back to `recover()` and guard it with `if (recovered.isNone())`, 
> > then call `recover()` here.
> >     
> >     
> >     2. Make `recovered` a `Promise<Nothing>` as we do in 
> > `ResourceProviderManagerProcess` above, the do
> >     ```
> >     recovered.associate(state.fetch<Registry>(NAME).then(...));
> >     ```
> >     
> >     3. Don't do anything. Since this is an internal class and the exposed 
> > `GenericRegistrar` always dispatch `recover()` to this actor, 
> > `initialize()` is guaranteed to always called before `recover()`. This 
> > relies on a convention between this actor implementation and the 
> > `GenericRegistrar` class.
> >     
> >     I think either of the 3 is okay. Personally I would prefer adjusting 
> > either this class or the `ResourceProviderManagerProcess` class to make the 
> > two consistent though.

Thanks for the careful reading. In general we seem to be fine with (3) since we 
use actors and their wrappers in a pretty canoncial way. I nevertheless fixed 
the code to use (2) semantics since it is safer in general and (in contrast 
with (1)) does not require assertions in the code.


- Benjamin


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


On April 24, 2018, 9:28 p.m., Benjamin Bannier wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/66311/
> -----------------------------------------------------------
> 
> (Updated April 24, 2018, 9:28 p.m.)
> 
> 
> Review request for mesos, Chun-Hung Hsiao, Jie Yu, and Jan Schlicht.
> 
> 
> Bugs: MESOS-8735
>     https://issues.apache.org/jira/browse/MESOS-8735
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> This patch adjusts the control flow of the resource provider manager
> so that we can in the future make use of persisted resource provider
> information. While this patch sets up the needed flow, it does not
> implement recovery logic, yet.
> 
> 
> Diffs
> -----
> 
>   src/resource_provider/manager.cpp 68e1866986bfb91bf8355099ee1f0a2a86aba39a 
>   src/resource_provider/registrar.hpp 
> 39f45b0a2a7c35bfe72a9305f5248409e4a3ef45 
>   src/resource_provider/registrar.cpp 
> 92ef9aecb1e93d10f46e53984391558f9901a60b 
>   src/tests/resource_provider_manager_tests.cpp 
> c52541bf130ccf4795b989b53331176a64a097ea 
> 
> 
> Diff: https://reviews.apache.org/r/66311/diff/8/
> 
> 
> Testing
> -------
> 
> `make check`
> 
> 
> Thanks,
> 
> Benjamin Bannier
> 
>

Reply via email to