-
Notifications
You must be signed in to change notification settings - Fork 153
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
Set mlockall #2352
Comments
Reference: https://man7.org/linux/man-pages/man2/mlockall.2.html
Looks a little dangerous to me. Therefore, I would like to see this as an optional flag only. |
Which part of this do you consider dangerous? The whole idea is "Never spill to disk, rather crash (sigsegv)"? |
This makes total sense for servers with hundreds of gigabytes of RAM. But, for all other machines, we will probably end up with failures across the board. Therefore, I would implement this behavior as an optional setting. |
Highly unlikely. |
I just ran into a situation where Hyrise was paged out. This leads to really weird performance results. We can fix it by calling
mlockall(MCL_CURRENT | MCL_FUTURE);
in
Hyrise::Hyrise()
. We should discuss what the expected behavior is. For VMs or personal machines, we might be fine with paging, especially during the generation of benchmark data. An alternative would be to only call mlockall once all data is generated. In that case, we should also call it in the server.Note: This seems to blow up jemalloc somehow. For some reason, it causes it to never return memory and for the binary to crash. Might mean that we have to abstain from locking the pages. :/
The text was updated successfully, but these errors were encountered: