Re: Bulk Insert tuning

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: Bulk Insert tuning
Дата
Msg-id 47D68363.8090009@enterprisedb.com
обсуждение исходный текст
Ответ на Re: Bulk Insert tuning  (Gavin Sherry <swm@alcove.com.au>)
Список pgsql-patches
Gavin Sherry wrote:
> On Tue, Feb 26, 2008 at 02:43:51PM +0000, Simon Riggs wrote:
>> Following patch implements a simple mechanism to keep a buffer pinned
>> while we are bulk loading.
>
> CK Tan and I worked on something similar but the problem we discovered
> was self locking. Consider a primary key: we insert a tuple into a
> buffer and do not release the exclusive lock. The btree code fetches the
> buffer and tries to share lock it, but we've already exclusive locked
> it. Oops. The performance improvement, though, makes it worth seeing if
> there is a solution.

That's not a problem if you only keep the buffer pinned, not locked. In
my experience, pinning is the more expensive part, with the lookup into
the buffer lookup table. Locking isn't free either, of course, but just
avoiding the pin+unpin would help a lot.

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

В списке pgsql-patches по дате отправления:

Предыдущее
От: "Heikki Linnakangas"
Дата:
Сообщение: Re: TransactionIdIsInProgress() cache
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: TransactionIdIsInProgress() cache