SQLite
-
同時に書いても、壊れない
CLI と GUI は別プロセスとして、同じ store.sqlite を同時に書く。それでも壊れないのは、各書き込みを丸ごと1トランザクションにして SQLite に直列化させ、失敗したら丸ごと巻き戻すから。変更は change_feed に1行残り、GUI のウォッチャがカーソルで変わったぶんだけ読み直して画面に映す。
-
なぜ、追いつくのが速いのか
第1回で「探索が約2倍軽い」と実測し、第2回で「ストアはグラフ」と示した。今回はその読み方。タスクに追いつくときは、つながった数件だけを索引でたどる(O(result))。着手できるか・決定が現行かといった状態は保存せず、エッジからその場で導出する。だから一覧・カード・着手ガードがズレない。