Failure Diagnosis for Distributed Systems Using Targeted Fault Injection

针对分布式系统的特点提出了Target Fault Injection,通过利用分布式组件的执行流知识来控制注入位置。

比如当执行流是在处理用户请求时调用的系统调用或库调用(跨越多个组件)的序列时,可以跟踪流程,并在流程中的任意点注入故障。 这种机制使我们能够在故障注入活动中系统地覆盖故障空间。

Overview

有一些部分没看

  • Failure Diagnosis Workflow
  • Failure Profile Database Construction
  • Fault Localization

ENABLING TECHNIQUES

Processing Flow Discovery

一共有两种情况

  • 每来一个请求,产生一个新的线程处理,然后发送一个response
    • 实现:
      • 在收到消息后,可以通过观察线程的ID来追踪因果关系,直到一个线程发出新的消息。
      • 通过监控与网络活动相关的系统调用来实现,比如send和recv。
      • 在检测到这些系统调用时,我们记录调用者线程的线程ID和套接字信息(本地IP地址,端口)和(远程IP地址,端口)。
      • 线程ID用于绑定从recv到send的事件(即在组件内),而套接字信息用于绑定从send到revc的事件(即跨组件)。
  • 异步消息队列
    • 查看消息内容以识别消息标识符,并将传入和传出的消息关联起来

最终工程实现:LD_PRELOAD

Failure Profile Representation and Comparison

Targeted Fault Injection