RoaringBitmap / RoaringBitmap/RoaringBitmap
[64 bit] what value does HighLowContainer provide?
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 3.9k
- Forks
- 592
- Avg merge
- 5d 21h
- Merged PRs (30d)
- 2
Description
This is more of a design discussion than an issue and I assume it will be contentous --- but --
Art contains a simple trie where the LeafNode holds a long reference. This is the index of the Container in the HighLowContainer, which hold li aList<Container[]>
All of the access is to the Comtainer is via the Trie, so every access to the Container has to follow an additional step
The HighLowContainer holdes the references to the Containers that could be held by the LeafNode
The reference to the container is 32 or 64 bits, so at best the LeafNode would be the same memory footprint, and at worst its holdiing 32 bits more that it needs
The highLowContainer holds the object references that the LeafNode could hold, and the minimal overheads of the arrays and list ( assuming that the cardinaity is high).
HighLowContainer leaks memory. (Removes leave holes in the arrays)
The only usage of the HighLowContainer without Art (that I can see) is the runOptimise, whih could use the other iterator
So - as I se it , it adds to the code, adds to the cpu, and ads to the momenry. I dont see the advantage
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the Art trie, LeafNode, HighLowContainer, and runOptimise paths mentioned in the issue; compare how Container references are accessed and removed. A useful outcome is a maintainer decision, backed by memory and CPU evidence, on whether HighLowContainer should remain or be changed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- performance
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100