Re: Block B-Tree concept

From: Heikki Linnakangas <heikki(at)enterprisedb(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Block B-Tree concept
Date: 2006-09-26 11:26:30
Message-ID: 45190E66.2090805@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Tom Lane wrote:
> Heikki Linnakangas <heikki(at)enterprisedb(dot)com> writes:
>
>> I've been experimenting with the idea of a so-called Block B-Tree. The
>> basic idea is that instead of storing an index tuple for each heap
>> tuple, we store an index tuple for each heap block. This dramatically
>> reduces the size of an index, leading to savings on I/O.
>>
>
> VACUUM?
>
There's a few options that I've thought of this far:

1. Whenever a tuple is found dead on page X, vacuum of the index will
have to go to that page again to see if there's any matching tuples left.

2. Have a reference counter on index tuple that's increased on insert
and decreased by vacuum.

3. Do nothing. Let index scans mark the index tuple as dead when it's
convenient. There's no correctness problem with just leaving dead index
tuples there, because you have to check the index quals on each heap
tuple anyway when you scan.

3. probably isn't an option in itself, but we might want to do some kind
of a mixture of 1 and 3.

I'm thinking that Block B-Tree is not a candidate for non-MVCC system
catalogs, but I think that's OK.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2006-09-26 11:35:54 Re: Phantom Command ID
Previous Message Tom Lane 2006-09-26 11:19:44 Re: Phantom Command ID