PR #3226 โ raw_block incremental base+delta checkpoint
[!tldr] ์ ๋ฌด ๊ด์ takeaway Daejun์ด checkpoint ์ ์ฒด ์ง๋ ฌํ(O(N) write)๋ฅผ base+delta ๊ตฌ์กฐ๋ก ๊ฐ์ . APPROVED (DongDongJu, 2026-05-26). ๋จ, base overflow(S2)๋ ์ด PR๊ณผ ์ง๊ต โ
_write_full_base์ payload cap์ ๊ทธ๋๋ก. #3226 ๋จธ์ง ํ S2 fix(๋จ๊ณ 1)๋ฅผ ์์ ์น๋ ๊ณํ.
๊ธฐ๋ณธ ์ ๋ณดโ
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| PR ๋ฒํธ | #3226 |
| ์์ฑ์ | Daejun (๋ฐ๋์ค) |
| ์ํ | APPROVED (DongDongJu, 2026-05-26), ๋จธ์ง ๋๊ธฐ |
๋ฌด์์ ๋ฐ๊พธ๋โ
๊ธฐ์กด: checkpoint๋ง๋ค _index ์ ์ฒด๋ฅผ JSON ์ง๋ ฌํ โ O(N) write
๋ณ๊ฒฝ: [header][payload aligned][delta tail] ๊ตฌ์กฐ
- base: ์ฒซ ์ปค๋ฐ + compaction ์์ ์๋ง ์ ์ฒด ์ง๋ ฌํ
- delta: ์ดํ checkpoint๋ ๋ณ๊ฒฝ๋ key๋ง delta record๋ก append
- compaction ํธ๋ฆฌ๊ฑฐ: delta ์, region watermark, ์๊ฐ, oversize record, first-write
mirror layout:
[ header (32B) ][ base payload (aligned) ][ delta tail โ ]
๊ธฐ์กด ๋๋ฐ์ด์ค ํธํ: delta tail์ LMCD magic ์์ผ๋ฉด replay ์ค๋จ โ old disk๋ base๋ง ์ฝ์.
S2(checkpoint overflow)์์ ๊ด๊ณโ
| ํญ๋ชฉ | Before | After #3226 |
|---|---|---|
| base ์ง๋ ฌํ | JSON ์ ์ฒด | (๋์ผ) |
| overflow ์ฒดํฌ | if len(payload) > payload_cap | (๋์ผ) |
| overflow ์ | warning + return False | (๋์ผ, silent) |
| base ๊ฐ์ฉ ๊ณต๊ฐ | ~64MB | delta tail ๊ณต์ ๋ก ์ฝ๊ฐ ๊ฐ์ |
โ S2๋ ์ง๊ต. #3226 ๋จธ์ง ํ์๋ ๋์ผ ๊ฒฝ๋ก๋ก ์ด์์์.
โ S2 ๋จ๊ณ 1 fix(128MBโ512MB)๋ #3226 ์์ ์น์ ๊ณํ.
์ฃผ์ ๋ฆฌ๋ทฐ ํฌ์ธํธโ
- DongDongJu (2026-05-08): "v2 base layout ๋๋ฌด ๋ณต์ก. ๊ธฐ์กด layout ์์ delta tail๋ง ๋ถ์ด์."
- Daejun (2026-05-11): ์ค๊ณ ๊ฐ์ํ, force-push.
[ header ][ payload ][ delta tail ]๋จ์ผ ๊ตฌ์กฐ. - 2026-05-26: DongDongJu APPROVED
์ฐ๋ฆฌ ์ก์ โ
- #3226 ๋จธ์ง ํ์ธ ํ โ S2 ๋จ๊ณ 1 PR (
meta_total_bytes128MB โ 512MB +meta_versionbump) ์งํ - Daejun์๊ฒ S2 base overflow ๋ฒ์ ์ง๋ฌธ ์์ (
raw/daejun_question_draft.md์ฐธ๊ณ )
๊ด๋ จ ํ์ด์งโ
- [[S2-checkpoint-overflow]] โ S2 ์์ธ ๋ถ์
- [[Samsung-LMCache-ํ]] โ Daejun ๊ธฐ์ฌ ์์ญ