Re: max_wal_senders must die

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: max_wal_senders must die
Дата
Msg-id 10468.1289768133@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: max_wal_senders must die  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Ответы Latches with weak memory ordering (Re: max_wal_senders must die)  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Список pgsql-hackers
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> writes:
> On 13.11.2010 17:07, Tom Lane wrote:
>> Robert Haas<robertmhaas@gmail.com>  writes:
>>> Come to think of it, I'm not really sure I understand what protects
>>> SetLatch() against memory ordering hazards.  Is that actually safe?
>> 
>> Hmm ... that's a good question.  It certainly *looks* like it could
>> malfunction on machines with weak memory ordering.

> Can you elaborate?

Weak memory ordering means that stores into shared memory initiated by
one processor are not guaranteed to be observed to occur in the same
sequence by another processor.  This implies first that the latch code
could malfunction all by itself, if two processes manipulate a latch at
about the same time, and second (probably much less likely) that there
could be a malfunction involving a process that's waited on a latch not
seeing the shared-memory status updates that another process did "before"
setting the latch.

This is not at all hypothetical --- my first attempt at rewriting the
sinval signaling code, a couple years back, failed on PPC machines in
the buildfarm because of exactly this type of issue.

The quick-and-dirty way to fix this is to attach a spinlock to each
latch, because we already have memory ordering sync instructions in
the spinlock primitives.  Doing better would probably involve developing
a new set of processor-specific primitives --- which would be pretty
easy for the processors where we have gcc inline asm, but it would take
some research for the platforms where we're relying on magic OS-provided
subroutines.
        regards, tom lane


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

Предыдущее
От: Darren Duncan
Дата:
Сообщение: Re: Refactoring the Type System
Следующее
От: Josh Berkus
Дата:
Сообщение: Re: WIP: extensible enums