Production distributed systems are challenging to formally verify, in particular when they are based on distributed protocols that are not rigorously described or fully understood. In this paper, we derive models and properties for two core distributed protocols used in eventually consistent production key-value stores such as Riak and Cassandra. We propose a novel modeling called certified program models, where complete distributed systems are captured as programs written in traditional systems languages such as concurrent C. Specifically, we model the read-repair and hinted-handoff recovery protocols as concurrent C programs, test them for conformance with real systems, and then verify that they guarantee eventual consistency, modeling precisely the specification as well as the failure assumptions under which the results hold.
翻译:产品分配系统很难正式核实,特别是当它们基于分布式协议,而协议没有得到严格描述或完全理解时。在本文件中,我们为最终一致的生产关键价值商店(如Riak和Cassandra)所使用的两个核心分配式协议提供模型和属性。我们提议了称为认证程序模型的新颖模型,将完整的分配式系统作为以传统系统语言(如同时使用的C)书写的程序进行记录。具体地说,我们把读-修理和暗示式交换回收协议作为同时使用的C程序,测试它们是否符合真实系统,然后核查它们是否保证最终的一致性,精确地模拟规格以及结果所依据的失败假设。