"Jochem van Dieten" <[EMAIL PROTECTED]> wrote: > On 12/28/06, ITAGAKI Takahiro wrote: > > > > | [TODO item] Allow data to be pulled directly from indexes > > | Another idea is to maintain a bitmap of heap pages where all rows are > > | visible to all backends, and allow index lookups to reference that bitmap > > | to avoid heap lookups > > > > It is not done yet, but we can use DSM for this purpose. If the > > corresponding > > bit in DSM is '0', all tuples in the page are frozen and visible to all > > backends. We don't have to look up frozen pages only for visibiliby > > checking. > > Does that really work in the absence of a retail index vacuum method? > What if the heap is already vacuumed, frozen and the bit for that page > in the DSM is set to '0', but the index still contains entries that > haven't been removed by a vacuum yet?
No, if the DSM bit is 0, there are no frozen nor dead tuples in the page and no dead index entries linking to tuples in it. In other words, we can reset DSM to 0 only in such condition. BTW, if we want to achieve the index-only scan, we might have to do more aggressive VACUUM FREEZE. There were many comments that we should avoid vacuuming pages that contain only unfrozen tuples or a few dead tuples. I think it it true for efficient VACUUM, but the index-only scan does not work for the unfrozen pages. Which should we give priority? Regards, --- ITAGAKI Takahiro NTT Open Source Software Center ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster