Skip to content
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

Merged
merged 10 commits into from
Oct 8, 2024
Merged

Snapshot update for workspace #135

merged 10 commits into from
Oct 8, 2024

Conversation

CAWorks-ChrisA
Copy link
Contributor

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

@zjkmxy zjkmxy self-assigned this Aug 14, 2024
@zjkmxy
Copy link
Collaborator

zjkmxy commented Aug 14, 2024

Depends on: UCLA-IRL/ndnts-aux#6
Ref: #4
(Does not close the issue)

@zjkmxy zjkmxy added this to the Roadmap for NDN Workspace 2024 milestone Aug 14, 2024
src/backend/main.ts Outdated Show resolved Hide resolved
src/backend/main.ts Outdated Show resolved Hide resolved
src/backend/main.ts Outdated Show resolved Hide resolved
src/backend/main.ts Outdated Show resolved Hide resolved
src/backend/main.ts Outdated Show resolved Hide resolved
src/backend/main.ts Outdated Show resolved Hide resolved
@CAWorks-ChrisA CAWorks-ChrisA marked this pull request as ready for review September 28, 2024 22:44
// /grpPrefix/32=snapshot/54=<vector>/
let snapshotData = await fetch(targetName, {
verifier: certStorage.verifier, // we have access to the verifier
modifyInterest: { mustBeFresh: true },
Copy link
Collaborator

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.

Copy link
Contributor Author

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.
Copy link
Collaborator

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).

@zjkmxy zjkmxy merged commit 93ab83a into UCLA-IRL:main Oct 8, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants