Re: GiST insert algorithm rewrite

Поиск
Список
Период
Сортировка
Искать
От
Heikki Linnakangas
Тема
Re: GiST insert algorithm rewrite
Дата
Msg-id
4D0A19A1.2040700@enterprisedb.com
Ответ на
Список
Дерево обсуждения
GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Bruce Momjian <bruce@momjian.us>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Robert Haas <robertmhaas@gmail.com>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Bruce Momjian <bruce@momjian.us>
Re: GiST insert algorithm rewrite Robert Haas <robertmhaas@gmail.com>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Robert Haas <robertmhaas@gmail.com>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Tom Lane <tgl@sss.pgh.pa.us>
Re: GiST insert algorithm rewrite Greg Stark <gsstark@mit.edu>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Tom Lane <tgl@sss.pgh.pa.us>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Tom Lane <tgl@sss.pgh.pa.us>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Tom Lane <tgl@sss.pgh.pa.us>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Robert Haas <robertmhaas@gmail.com>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Increasing max # of backup blocks (was Re: GiST insert algorithm rewrite) Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Robert Haas <robertmhaas@gmail.com>
Re: GiST insert algorithm rewrite Tom Lane <tgl@sss.pgh.pa.us>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Robert Haas <robertmhaas@gmail.com>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Robert Haas <robertmhaas@gmail.com>
Re: GiST insert algorithm rewrite Tom Lane <tgl@sss.pgh.pa.us>
Re: GiST insert algorithm rewrite Robert Haas <robertmhaas@gmail.com>
Re: GiST insert algorithm rewrite Teodor Sigaev <teodor@sigaev.ru>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Teodor Sigaev <teodor@sigaev.ru>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Re: GiST insert algorithm rewrite Teodor Sigaev <teodor@sigaev.ru>
Re: GiST insert algorithm rewrite Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
On 13.12.2010 20:30, Tom Lane wrote:
> Can we fix it so that each child page is updated, and its downlink
> inserted, as a separate atomic action?  That'd require each intermediate
> state to be consistent and crash-safe, but I think you really need the
> intermediate states to be consistent anyway because of concurrent scans.

Here's an updated patch, using that idea.If a page split into more than 
two pages, the downlinks for the pages are inserted to the parent 
one-by-one, right-to-left, until there's only two remaining. Finally the 
downlink for the last remaining right page is inserted and the downlink 
for the original page is updated as one atomic operation.

It was a pretty big rewrite again, but seems to work now. I tested 
splits that span more than two pages by rigging the btree_gist picksplit 
function to choose very bad split points, and the fix-split logic by 
adding elog(ERROR) in strategic places to sometimes leave splits incomplete.

-- 
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления
От: Andres Freund
Дата:
От: Robert Haas
Дата:
FAQ