-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Snapshot update for workspace #135
Conversation
Depends on: UCLA-IRL/ndnts-aux#6 |
// /grpPrefix/32=snapshot/54=<vector>/ | ||
let snapshotData = await fetch(targetName, { | ||
verifier: certStorage.verifier, // we have access to the verifier | ||
modifyInterest: { mustBeFresh: true }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I remember we said to remove mustBeFresh
if it is not a prefix match, because it blocks repo from serving the content.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left mustBeFresh on for testing. If tests go well we should remove it.
verifier: certStorage.verifier, // we have access to the verifier | ||
modifyInterest: { mustBeFresh: true }, | ||
lifetimeAfterRto: 2000, | ||
retxLimit: 150, // See Deliveries. 60*1000/(2*200)=150. Default minRto = 150. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is a problem in my code. I previously used a very long retry limit to get over a limit in NDNts segment fetcher.
Let me check if it is still needed. No need to fix on your side.
FYI: the computation means we want to retry for at least 1 min in case of network issue (60*1000ms), and an Interest is resent per RTT (200ms one way).
This is the workspace part of the snapshot update.
It contains only part 4, which adds a routine for the backend to check if it needs a snapshot. If it does, it will do a blind fetch for version discovery and then a segmented objects fetch for the actual snapshot, and write snapshot itself and the corresponding state vector in the persistent storage before syncAgent begins initializing.
A diagram is available in the slides on the overall snapshot fetching process.
This pull request is meant to be a work-in-progress, where there are many debug codes and unsafe calls made.
References:
https://docs.google.com/presentation/d/15q8wTChtQtKzaAA1anvDJa1ZNr1DS1Kc67kW6XYghzM/edit?usp=sharing
https://docs.google.com/document/d/1s4pnJS4vSAP_EJD-P0XP6J5osoz8nNgEfLs-HOCDL6U/edit?usp=sharing