# DBSherlock
DBSherlock は、OLTP データベースの性能異常を、ユーザが指定した異常区間と正常区間から述語の連言と因果モデルで説明する診断ツールである。[[DBSeer]] のモジュールとして OSS 公開されている。
## 仕組み
- 秒単位に整列した OS・DBMS 統計を、分割空間へ離散化し、ラベル付け、フィルタリング、ギャップ埋めを経て、分離力の高い述語を抽出する。
- DBA が確定した原因を、述語と対の因果モデルとして保存し、次回以降は信頼度つきで原因を提示する。同一原因のモデルは統合して精度を上げる。
- 二次症状は、ドメイン知識の規則 4 本と相互情報量による独立性検定で除去する。
- 異常区間の自動検知は DBSCAN で行う。
## 評価の到達点
- [[MySQL]] と TPC-C の 10 種の異常(110 データセット)で、統合モデルの top-1 正解率が 98% を超える。述語の F1 値は [[PerfXplain]] より平均 28% 高い。
- DBPA など後続のベンチマーク研究が、既存のデータセットとして DBSherlock の 396 件を参照する。
## 関連
- ソース: [[@2016__SIGMOD__DBSherlock - A Performance Diagnostic Tool for Transactional Databases]]