From 51b7fb84b9465227bedd2cd6b5b925f7ceec5bf5 Mon Sep 17 00:00:00 2001 From: dawn <90008@klbr.net> Date: Wed, 30 Sep 2026 08:34:01 +0300 Subject: [PATCH] [beads] close hydrant-e0w --- .beads/interactions.jsonl | 1 + 1 file changed, 1 insertion(+) diff --git a/.beads/interactions.jsonl b/.beads/interactions.jsonl index 19d5030..50f0588 100644 --- a/.beads/interactions.jsonl +++ b/.beads/interactions.jsonl @@ -100,3 +100,4 @@ {"id":"int-82f9de1e6db3b9e0e230cb21110cd5c7","kind":"field_change","created_at":"2026-09-30T04:52:12.504394Z","actor":"dawn","issue_id":"hydrant-j88","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"replaced BTreeMap with HashMap (seeded: cids are pds-chosen) behind a read-only CarBlockStore for the backfill MST walk. pfrazee.com (273k blocks): map build m5 40->16ms, zen3 99->72ms (zen3 is page-fault bound for any fresh 60MB+ structure); lookups m5 41->5ms, zen3 73->15ms; jacquard MST walk m5 98->58ms, zen3 208->139ms. repo_sync_integrity passes for atproto.com and pfrazee.com."}} {"id":"int-3971a4446860e5ecef43ff2c2995c74b","kind":"field_change","created_at":"2026-09-30T05:02:12.786425Z","actor":"dawn","issue_id":"hydrant-3kt","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"step 5 now runs in spawn_blocking with jacquard leaves_sequential + get_many via Handle::block_on (same pattern as control/repos/indexer.rs). leaves() spawned a task per subtree onto the runtime workers: pfrazee.com (215,747 records) m5 wall 59ms / cpu 317ms -> wall 73ms / cpu 73ms; zen3 wall 126-137ms / cpu 477-497ms -> wall 161ms / cpu 158-161ms. repo_sync_integrity passes for atproto.com and pfrazee.com. walker choice follow-up filed."}} {"id":"int-de5e5214e52c11b31c0b8ee9ddc58f7f","kind":"field_change","created_at":"2026-09-30T05:23:31.199202Z","actor":"dawn","issue_id":"hydrant-md0","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"decided: own walker. src/mst.rs holds the node decoding sparse_mst already had (moved, not copied; one reusable key buffer instead of format!+to_string per leaf) plus a full in-order walk that rejects missing nodes, nodes reached twice (ends cid cycles on unverified cars), and non-increasing keys, with an explicit stack (100k-deep chain test). CarBlockStore and jacquard's Mst are gone from backfill. pfrazee.com (215,747 records) cpu: m5 83 -> 50 ms, zen3 151 -> 105 ms vs jacquard leaves_sequential; differential test vs jacquard leaves(), repo_sync_integrity passes for atproto.com and pfrazee.com."}} +{"id":"int-bdc88f6c12ad79db0efb531d53412d61","kind":"field_change","created_at":"2026-09-30T05:34:01.794085Z","actor":"dawn","issue_id":"hydrant-e0w","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"SparseScanner::scan_node (recursive) -> scan_subtree over a (cid, NodeBounds) work stack, children pushed reversed so scan order stays depth first, left to right. reproduced first: a 100k-deep left chain aborted the test process with 'stack overflow' (SIGABRT) on the old scanner; passes now. existing pruning/resume/pending-dedupe tests unchanged and passing, plus a self-loop test. live check via backfill_strategy_bench on 10 sh.tangled repos (up to root layer 5, 3 getBlocks rounds): sparse record counts equal full-walk counts for all 10."}} -- 2.51.2