-
Notifications
You must be signed in to change notification settings - Fork 30
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
How to set up log recovery in Assise? #16
Comments
I'm able to make the test pass now after making code changes Here's what I did:
It would be great if you can let me know if this is the correct way to do it, because adding |
Waleed, Henry, does this seem correct to you? Is there perhaps some log
recovery code missing in the public Assise repo?
…On Wed, Nov 10, 2021 at 10:13 PM Om Saran ***@***.***> wrote:
I'm able to make the test pass now:
Here's what I did:
1. After this line
<https://github.com/ut-osa/assise/blob/6f4aec82747d4d828c5c27b62b27c92b60fea79e/libfs/src/log/log.c#L1201>,
I added the following call: write_log_superblock((struct
log_superblock *)g_log_sb);
2. After this line
<https://github.com/ut-osa/assise/blob/6f4aec82747d4d828c5c27b62b27c92b60fea79e/libfs/src/log/log.c#L146>,
I added the following call: shutdown_log();
It would be great if you can let me know if this is the correct way to do
it, because adding write_log_superblock((struct log_superblock
*)g_log_sb);, I believe would impact performance.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#16 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABHQBMWN5CEDVFRSVJS3QPDULM7FFANCNFSM5HYVSHXA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Our artifact currently doesn't include a generalized implementation of log recovery. Your workaround should be okay for the test programs you shared. The added "write_log_superblock" call will affect write performance, as you said, but I don't expect it'll have a significant impact since the log superblock is only 40 bytes in size. |
Thanks for the confirmation. I will try this out and see if it works for some other programs too. |
I am trying to do a simple crash consistency test for Assise in local mode (i.e., non distributed) and using only NVMs.
Here's what the test does:
do_crash.c
_exit(0)
// so that exit handlers are not invoked (thus not digested). (Note that we do not callfsync
)check_crash.c
access
call to check if file created indo_crash.c
is presentThe
check_crash.c
does not seem to be passing i.e., it says the file is absent. The test passes if a clean exit is done (by commenting out_exit(0)
)I believe this is because the log recovery is not enabled. How do I set it up to test this crash consistency?
I tried adding a digest call in the
init_log()
of LibFS, but then_digest
value loaded does not seem to reflect the correct value. I may be wrong here, but then_digest
value seems to be stored in dram rather than NVM? This operation does not seem to be updated in the NVM, only updated in DRAM after transaction completion. I don't have a deep understanding of the codebase, so I guess I'm probably missing something here.It would be great if you could help me in setting it up. I believe this scenario is similar to the OS fail-over experiment described in the paper.
I've also included the
do_crash.c
andcheck_crash.c
programs here for reference.Thanks in advance for your help!
do_crash.c
check_crash.c
The text was updated successfully, but these errors were encountered: