永続化に関する正当性を検証する * e, e' ∈ epoch, l ∈ log_channel, d ∈ data * write_log(e, d) : (PWALファイル) epoch e としてデータ d が ディスクに書き終わる * write_epoch(e) : (メタ情報ファイル) epoch e がディスクに書き終わる 検証項目 * add_entry して end_session をしたらいつかは durable 通知が発生するかクラッシュする * add_entry して end_session したらいつかは ディスクに永続化されるかクラッシュする * durable 通知 e が発生したら、それ以後に e 以下の epoch のデータがディスクに永続化されることも メタ情報ファイル epoch に e 以下(未満?)の値が記録されることもない CTL: * ∀l∀e; l.add_entry(d) → AG(l.end_session(e) → AF(∃e'≧e;inform_durable(e') ∨ crash)) * ∀l∀e; l.add_entry(d) → AG(l.end_session(e) → AF((write_log(e, d) ∧ AF∃e'≧e;write_epoch(e')) ∨ crash)) * ∀e∀e'≦e∀d; inform_durable(e) → ¬EF(write_log(e', d) ∨ write_epoch(e')) LTL のほうが楽か?? リカバリまで含めての系列で検証すべきかもしれない
永続化に関する正当性を検証する
検証項目
CTL:
LTL のほうが楽か??
リカバリまで含めての系列で検証すべきかもしれない