mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Zhitao Li <zhitaoli...@gmail.com>
Subject Re: Review Request 49518: Initial snapshot for v1 master event stream.
Date Tue, 05 Jul 2016 20:09:52 GMT


> On July 5, 2016, 7:34 p.m., Vinod Kone wrote:
> > src/master/http.cpp, line 609
> > <https://reviews.apache.org/r/49518/diff/4/?file=1436049#file1436049line609>
> >
> >     hmm. the weird part is that "Added subscriber.." log message will be printed
after the snapshot is sent.
> >     
> >     also sending SUBSCRIBED (in the future) after SNAPSHOT sounds weird.
> >     
> >     the more i think about it, the more i'm leaning towards renaming SNAPSHOT to
SUBSCRIBED and pushing this logic of getting state inside `Master::subscribe()`.
> >     
> >     something like...
> >     
> >     ```
> >     Master::subscribe()
> >     {
> >        return _getState()
> >          .then([] {
> >          
> >            // Send SUBSCRIBED.
> >          })
> >     }
> >     
> >     ```
> >     
> >     thoughts? cc @anand
> 
> Zhitao Li wrote:
>     I like the idea of using `SUBSCRIBED` event and embed snapshot as an optional field
in the response. The public API is probably something like:
>     
>     ```
>     message Event {
>       enum Type {
>         SUBSCRIBED = 1;
>         ...
>       }
>       
>       // This is the first event that is sent after a client is subscribed.
>       // Further updates to the cluster state are sent as separate events on the stream.
>       message Subscribed {
>         // Snapshot of the entire cluster state.
>         // This might be filterable in the future.
>         optional Response.GetStates snapshot = 1;
>         ...
>       }
>     }
>     ```
>     
>     The only concern I have about moving snapshot sending to `Master::subscribe()` is
that `Master` class needs to access the current private function `Master::Http::_getState()`.
If that is outweighted by the ordering of logging, then I can a shot.

In fact, if the only concern you have the order of logging, moving `master->subscribe(http);`
before `http.send<mesos::master::Event, v1::master::Event>(event);` should be a simpler
and valid fix, because this entire callback is executed in `Master`'s actor so no events can
be sent incorrectly at the same time, so any `Event` sent by `subscribers` is still guaranteed
after this send.


- Zhitao


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


On July 4, 2016, 4:06 a.m., Zhitao Li wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/49518/
> -----------------------------------------------------------
> 
> (Updated July 4, 2016, 4:06 a.m.)
> 
> 
> Review request for mesos, Anand Mazumdar, haosdent huang, and Vinod Kone.
> 
> 
> Bugs: MESOS-5498
>     https://issues.apache.org/jira/browse/MESOS-5498
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Initial snapshot for v1 master event stream.
> 
> 
> Diffs
> -----
> 
>   include/mesos/master/master.proto d06258e9fd39c7eefd8ecd394e3bdfb888479b1e 
>   include/mesos/v1/master/master.proto b7cb6fdf2e4f34a11d326ac3ad3ec26525f8f343 
>   src/master/http.cpp 7b2f77b9264242f31ab62eb9db7c621a1b8aa2fe 
>   src/tests/api_tests.cpp e2d8bf591667ec9d8c609e55a424b55561892b5f 
> 
> Diff: https://reviews.apache.org/r/49518/diff/
> 
> 
> Testing
> -------
> 
> Updated test and make check.
> 
> 
> Thanks,
> 
> Zhitao Li
> 
>


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