2006年09月18日
liblog
Replay Debugging for Distributed Applications
分散ソフトウェアを開発している時に一番頼りになるのは、というか唯一頼りになるのはログ。バグが起こったときには、それこそ行単位にログを吐かせまくって原因を特定する。ローカルに吐かせたものを見るのはどうしても面倒なので、中央にログサーバーを立てて集中的にログを見れるようにもしてみた。しかし台数が増えると色々なサーバーのログが入り混じってしまうので、結局見るのはローカルに吐かせたログになってしまう。
liblogはなんとログからその時の状況をreplayするという凄いハック。thread, signal, malloc, network等の状況も再現してくれる。thread対応には独自のスケジューラーを作ってみたり、gdbをインターフェースにしてみたりと色々ハッカーすぎる技術が詰まっている。しかし肝心のliblogのページが落ちてるのが悲しすぎる。
個人的にはlibcの関数をrecordしてくれるだけでも十分嬉しい。straceはログ吐き過ぎなので、10時間後に止まるバグなんかを突き止めるにはちょっと向いてない...。しかし今思い出して見ると、Jockeyも同じような事が出来るのか。こっちはソースが読めるのでちょっと見てみよう。
こういう事してるから課題が進まない。
- by
- at 11:33

comments