-
Notifications
You must be signed in to change notification settings - Fork 570
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
ObjectRecoveryTest failing when more data is used #226
Conversation
The design of FASTER object log is as follows: for each segment in the main log, there is a corresponding segment of the object log that stores all the corresponding objects from the main log, laid out end to end. This implies a requirement for the object log: an object log segment needs to grow large enough to accommodate all objects within the corresponding main log segment. The resolution we adopt is for the object log segment to be of variable size, i.e., we should not size the object log segment to a specific size a priori. To accomplish this, we need to make sure Making this change fixes the error you encounter in this PR. |
FYI, the VSTS tests in this PR fail due to a different reason: the modified testcase is now too large to run in 32-bit, so those version of tests throw an overflow exception. |
Ok thanks I will close the PR and try to make the changes you proposed on a POC project I created and will report back |
It looks like there is a slightly different issue affecting only Snapshot CheckpointType in your repro, where the object log for snapshot is not being read correctly - the fix will be checked in today. |
See PR #228. We have now made it so that even if you create an object log with preallocate set to true, it will not cause an error. To achieve this, we will no longer perform preallocation/truncation for an object log device (recognized internally because the segment size is set to -1 during initialization of an object log device). |
Please use the latest from PR #228 for your POC, as it fixes a related issue with object logs. |
NuGet with fixes related to this PR has been pushed out: https://www.nuget.org/packages/Microsoft.FASTER |
This PR is not intended to commit but to show a durability failed tests scenario
I have added some more data to
ObjectRecoveryTest1
test and increased iterations (to invoke more checkpoints) I would expect this to pass even with the additional changes I made, it seems thestream
runs out of data to read and that results inOverflowException
when decentralizing a keyNot sure (yet) why exactly, to reproduce just run this test
ObjectRecoveryTest1
I came across this issue when writing a POC to simulate the requirements for a project I am currently working on (I can provide the link to the POC if needed but I get the same issues).
Any ideas?