> On Dec. 10, 2013, 6:38 a.m., Benjamin Hindman wrote:
> > src/log/log.cpp, line 173
> > <https://reviews.apache.org/r/15802/diff/5/?file=394481#file394481line173>
> >
> > Rather than holding on to the LogProcess*, how about we make
> > Log::recover() return a Future<Shared<Replica>> and that's how we get the
> > replica. That way, instead of doing process->replica-> we can just have a
> > Shared<Replica>. Then LogProcess::finalize doesn't need to "wait" for
> > Readers as your comment suggests above (or writers, as we'll see below).
> > And does LogProcess::finalize really need to wait for the Shared<Replica>
> > to be owned?
The reason is because I don't want others to be able to access the log (and the
underlying log db file) after the Log instance has been destroyed.
For example:
Log* log1 = new Log("/var/libs/log");
...
delete log1;
Log* log2 = new Log("/var/libs/log");
...
When log1 is being deleted, I wanna make sure no one can write the db file
'/var/libs/log' after that. If we don't wait for Replica to be owned, then,
it's likely someone might still be able to read the file while others might
start writing it (e.g. log2).
- Jie
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/15802/#review29966
-----------------------------------------------------------
On Dec. 5, 2013, 7:28 p.m., Jie Yu wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15802/
> -----------------------------------------------------------
>
> (Updated Dec. 5, 2013, 7:28 p.m.)
>
>
> Review request for mesos, Benjamin Hindman, Ben Mahler, Vinod Kone, and Jiang
> Yan Xu.
>
>
> Bugs: MESOS-736
> https://issues.apache.org/jira/browse/MESOS-736
>
>
> Repository: mesos-git
>
>
> Description
> -------
>
> This is the last patch of a series of patches that implement catch-up
> replicated log.
>
> Here is summary of this patch:
> 1) Introduced RecoverRequest/RecoverResponse.
> 2) Used Metadata in replica code.
> 3) A 2-phase empty log start-up algorithm.
> 4) Added a test to test two competing recover processes.
>
> This is a joint work with Yan Xu.
>
>
> Diffs
> -----
>
> src/Makefile.am abef3d2
> src/java/jni/org_apache_mesos_Log.cpp 36c636d
> src/log/coordinator.hpp 3f6fb7c
> src/log/coordinator.cpp 6e6466f
> src/log/log.hpp 77edc7a
> src/log/log.cpp d057925
> src/log/recover.hpp PRE-CREATION
> src/log/recover.cpp PRE-CREATION
> src/log/replica.hpp d1f5ead
> src/log/replica.cpp 82c2157
> src/messages/log.proto e6460ab
> src/tests/log_tests.cpp ff5f86c
>
> Diff: https://reviews.apache.org/r/15802/diff/
>
>
> Testing
> -------
>
> make check
>
> bin/mesos-tests.sh
> --gtest_filter=LogTest.*:ReplicaTest.*:CoordinatorTest.*:LogZooKeeperTest.*
> --gtest_repeat=100
>
>
> Thanks,
>
> Jie Yu
>
>