Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@joemfb
Copy link
Collaborator

@joemfb joemfb commented May 18, 2023

This PR is a forward-port / rewrite of the demand-paging implementation from v1.14 (see urbit/urbit#6063, urbit/urbit#6126, urbit/urbit#6127, and urbit/urbit#6152). The original scope has been decreased, and the implementation simplified: i/o errors are not retried, the dirty page bitmap is manipulated with much simpler code, page offsets/pointers are calculated with macros, &c. There are additional layers of snapshot validation for updates (controlled at compile time, always on as of this PR); clean pages are compared to disk both before and after update. (This validation should stay on for pre-release testing, and possibly for initial release as well.)

This PR has been tested extensively on live ships; the corruption issues that plagued v1.14 cannot be reproduced.

Fixes #188. Supersedes #277.

joemfb added 29 commits April 6, 2023 16:34
corrects comments
removes dead code
makes page and offset calculations more consistent
@joemfb joemfb requested a review from philipcmonk May 18, 2023 18:35
@joemfb joemfb requested a review from barter-simsum May 18, 2023 18:35
@joemfb joemfb requested a review from a team as a code owner May 18, 2023 18:35
@joemfb
Copy link
Collaborator Author

joemfb commented May 18, 2023

There is an extra / in the source branch name on this PR (should have been jb/demand, not /jb/demand). That can't be edited, and the PR is not picking up changes that I've pushed to the source branch.

@joemfb joemfb mentioned this pull request May 18, 2023
@joemfb joemfb closed this May 18, 2023
joemfb added a commit that referenced this pull request May 22, 2023
This PR is a forward-port / rewrite of the demand-paging implementation
from v1.14 (see urbit/urbit#6063, urbit/urbit#6126, urbit/urbit#6127,
and urbit/urbit#6152). The original scope has been decreased, and the
implementation simplified: i/o errors are not retried, the dirty page
bitmap is manipulated with much simpler code, page offsets/pointers are
calculated with macros, &c. There are additional layers of snapshot
validation for updates (controlled at compile time, always on as of this
PR); clean pages are compared to disk both before and after update.
(This validation should stay on for pre-release testing, and possibly
for initial release as well.)

This PR has been tested extensively on live ships; the corruption issues
that plagued v1.14 cannot be reproduced.

Fixes #188. Supersedes #277. (Was previously opened as #401, but a typo
in the branch name was preventing updates.)
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.

Elastic memory growth

1 participant