昨日のダサい失敗エントリが注目を集めているようで恥ずかしいお… 今後ダサい失敗で困らないために、memcachedのパッチを書いてみようと思った。 時間が巻き戻った瞬間に障害が出るのはしょうがないけど、 巻き戻ったあとにその影響が残り続けるのは嬉しくない。 昨日起きた現象を考えるに、 「memcached内部での時間は、絶対時間で保持しているのではなく起動時間からの相対時間で保持されている」のだろう、と予想していた。実際そうみたい。 current_timeという変数に、現在の起動時間からの相対秒が記録されている(set_curent_time())。 realtime()では、各種コマンドで与えられるexptimeを起動時間からの相対秒に変換している。 #define REALTIME_MAXDELTA 60*60*24*30 typedef unsigned int rel_time_