The replicated log (in src/log/) depends on leveldb to store and persist data in the replicas.
This dependency is well-contained within replica.cpp, but until it is abstracted out, it nonetheless prevents the master from being built on Windows, which in turn prevents the agent tests from being built and run on Windows.
Preliminary investigation shows that we will probably want to split this work into 2 parts:
- Temporarily remove the ability of the master to use the replicated log on Windows (in master/main.cpp). This should involve 1 conditional where we instantiate a `Log::Log`. This should be enough for us to light up the agent tests.
- Add leveldb Windows support to Mesos. This involves: adding CMake files to build leveldb source, and adding Windows-specific `port_` files that will map the platform-specific constructs of leveldb to Windows. We can take hints from leveldown and other projects, which add their own `port_` files that suit their purposes (namely, running leveldb, in node, on Windows). NOTE: the leveldb community explicitly calls out in its documentation that it is not interested in non-POSIX changes, so it is likely that this will never be inducted into the mainline leveldb codebase.