[COMMITTERS] pgsql: Avoid superfluous work for commits during logical slotcreation.

Поиск
Список
Период
Сортировка
От Andres Freund
Тема [COMMITTERS] pgsql: Avoid superfluous work for commits during logical slotcreation.
Дата
Msg-id E1d9fGp-00087x-Cv@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Avoid superfluous work for commits during logical slot creation.

Before 955a684e0401 logical decoding snapshot maintenance needed to
cope with transactions it might not have seen in their entirety. For
such transactions we'd to assume they modified the catalog (could have
happened before we were watching), and thus a new snapshot had to be
built, and distributed to concurrently running transactions.

That's problematic because building a new snapshot isn't that cheap ,
especially as the the array of committed transactions needs to be
sorted.  When creating a slot on a server with a lot of transactions,
this could make logical slot creation infeasibly expensive.

After 955a684e0401 there's no need to deal with transaction that
aren't guaranteed to be fully observable.  That allows to avoid
building snapshots for transactions that haven't modified catalog,
even before reaching consistency.

While this isn't necessarily a bugfix, slot creation being impossible
in some production workloads, is severe enough to warrant
backpatching.

Author: Andres Freund, based on a quite different patch from Petr Jelinek
Analyzed-By: Petr Jelinek
Reviewed-By: Petr Jelinek
Discussion: https://postgr.es/m/f37e975c-908f-858e-707f-058d3b1eb214@2ndquadrant.com
Backpatch: 9.4-, where logical decoding has been introduced

Branch
------
REL9_4_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/2dca50b764d40c8cf4edeaaaf09a3292aeb7026e

Modified Files
--------------
src/backend/replication/logical/snapbuild.c | 124 +++++++++++++++-------------
1 file changed, 68 insertions(+), 56 deletions(-)


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

Предыдущее
От: Andres Freund
Дата:
Сообщение: [COMMITTERS] pgsql: Avoid superfluous work for commits during logical slotcreation.
Следующее
От: Andres Freund
Дата:
Сообщение: [COMMITTERS] pgsql: Specify --outputdir for isolation install check,not just plain