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



src/state/log.cpp
<https://reviews.apache.org/r/17423/#comment62794>

    "writer.append" could potentially block forever if there is, for example, a 
network blip (i.e. the coordinator will wait for a quorum of responses from 
replicas, but is not able to get that due to network issue).
    
    In that case, the sequence of callbacks will be blocked. We may wanna 
introduce a timeout for writer.append/truncate (even for writer.start).
    
    Whenever timeout is introduced, there is a problem of async cancellation. 
In case of a timeout, to ensure the sequence semantics, you wanna make sure 
that all operations (e.g. associated with writer.append) are properly cancelled 
before failing the future so that the next operation will not overlap with the 
previous operation.
    
    Maybe for this case, it's fine because the underlying Paxos layer can 
tolerate overlapping operations and won't cause any consistency issue even if 
operations are indeed overlapped (very rare situation).


- Jie Yu


On Jan. 27, 2014, 9:33 p.m., Benjamin Hindman wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17423/
> -----------------------------------------------------------
> 
> (Updated Jan. 27, 2014, 9:33 p.m.)
> 
> 
> Review request for mesos, Ben Mahler and Jie Yu.
> 
> 
> Repository: mesos-git
> 
> 
> Description
> -------
> 
> This is done in C++11, I've converted to C++03 in 
> https://reviews.apache.org/r/17424.
> 
> Note that this does not implement diffs but that's probably okay for our 
> initial use case. This also does not implement caching so all state entries 
> are stored in memory, which is also okay for our initial use case. Finally, 
> this does not implement defragmentation which again is probably okay for our 
> use case. These are captured as TODOs in the code.
> 
> Also, this uses a 'sequence' operation which will be replaced with work being 
> done by Jie Yu.
> 
> 
> Diffs
> -----
> 
>   src/Makefile.am d58b46e99e0a041cf2a26abe44bbd1504a9539c0 
>   src/messages/state.proto 7f7a8a505d6f24b01fec0c3ad47b0e15b2b17ffa 
>   src/state/log.hpp PRE-CREATION 
>   src/state/log.cpp PRE-CREATION 
>   src/tests/log_tests.cpp e493af4f2f2435efe168d07acd267b61afd37fe4 
>   src/tests/state_tests.cpp 03c538861a88d3a07e2468dce5553eeb3acc9243 
> 
> Diff: https://reviews.apache.org/r/17423/diff/
> 
> 
> Testing
> -------
> 
> make check
> 
> 
> Thanks,
> 
> Benjamin Hindman
> 
>

Reply via email to