[Bizgres-general] A bitmap index access method is available in bizgres CVS tip

Jie Zhang jzhang at greenplum.com
Wed Dec 21 06:48:26 GMT 2005


On 12/19/05 12:25 AM, "Mark Kirkwood" <markir at paradise.net.nz> wrote:

> Mark Kirkwood wrote:
> 
> One other thing comes to mind - apologies for the drip-feed of the
> thoughts on this, but its how they are coming to me as well :-)
> 
> In fact *all* the (bitmapped) indexes seem to have a fairly large
> on-disk footprint - about the same as btree. Is that expected?
> 
> I have not looked specifically at how this has been implemented (am
> going to tomorrow), But thinking aloud (so to speak), concerning my
> (possibly completely wrong - apologies if so) theoretical understanding
> of how bitmap indexes work:
> 
> 10 value bitmap for 10000000 rows requires 10*10000000/8 = 12500000 (~12Mb).
> 
> This is quite small (whereas the 10 value bitmap indexes are ~150Mb).
> 
> To actually use the bitmap you need a map between the bitmap "array"
> position and blocknumber,itemid (or similar) of the heap relation. I am
> guessing that is what your "bm_internal_t*" guys do(?).  Is this where
> the extra space is being used? (the on-disk bm_* are very small, so I
> guess it is not).

Those "bm_internal_t*" are used to store distinct values for each attribute
to be indexed. They are used to speed up the search performance when the
number of distinct values becomes large.




More information about the Bizgres-general mailing list