Draft: Multi-Layered Version Controll with Concurrent Copy GC
-
Lc_mp (Layer Controll Multi-Process) を実装
- Spec: https://hackmd.io/oB29ZmNPRZ6sBHLKYelT0Q
- Usage example:
benchmark/add.ml/run_lc_mp
,tests/test_lc_mp.ml
辺りを参照 - 補足した方がよいかもしれないこと : https://hackmd.io/38KFo8ysQZ2_COS8C_xK3g
-
追加点
- Copy2
- (Copy を基に) 2 Cursor 間の Diff を適用する機能を実装した module
- Commit_and_layer_tree
- commit_tree で扱える commit 情報を拡張して、
parent
と(layer, index)
のリスト を持てるようにした木- long_term layer は 1 つの key に対して 1 つしか持てない
- commit_tree で扱える commit 情報を拡張して、
- Commit_for_clt
- Commit_and_layer_tree 用の Commit_db モジュール
- src/subprocess/[transit|archive]
- Lc_mp の
start_transit
やarchive_old_layer
を実行すると起動されるプロセス
- Lc_mp の
- Copy2
-
議論
- Status の layer_state が破壊的に保持されているが, 壊れないか, または壊れても大丈夫か?
- initial_commit などを保持するのに Plebeia.Storage を使うべきなのか
Edited by taiseiKMC