Re: GiST insert algorithm rewrite
От | Heikki Linnakangas |
---|---|
Тема | Re: GiST insert algorithm rewrite |
Дата | |
Msg-id | 4D10EB3A.1080207@enterprisedb.com обсуждение исходный текст |
Ответ на | Re: GiST insert algorithm rewrite (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>) |
Ответы |
Re: GiST insert algorithm rewrite
|
Список | pgsql-hackers |
On 16.12.2010 15:52, Heikki Linnakangas wrote: > 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. One final version, with a bug fix wrt. root page split and some cleanup. I'm planning to commit this before Christmas. It's a big patch, so review would be much appreciated. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com
Вложения
В списке pgsql-hackers по дате отправления: