pgsql: Improve LWLock scalability.

Поиск
Список
Период
Сортировка
От Andres Freund
Тема pgsql: Improve LWLock scalability.
Дата
Msg-id E1Y4Bau-0005fT-DD@gemulon.postgresql.org
обсуждение исходный текст
Ответы Re: pgsql: Improve LWLock scalability.  (Andres Freund <andres@anarazel.de>)
Re: pgsql: Improve LWLock scalability.  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-committers
Improve LWLock scalability.

The old LWLock implementation had the problem that concurrent lock
acquisitions required exclusively acquiring a spinlock. Often that
could lead to acquirers waiting behind the spinlock, even if the
actual LWLock was free.

The new implementation doesn't acquire the spinlock when acquiring the
lock itself. Instead the new atomic operations are used to atomically
manipulate the state. Only the waitqueue, used solely in the slow
path, is still protected by the spinlock. Check lwlock.c's header for
an explanation about the used algorithm.

For some common workloads on larger machines this can yield
significant performance improvements. Particularly in read mostly
workloads.

Reviewed-By: Amit Kapila and Robert Haas
Author: Andres Freund

Discussion: 20130926225545.GB26663@awork2.anarazel.de

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/ab5194e6f617a9a9e7aadb3dd1cee948a42d0755

Modified Files
--------------
src/backend/storage/lmgr/lwlock.c |  931 +++++++++++++++++++++++++------------
src/include/storage/lwlock.h      |   24 +-
2 files changed, 653 insertions(+), 302 deletions(-)


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

Предыдущее
От: Andres Freund
Дата:
Сообщение: Re: pgsql: Move pg_lzcompress.c to src/common.
Следующее
От: Andres Freund
Дата:
Сообщение: pgsql: Add capability to suppress CONTEXT: messages to elog machinery.