Re: Snapshot Reuse

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: Snapshot Reuse
Дата
Msg-id 200803031905.m23J5oL25303@momjian.us
обсуждение исходный текст
Ответ на Snapshot Reuse  (Simon Riggs <simon@2ndquadrant.com>)
Список pgsql-hackers
I certainly would be interested to see if it improves performance.

---------------------------------------------------------------------------

Simon Riggs wrote:
> In Read Committed transactions we take snapshots much more frequently
> than transactions begin and commit. It would be help scalability if we
> didn't need to re-take a snapshot. That's only helpful if the chances of
> seeing the snapshot is relatively high.
> 
> Now that we have virtual transactions we may more frequently find
> ourselves taking identical snapshots.
> 
> If we had a counter that incremented each time the main snapshot altered
> in a meaningful way we could set that atomically. We could then read
> this when we take a snapshot to see if it matches our existing snapshot;
> if so then drop the lock quickly and continue with what we already have.
> 
> I can see some downsides to this as well as potential benefits:
> 
> * we ping the counter across CPUs - yes, we will, but that's probably
> better than pinging the whole procarray
> 
> * this relies upon the rate of change of snapshots - need to do the math
> to see how often this might apply
> 
> Not sure yet myself, but it seems worth recording in case it spurs an
> idea from someone else.
> 
> -- 
>   Simon Riggs
>   2ndQuadrant  http://www.2ndQuadrant.com 
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://postgres.enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +


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

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: UUID data format 4x-4x-4x-4x-4x-4x-4x-4x
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: proposal: plpgsql return execute ...