powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Вопрос про запись в WAL
12 сообщений из 12, страница 1 из 1
Вопрос про запись в WAL
    #40072283
Безенчук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В документации к PostgreSQL (возьмём для определённости 11 версию), сказано, что для буферизации журнала предзаписи в памяти сервера выделяется кусок, размером wal_buffers. В начало этого блока памяти постоянно записывается информация об изменениях, произведённых с данными таблиц и индексов, команды DDL и т.д. и т.п. По мере добавления в буфер новых записей, самая первая запись потихоньку продвигается к концу буфера и как только ей уже будет некуда двигаться (вся буферная память заполнена) эта запись сбрасывается на диск и сохраняется в WAL-файл. Правильно ли понят мною этот процесс или же записи из буфера в WAL-файл попадают не по одной, а порциями?
...
Рейтинг: 0 / 0
Вопрос про запись в WAL
    #40072334
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Безенчук
В документации к PostgreSQL (возьмём для определённости 11 версию), сказано, что для буферизации журнала предзаписи в памяти сервера выделяется кусок, размером wal_buffers. В начало этого блока памяти постоянно записывается информация об изменениях, произведённых с данными таблиц и индексов, команды DDL и т.д. и т.п. По мере добавления в буфер новых записей, самая первая запись потихоньку продвигается к концу буфера и как только ей уже будет некуда двигаться (вся буферная память заполнена) эта запись сбрасывается на диск и сохраняется в WAL-файл. Правильно ли понят мною этот процесс или же записи из буфера в WAL-файл попадают не по одной, а порциями?


Все есть в документации...
"The contents of the WAL buffers are written out to disk at every transaction commit"

Так же для лучшего понимания рекомендую почитать
https://www.postgresql.org/docs/13/wal-configuration.html
и
https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-WAL-BUFFERS

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Вопрос про запись в WAL
    #40072338
Безенчук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk
Так же для лучшего понимания рекомендую почитать
https://www.postgresql.org/docs/13/wal-configuration.html
и
https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-WAL-BUFFERS
После прочтения именно этой части документации, правда в переводе на русский
https://postgrespro.ru/docs/postgresql/11/wal-configuration
и
https://postgrespro.ru/docs/postgresql/11/runtime-config-wal#GUC-WAL-BUFFERS возник данный вопрос.
Maxim Boguk
Все есть в документации...
"The contents of the WAL buffers are written out to disk at every transaction commit"
Вот тут как раз и есть кроется для меня неясность: каких именно буферов? Всех, тех что вытесняются из разделяемой памяти, используемой для буферизации WAL, или же тех, что относятся к фиксируемой транзакции?
...
Рейтинг: 0 / 0
Вопрос про запись в WAL
    #40072340
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Безенчук
Maxim Boguk
Так же для лучшего понимания рекомендую почитать
https://www.postgresql.org/docs/13/wal-configuration.html
и
https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-WAL-BUFFERS
После прочтения именно этой части документации, правда в переводе на русский
https://postgrespro.ru/docs/postgresql/11/wal-configuration
и
https://postgrespro.ru/docs/postgresql/11/runtime-config-wal#GUC-WAL-BUFFERS возник данный вопрос.
Maxim Boguk
Все есть в документации...
"The contents of the WAL buffers are written out to disk at every transaction commit"
Вот тут как раз и есть кроется для меня неясность: каких именно буферов? Всех, тех что вытесняются из разделяемой памяти, используемой для буферизации WAL, или же тех, что относятся к фиксируемой транзакции?


Всех.
PS: не читайте русские переводы документации... и фильмы в переводе не смотрите.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Вопрос про запись в WAL
    #40072378
Безенчук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk
Всех.
Выходит, что фиксация любой транзакции приводит к полному перемещению всех буферов WAL из памяти на диск и значения pg_current_wal_lsn и pg_current_wal_insert_lsn на некоторое время совпадут, пока в буфер вновь что-то не будет записано?
Maxim Boguk
PS: не читайте русские переводы документации... и фильмы в переводе не смотрите.
А так же советских газет до обеда. Хорошо, постараюсь.
...
Рейтинг: 0 / 0
Вопрос про запись в WAL
    #40072387
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Безенчук
Maxim Boguk
Всех.
Выходит, что фиксация любой транзакции приводит к полному перемещению всех буферов WAL из памяти на диск и значения pg_current_wal_lsn и pg_current_wal_insert_lsn на некоторое время совпадут, пока в буфер вновь что-то не будет записано?


Вот это уже вопрос на который я не готов дать ответ без влезания в код.
Но судя по (тоже из документации)

pg_current_wal_lsn displays the current write-ahead log write location in the same format used by the above functions. Similarly, pg_current_wal_insert_lsn displays the current write-ahead log insertion location and pg_current_wal_flush_lsn displays the current write-ahead log flush location. The insertion location is the “logical” end of the write-ahead log at any instant, while the write location is the end of what has actually been written out from the server's internal buffers, and the flush location is the last location known to be written to durable storage. The write location is the end of what can be examined from outside the server, and is usually what you want if you are interested in archiving partially-complete write-ahead log files. The insertion and flush locations are made available primarily for server debugging purposes.

таки да.

Основной вопрос - какую задачу вы решаете что полезли в эти дебри фактически отладочной информации.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Вопрос про запись в WAL
    #40072398
Безенчук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk, задача, которую я решаю - это подготовка базы данных к предстоящему увеличению в несколько (до 5) раз нагрузки. Поэтому я разбираюсь, как работают вспомогательные процессы Postgres, которые пишут на диск.
...
Рейтинг: 0 / 0
Вопрос про запись в WAL
    #40072410
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Безенчук
Maxim Boguk, задача, которую я решаю - это подготовка базы данных к предстоящему увеличению в несколько (до 5) раз нагрузки. Поэтому я разбираюсь, как работают вспомогательные процессы Postgres, которые пишут на диск.

в таком случае - вы занимаетесь ерундой.
...
Рейтинг: 0 / 0
Вопрос про запись в WAL
    #40072411
Безенчук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mefman
в таком случае - вы занимаетесь ерундой.
Думаю, что не совсем ерундой, скорее - не в том направлении.
...
Рейтинг: 0 / 0
Вопрос про запись в WAL
    #40072467
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Безенчук
mefman
в таком случае - вы занимаетесь ерундой.
Думаю, что не совсем ерундой, скорее - не в том направлении.


Явно не в том (судя по вашему вопросу).

Я бы рекомендовал начинать с нагрузочного тестирования на требуемый уровень нагрузки + 30-50%.. и после этого смотреть где у вас узкие места (практика показывает что угадать заранее даже с 20+ годами опыта почти не реально при таком росте нагрузки кроме совсем уж очевидных случаев когда процессора и так уже не хватает).



--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Вопрос про запись в WAL
    #40072477
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Безенчук
mefman
в таком случае - вы занимаетесь ерундой.
Думаю, что не совсем ерундой, скорее - не в том направлении.

Ну и в общем случае - читайте про тюнинг автовакуума , чекпойнтера и бгврайтера .
...
Рейтинг: 0 / 0
Вопрос про запись в WAL
    #40072546
Безенчук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk, mefman, спасибо!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Вопрос про запись в WAL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]