Maelstrom是一个通过自己编写来学习分布式系统的工作台。它使用Jepsen测试库来测试分布式系统的实现。Maelstrom为“交换集”或“交易键值存储”等事物提供标准化测试,并让用户通过编写可以执行的测试套件来学习分布式系统。
Maelstrom为不同类型的分布式系统提供一系列测试,通过STDIN和STDOUT建立在简单的JSON协议之上。用户用任何语言编写服务器。Maelstrom运行这些服务器,向它们发送请求,通过模拟网络路由消息,并检查客户端是否遵守预期行为。
Maelstrom的工具允许用户试验模拟延迟和消息丢失。每个测试都包括并发结构的时间线可视化、消息交换的统计数据、时间序列图以了解延迟、可用性和吞吐量如何响应不断变化的条件,以及Lamport图,以便您可以准确了解消息如何流经您的系统。Maelstrom的检查器可以验证复杂的安全属性直至严格的可串行化,并生成直观的、最小的一致性异常示例。
Maelstrom可以帮助您对系统如何响应不同的集群大小、网络拓扑、延迟分布和网络分区等故障进行建模。提供模拟服务,可以使用这些服务来构建更复杂的系统。
Maelstrom速度相当快,可以处理25个以上节点的模拟集群。在48路Xeon上,它可以使用所有内核的94%,每秒推送超过60,000条网络消息。
评论