We present a novel dynamic reconfiguration protocol for the MongoDB replication system that extends and generalizes the single server reconfiguration protocol of the Raft consensus algorithm. Our protocol decouples the processing of configuration changes from the main database operation log, which allows reconfigurations to proceed in cases when the main log is prevented from processing new operations. Additionally, this decoupling allows for configuration state to be managed by a logless replicated state machine, by optimizing away the explicit log and storing only the latest version of the configuration, avoiding the complexities of a log-based protocol. We provide a formal specification of the protocol along with results from automated verification of its safety properties. We also provide an experimental evaluation of the protocol benefits, showing how reconfigurations are able to quickly restore a system to healthy operation in scenarios where node failures have stalled the main operation log.
翻译:我们为MongoDB复制系统提出了一个新颖的动态重组协议,该协议将拉夫特共识算法的单一服务器重组协议扩展和概括。我们的协议将配置变化的处理与主数据库操作日志脱钩,从而允许在主日志无法处理新操作的情况下进行重组。此外,这种脱钩使得配置状态能够由无日志复制的国有机器管理,方法是优化明确的日志,仅储存最新版本的配置,避免基于日志的协议的复杂性。我们提供了协议的正式规格,以及其安全特性自动核查的结果。我们还提供了协议效益的实验性评估,表明在节点故障使主要运行日志停滞的情况下,重组能够迅速恢复系统的健康运行。