add a new compare func CompareValueONeil for bsi, which faster than CompareValue#461
add a new compare func CompareValueONeil for bsi, which faster than CompareValue#461ChicChip wants to merge 2 commits intoRoaringBitmap:masterfrom
Conversation
…oNeilCompare), only for number which is >= 0
|
Test code read my file "total.bin" result |
|
I will run some tests in my environment. In the meantime, could we come up with a better more descriptive name for this function? |
|
Also (and better yet), when constructing the BSI we could potentially set min/max value providing some context about the nature of the data being stored in the BSI. Then we could choose to apply the optimization without creating an entirely new API. |
yes, more descriptive name is better |
Yes, util now, BSI's min/max doesn't be refreshed when setValues or deserialization. If min/max exist in BSI, new API can cancel. |
|
Is there some news on this PR? |
|
I'm also interested in the progress of this. Are you still working on this @ChicChip? |
bsi32 and bsi64 are supported in commit, but this request(#461 (comment)) about set min/max i haven't done yet. |
According to Java's compare function , I code a new function CompareValueONeil for go version ,and it only support number which is >= 0 , it is faster than CompareValue. When bsi include 200 million columnIds, using same range query,CompareValueONeil is cost about 1s when CompareValue cost about 12s(https://github.com/RoaringBitmap/RoaringBitmap/blob/cca90c986d5c0096bbeabb5f968833bf12c28c0e/bsi/src/main/java/org/roaringbitmap/bsi/longlong/Roaring64BitmapSliceIndex.java#L456)