Phase 2b (0.6.1-beta): dual-write file_holders on all propagation events
Populate the flat holder set alongside every existing post_upstream / post_downstream / blob_upstream / blob_downstream write so that read paths can be switched over in the next commit without losing continuity. Events wired: - Pull sync receive (3 paths in connection.rs) - PostPush receive (public posts only after Phase 1) - PostFetch via notification (discovery pull) - PostDownstreamRegister - Replication accept (downstream) + replication-driven pull (upstream) - Attachment upstream recorded after replication blob fetch - ManifestPush receive (remote is a CID holder) - ManifestPush send (downstream peer becomes CID holder) - Blob fetch fallback (upstream lateral sources) Direction is tracked as Received vs Sent. Not load-bearing for routing; retained for future use. LRU cap of 5 enforced on every touch. Legacy upstream/downstream writes remain in place; they'll go away together with the table drops at the end of this phase. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
1658762a68
commit
0b2b4f5a68
3 changed files with 88 additions and 1 deletions
|
|
@ -1351,6 +1351,12 @@ impl Node {
|
|||
.map(|m| m.host_addresses.clone())
|
||||
.unwrap_or_default();
|
||||
let _ = storage.store_blob_upstream(cid, from_peer, &source_addrs);
|
||||
let _ = storage.touch_file_holder(
|
||||
cid,
|
||||
from_peer,
|
||||
&source_addrs,
|
||||
crate::storage::HolderDirection::Received,
|
||||
);
|
||||
}
|
||||
Ok(data)
|
||||
}
|
||||
|
|
@ -1413,6 +1419,12 @@ impl Node {
|
|||
}
|
||||
}
|
||||
let _ = storage.store_blob_upstream(cid, &lateral, &[]);
|
||||
let _ = storage.touch_file_holder(
|
||||
cid,
|
||||
&lateral,
|
||||
&[],
|
||||
crate::storage::HolderDirection::Received,
|
||||
);
|
||||
return Ok(Some(data));
|
||||
}
|
||||
Ok((None, response)) => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue