Support larger servers than a few megabytes (don't hardwire physical AVL tree location) #37
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously, the physical AVL tree was hardwired to be at 3,5 MiB in the physical memory, i.e. making it (theoretically) possible to run on 4 MiB machines. This had the severe limitation that it was really hard to make servers that are bigger than a few megabytes.
I don't like that, and I'm currently (in #35) experiencing weird issues related to the AVL reservations, so I thought I'd fix this.
As an extra bonus, this PR adds a description field to all AVL nodes. This makes it a lot easier to try and debug cases when AVL nodes overlap. (Yes, I am aware of the risk that the description string could be located in memory locations which are not in global memory, when speaking about user-level memory allocation. We may have to fix that at some point.)
/cc @CaspecoHenrik - thanks for a tiny bit of moral support when debugging this. 😄