-
Notifications
You must be signed in to change notification settings - Fork 819
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
Some issues with the new segmented store #710
Comments
I'm getting closer to identifying the problem. It must be a threading issue. I just got:
Since 0 + 23 definitely does not exceed 23, the numbers must have been changed by another thread, in between the check and the creation of the exception. And that should never happen, and could very well explain the weird symptoms. And also why it doesn't happen in the unit tests. |
Ok, I found the issue for this Exception. The different threads all work on the same buffer, with the same indexes. Ideally we could make one retainedDuplicate for each thread, This PR just makes a duplicate when reading the buffer: #716. Not quite as nice, but does have the advantage that we don't need to reset the reader index. However, there are more issues:
|
Making a duplicate per Command Thread was easier than expected. I've updated #716 :) |
After chopping up #716 there is one open question left: Currently each Segment directly operates on a (shared) MemoryMappedBuffer of the entire Page. I'm wondering if it isn't better to give each Segment a I'm also wondering about the efficiency of the WDYT? |
Testing the latest master with my stress test app (many clients, connects, disconnects, etc...), I run into some exceptions.
As soon as the store opens a new page file this happens:
After that there are all sorts of other exceptions, but those are probably caused by the inconsistent state of the store:
I'll try to track down the details.
The text was updated successfully, but these errors were encountered: