著者/所属機関
Nipn Arora (Dropbox) et al.
出典
ASE 2018
目的
Service-Oriented Architecure (SOA) のような分散システムにおけるバグの再現
問題
分散システムでは下記特性のためデバッグが難しい
- 再現にオーケストレーション環境とworkloadが必要
- システムのダウンタイムを減らすため迅速な修正が必要
バグ再現のための既存手法としてRecord & Replayがあるが,特にSOAではoverheadが大きく実用性低
また監視はoverheadは無いが,種々のバグを再現するためには必要な情報の種類が増えていくためログ取得困難
解法
- 本番環境に影響しないデバッグ環境の複製+通信履歴のキャプチャ&再現技術
- 220の実バグを分析し,SOAのバグはネットワーク通信をキャプチャすることで再現可能という知見を取得,当該知見に基づき提案手法を策定
- (1)本番環境を動作させつつコンテナをクローン,(2)入力となる通信を複製,(3)出力する通信を管理,の3機能を開発
- ツール化して公開済み
- Programming-Systems-Lab/Parikshan
Resarch Question & 結果
RQ1: 環境複製の時間と本番環境への影響は?
- write-intensiveなアプリだと本番環境の停止時間が伸びる
- Webサーバだと2-3 sec,App/DBサーバだと10-11 secの停止
RQ2: 保版環境のスループット/レイテンシへの影響は?
- スループットは0.5%悪化
- レイテンシは影響なし
RQ4: 実バグを再現できるか?
- Redis, Cassandra, MySQL, Apacheなどを対象に実バグ再現を実施し,16個の実バグ再現に成功
Tagged: #debug