Skip to content
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

Excess use of memory mappings in multiprocess reader-writer scenarios #5010

Closed
finnschiermer opened this issue Nov 1, 2021 · 1 comment
Closed
Assignees

Comments

@finnschiermer
Copy link
Contributor

finnschiermer commented Nov 1, 2021

Expected results

Core should reclaim memory mappings close(r) to the time when they are no longer used.

Actual Results

In a multiprocess setting (or any setting with multiple DB objects involved), where one process (or DB) only reads while others write AND these writes cause file growth AND the reader continuously refreshes their realm, stale memory mappings on the reader is not released. This is because release of memory mappings is done during commit, and in the described case, the reader does not commit. Doh!

On 32 bit machines this can cause a crash due to lack of virtual address space.

Core version

Core version: Any Core from Core-6 and onwards.

Prior to Core version 11.4.0 this bug could also hit a single-process app if it waited and refreshed while the sync client did a large multi-commit merge of data

@finnschiermer finnschiermer self-assigned this Nov 1, 2021
@finnschiermer
Copy link
Contributor Author

This will be fixed by #5645, as it for the above scenario only cause allocation of the minimum number of mappings.

@sync-by-unito sync-by-unito bot closed this as completed Jul 11, 2022
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 21, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant