[Lineage-driven Fault Injection](https://blog.acolyer.org/2015/03/26/lineage-driven-fault-injection/)
> Failure is always an option; in large-scale data management systems, it is practically a certainty. Fault-tolerant protocols and components are notoriously difficult to implement and debug. Worse still, choosing existing fault-tolerance mechanisms and integrating them correctly into complex systems remains an art form, and programmers have few tools to assist them.
We propose a novel approach for discovering bugs in fault-tolerant data management systems: lineage-driven fault injection. A lineage-driven fault injector reasons backwards from correct system outcomes to determine whether failures in the execution could have prevented the outcome. We present MOLLY, a prototype of lineage-driven fault injection that exploits a novel combination of data lineage techniques from the database literature and state-of-the-art satisfiability testing. If fault-tolerance bugs exist for a particular configuration, MOLLY finds them rapidly, in many cases using an
order of magnitude fewer executions than random fault injection. Otherwise, MOLLY certifies that the code is bug-free for that configuration.
(DeepL翻訳)
大規模なデータ管理システムでは、障害は常に選択肢の一つであり、事実上確実なものです。耐障害性のあるプロトコルやコンポーネントは、実装やデバッグが難しいことで有名です。さらに悪いことに、既存のフォールトトレランスメカニズムを選択し、複雑なシステムに正しく統合することは、依然として芸術的な形であり、プログラマーはそれらを支援するツールをほとんど持っていません。
我々は、フォールトトレラントデータ管理システムのバグを発見するための新しいアプローチを提案する。階層駆動型フォールトインジェクタは、システムの正しい結果から逆算して、実行中の失敗が結果を防ぐことができたかどうかを判断する。本研究では、データベースの文献から得られたデータの系列化技術と最先端の満足度テストの新しい組み合わせを利用した、系統駆動型フォールトインジェクションのプロトタイプであるMOLLYを紹介する。特定の構成に対してフォールトトレランスバグが存在する場合、MOLLYはそのバグを迅速に発見する。
ランダムフォールトインジェクションよりも実行回数が桁違いに少ない。そうでなければ、MOLLYはそのコードがその設定のためのバグフリーであることを証明します。
[[2015__SIGMOD__Lineage-driven Fault Injection__translations]]