pgsql/src/backend/storage/lmgr lwlock.c

Поиск
Список
Период
Сортировка
От tgl@postgresql.org
Тема pgsql/src/backend/storage/lmgr lwlock.c
Дата
Msg-id 200201071633.g07GX3Q10705@postgresql.org
обсуждение исходный текст
Список pgsql-committers
CVSROOT:    /cvsroot
Module name:    pgsql
Changes by:    tgl@postgresql.org    02/01/07 11:33:01

Modified files:
    src/backend/storage/lmgr: lwlock.c

Log message:
    Tweak LWLock algorithms so that an awakened waiter for a lock is not
    granted the lock when awakened; the signal now only means that the lock
    is potentially available.  The waiting process must retry its attempt
    to get the lock when it gets to run.  This allows the lock releasing
    process to re-acquire the lock later in its timeslice.  Since LWLocks
    are usually held for short periods, it is possible for a process to
    acquire and release the same lock many times in a timeslice.  The old
    spinlock-based implementation of these locks allowed for that; but the
    original coding of LWLock would force a process swap for each acquisition
    if there was any contention.  Although this approach reopens the door to
    process starvation (a waiter might repeatedly fail to get the lock),
    the odds of that being a big problem seem low, and the performance cost
    of the previous approach is considerable.


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

Предыдущее
От: meskes@postgresql.org
Дата:
Сообщение: pgsql/src/interfaces/ecpg ChangeLog preproc/pr ...
Следующее
От: tgl@postgresql.org
Дата:
Сообщение: pgsql/contrib/pgcrypto pgcrypto.sql.in