Hi, We're inviting user and developer comments on a series of changes we have been working on that would modularize MasterContender and MasterDetectors. The goal is to allow the use of detector and contender implementations other than the ones that are part of Mesos source (Standalone and Zookeeper). So if one would like to use a custom leader election mechanism (e.g. one that relies on etcd, consul, etc.), it will be possible to load the implementation from a shared library. In practice, it translates to using the following command line options:
For the mesos master: --master_contender: The value of this command line option is the name of a symbol (defined in a module and referenced in the value of the --modules flag). The symbol refers to an object of type Module<MasterContender>. For an example, please see the test_contender_module.cpp file in https://reviews.apache.org/r/44289/. For the mesos master and slave: --master_detector: The value of this command line option is the name of a symbol (defined in a module and referenced in the value of the --modules flag). The symbol refers to an object of type Module<MasterDetector>. For an example, please see the test_detector_module.cpp file in https://reviews.apache.org/r/44289/. The --modules option, in addition to pointing to the shared library and symbols, can be used to pass parameters (via the Parameters class) to the modules in the form of key-value pairs. Also, please note that there is no change in the behavior of the legacy --zk and --master options. They will continue to work as before. The following changes implement this functionality and have been under review (thanks to Joseph Wu (Mesosphere) for his input): https://reviews.apache.org/r/44287/ https://reviews.apache.org/r/44288/ https://reviews.apache.org/r/44543/ https://reviews.apache.org/r/44544/ https://reviews.apache.org/r/44545/ https://reviews.apache.org/r/44546/ https://reviews.apache.org/r/44547/ https://reviews.apache.org/r/44289/ https://reviews.apache.org/r/44669/ https://reviews.apache.org/r/44670/
