The IndexBuildsCoordinator is for managing index builds across a replica set. It links in networking and has a ThreadPool on which to run index builds.
The embedded server cannot link to networking code, nor can it use ThreadPools. Therefore, we must make a simple class that builds indexes via the IndexBuildsManager. There is no need for asynchronous threads on an embedded server, which is effectively a standalone without networking or asynchronously running threads.
I haven't looked into whether it is possible to just make a separate class to link into embedded, or inheritance is necessary, necessitating splitting the existing IndexBuildsCoordinator into and interface and implementation. I'd guess inheritance is necessary, since commands in the standalone library are probably all included in the greater repl inclusive libraries? Shims are also a potential tool, I haven't explored that idea, either.
- is depended on by
-
SERVER-38396 Improve the IndexBuildsCoordinator unit testing after it was made into an interface with two implementations
- Closed