CRoaring
CRoaring copied to clipboard
Implement Bit-sliced index for CRoaring
There are implements for bit slice index in java and go. Do we need in C/C++?
I think implementing Bit-sliced index for CRoaring include these tasks:
- support mutable Bit-sliced index in C
- support RangeBitmap in C
- A range Index demo for postgres using RangeBitmap in C
- A mutable bit-sliced index demo for postgres using bit-sliced index in C
- A range index demo for Apache Parequet file-format in C/C++
- A mutable bit-sliced index demo for Apache Parequet file-format using Bit-sliced index in C
@lemire we've implemented mutable Bit-sliced index in C and using it for postgres. Due to there are two implements for bit-sliced index, (BSI and RangeBitmap), one is mutable but the performance is poor, the other is immutable ,but the performance is great. Could we make a decision or re-design it ?
cc @ richardstartin
refer to :
- https://richardstartin.github.io/posts/range-bitmap-index
- https://richardstartin.github.io/posts/range-predicates
- https://github.com/RoaringBitmap/RoaringBitmap/tree/master/bsi
- https://github.com/lemire/BitSliceIndex/issues/1
Yes, a pull request to provide this functionality in C is invited.
@Smallhi : I alos have this use case , any idea when would we be able to merge this implementation. Also i have a noob question : Why is bit sliced index dependent on Rangebitmap implementation ? What exactly is the difference between range index and bit slice index ?