论文标题
分布式执行索引
Distributed Execution Indexing
论文作者
论文摘要
该过程中的报告提出了分布式执行索引的设计和部分评估,这是一种微服务应用程序的技术,可以精确地识别服务间远程过程调用(RPC)的动态实例。这种索引方案对于请求级的故障注入技术至关重要,该技术旨在在微服务应用程序中自动找到故障处理错误。分配的执行索引能够对请求级故障进行粒度规定,同时还可以在多个执行过程中确立多个执行范围的范围,同时在多个执行过程中建立了一个系统的范围,以进行整体范围。索引,可以以不同的方式来识别单个服务中的RPC的不同方式进行参数化。我们确定一种实例化,该实例化在存在各种程序结构的复杂性(例如循环,功能间接和调度非确定性)等各种程序结构复杂性的情况下保持精度。我们证明,该特定的实例化解决了请求级故障注射中最先进的差距,并证明它们都是分布式执行索引的特殊情况。我们讨论了实施挑战,并提供了分布式执行索引的实现,作为\ filibuster {}的扩展,这是JAVA编程语言的微服务应用程序的弹性测试工具,该工具支持GRPC和HTTP的故障注入。
This work-in-progress report presents both the design and partial evaluation of distributed execution indexing, a technique for microservice applications that precisely identifies dynamic instances of inter-service remote procedure calls (RPCs). Such an indexing scheme is critical for request-level fault injection techniques, which aim to automatically find failure-handling bugs in microservice applications.Distributed execution indexes enable granular specification of request-level faults, while also establishing a correspondence between inter-service RPCs across multiple executions, as is required to perform a systematic search of the fault space.In this paper, we formally define the general concept of a distributed execution index, which can be parameterized on different ways of identifying an RPC in a single service. We identify an instantiation that maintains precision in the presence of a variety of program structure complexities such as loops, function indirection, and concurrency with scheduling nondeterminism. We demonstrate that this particular instantiation addresses gaps in the state-of-the-art in request-level fault injection and show that they are all special cases of distributed execution indexing. We discuss the implementation challenges and provide an implementation of distributed execution indexing as an extension of \Filibuster{}, a resilience testing tool for microservice applications for the Java programming language, which supports fault injection for gRPC and HTTP.