pgsql: Rationalize parallel dump/restore's handling of worker cmd/statu

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Rationalize parallel dump/restore's handling of worker cmd/statu
Дата
Msg-id E1bowbz-0002Rr-Gn@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Rationalize parallel dump/restore's handling of worker cmd/status messages.

The existing APIs for creating and parsing command and status messages are
rather messy; for example, archive-format modules have to provide code
for constructing command messages, which is entirely pointless since
the code to read them is hard-wired in WaitForCommands() and hence
no format-specific variation is actually possible.  But there's little
foreseeable reason to need format-specific variation anyway.

The situation for status messages is no better; at least those are both
constructed and parsed by format-specific code, but said code is quite
redundant since there's no actual need for format-specific variation.

To add insult to injury, the first API involves returning pointers to
static buffers, which is bad, while the second involves returning pointers
to malloc'd strings, which is safer but randomly inconsistent.

Hence, get rid of the MasterStartParallelItem and MasterEndParallelItem
APIs, and instead write centralized functions that construct and parse
command and status messages.  If we ever do need more flexibility, these
functions can be the standard implementations of format-specific
callback methods, but that's a long way off if it ever happens.

Tom Lane, reviewed by Kevin Grittner

Discussion: <17340.1464465717@sss.pgh.pa.us>

Branch
------
master

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

Modified Files
--------------
src/bin/pg_dump/parallel.c            | 232 +++++++++++++++++++++-------------
src/bin/pg_dump/pg_backup_archiver.h  |  11 +-
src/bin/pg_dump/pg_backup_custom.c    |  75 +----------
src/bin/pg_dump/pg_backup_directory.c | 115 ++---------------
src/bin/pg_dump/pg_backup_tar.c       |   3 -
5 files changed, 162 insertions(+), 274 deletions(-)


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Redesign parallel dump/restore's wait-for-workers logic.
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Make struct ParallelSlot private within pg_dump/parallel.c.