| From: | Simon Riggs <simon(at)2ndquadrant(dot)com> |
|---|---|
| To: | Bruce Momjian <bruce(at)momjian(dot)us> |
| Cc: | Simon Riggs <simon(at)2ndquadrant(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: Lossy Index Tuple Enhancement (LITE) |
| Date: | 2016-08-04 00:16:20 |
| Message-ID: | CANP8+j+K9QOQme76Dgw3J6w-tve6PxCiZ7UOh7_y-4mWV+3c-A@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On 4 August 2016 at 00:56, Bruce Momjian <bruce(at)momjian(dot)us> wrote:
> On Wed, Aug 3, 2016 at 07:28:52PM -0400, Bruce Momjian wrote:
>> With LITE, you can avoid the creation of duplicate-value index entries
>> for indexes without changed column values by using a bitmap in place of
>> the tid item number (16 bits). It can't remove dead tids.
>
> How would you handle the case where there are two LITE index entries
> pointing to two different update chains on the same page?
> When you
> search the page for the first heap chain, could the second index entry
> find the same chain. How would you know which index entry is which
> chain?
It's easiest to understand this is by imagining each LITE pointer
pointing to a whole page. The chains aren't followed during the scan,
individual heap tuple versions are treated as they would be by a seq
scan.
That is more expensive than we might like, so the bitmap/linepointer
thing is just an extra tweak to avoid scanning the whole block. The
bitmap refers to ranges of linepointers, not chains. i.e. 0-15, 16-31,
32-47 etc
> Would you only add a LITE index entry when there isn't an
> existing index entry for the same values and heap page? That seems
> quite complicated.
The insertion algorithm is described. Doesn't seem complicated to me.
--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Craig Ringer | 2016-08-04 00:22:25 | Re: Implementing full UTF-8 support (aka supporting 0x00) |
| Previous Message | Kyotaro HORIGUCHI | 2016-08-04 00:07:33 | Re: Possible duplicate release of buffer lock. |