From fa99b6dceaf2db71be1a4501b4bf0e3032f0b0e2 Mon Sep 17 00:00:00 2001 From: Serkyo Date: Fri, 10 Jul 2026 01:15:44 +0200 Subject: [PATCH] docs(server): note whole-file rewrite deviation from save spec --- crates/server/src/save/region_file.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/crates/server/src/save/region_file.rs b/crates/server/src/save/region_file.rs index 26e01ad..72bec93 100644 --- a/crates/server/src/save/region_file.rs +++ b/crates/server/src/save/region_file.rs @@ -158,6 +158,8 @@ impl RegionFile { } /// Builds the complete on-disk file image: the encoded index followed by every record. + // * NOTE: this is a whole-file rewrite. The right way to do it for large saves is to append changed records into free space and rewriting only the header table, so save cost scales with chunks modified rather than total file size. The free list and absolute offsets already on disk support that switch without a format change. + // TODO: incremental save. fn serialize(&mut self) -> Result, SaveError> { let index_len = self.index.encode()?.len();