aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-10 17:39:30 +0800
committerGravatar Runxi Yu2026-03-10 17:39:30 +0800
commit65a6439638a18e4317e144a0117db7604a2f2940 (patch)
treead8447a455380887e29da032d16a593407d4c12f
parentTODO: Add thoughts about net<->objstore (diff)
signatureNo signature
research: dynamic packfiles
-rw-r--r--research/dynamic_packfiles.txt16
1 files changed, 16 insertions, 0 deletions
diff --git a/research/dynamic_packfiles.txt b/research/dynamic_packfiles.txt
new file mode 100644
index 00000000..e948f8c5
--- /dev/null
+++ b/research/dynamic_packfiles.txt
@@ -0,0 +1,16 @@
+dynamic packfiles to append objects
+
+gc/refcount process punches page-sized holes in them for pages fully
+within the space of unwanted objects, after setting a tombstone mark
+
+holes are recorded in an index and re-used
+
+then, if desired, the repack process removes all the punched holes
+and anything surrounding from unwanted objects that are slightly out
+of the page boundary
+
+.idx is not a bsearch because that would cause me to need to rewrite
+the entire pack every time i add objects; instead use an extendible
+hash table.
+
+genreational bloom filters