Size: a a a

pgsql – PostgreSQL

2020 August 09

SZ

Sergey Zhuravlev in pgsql – PostgreSQL
Reuven Starodubski
если я правильно понял, то это классная тема когда уже реплика поднялась и подключилась к мастеру, тогда будет preload в cache OS . а у меня еще на этапе старта оно медленно поднимается..
для ускорения старта без всяких реплик это тоже годится, если много валов нужно прочесть
источник

RS

Reuven Starodubski in pgsql – PostgreSQL
Sergey Zhuravlev
для ускорения старта без всяких реплик это тоже годится, если много валов нужно прочесть
есть пример как запускается?а то я не нашел
источник

m

maxp.dev in pgsql – PostgreSQL
Yaroslav Schekin
Я просто не понял, о каких "граблях" речь.
Тем более что у альтернативы (несколько серверов) "грабли" точно есть — ниже надёжность; возможно, выше TCO; вполне вероятно, придётся либо писать приложение(я) специально под эту архитектуру и заниматься настройками, либо получить и низкую производительность; возможны проблемы с консистентностью.
в любом случае под такие объемы данных почти наверняка придется заниматься и какой-то доработкой приложения
источник

m

maxp.dev in pgsql – PostgreSQL
и в первую очередь надо, конечно, определиться по характеру данных и нужных запросов к ним
источник

RS

Reuven Starodubski in pgsql – PostgreSQL
Sergey Zhuravlev
для ускорения старта без всяких реплик это тоже годится, если много валов нужно прочесть
запустится ли оно вообще, когда к постгресу подключения как такового нет, тольшо ошибка db is starting up
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
maxp.dev
в любом случае под такие объемы данных почти наверняка придется заниматься и какой-то доработкой приложения
Очень даже не факт. Было бы адекватное "железо", казалось бы.
источник

SZ

Sergey Zhuravlev in pgsql – PostgreSQL
Reuven Starodubski
запустится ли оно вообще, когда к постгресу подключения как такового нет, тольшо ошибка db is starting up
прочтите документацию, там все описано, в т.ч. и ваш кейс. Это очень элегантная утилита, с PG фактически не взаимодействует. Она только узнает какие файлы валов PG должен прочитать с диска во время старта и читает их в несколько потоков раньше его. В результате когда до этих файлов (валов) доходит очередь у PG (который читает последовательно в один поток) нужные файлы уже оказываются в Кеше ФС ОС, что существенно ускоряет ( у вас же не виндовс)
источник

m

maxp.dev in pgsql – PostgreSQL
Sergey Zhuravlev
прочтите документацию, там все описано, в т.ч. и ваш кейс. Это очень элегантная утилита, с PG фактически не взаимодействует. Она только узнает какие файлы валов PG должен прочитать с диска во время старта и читает их в несколько потоков раньше его. В результате когда до этих файлов (валов) доходит очередь у PG (который читает последовательно в один поток) нужные файлы уже оказываются в Кеше ФС ОС, что существенно ускоряет ( у вас же не виндовс)
а что, у нас сейчас чтение в несколько потоков как-то сильно ускоряет disk-io ?
источник

m

maxp.dev in pgsql – PostgreSQL
понятно, что preread в пределах кэша ускоряет, но при чем тут много потоков?
источник

SZ

Sergey Zhuravlev in pgsql – PostgreSQL
maxp.dev
понятно, что preread в пределах кэша ускоряет, но при чем тут много потоков?
надо полагать, что этот единственный процесс занимающийся рестором -- не только одним чтением файлов занимается
источник

АЛ

Аггей Лоскутников... in pgsql – PostgreSQL
Sergey Batsura
Подскажите плиз 20 миллионов записей ежедневно в течение пяти лет  в postgresql реально класть и искать по индексам? По килобайту одна запись. Это 6 миллиардов записей в год. 30 за пять лет. Постгрес потянет? С архивной схемой или можно без нее?
Есть опыт с 2-3 млн записей ежедневно (на старте были сотни тысяч - постепенно растет объем). Без партиционирования. На данный момент 1,2 млрд записей (и это не логи)

Естественно аналитику по такой таблице не соберешь в лоб - применяется аналитика на триггерах (сейчас бы сделали через очередь и запись в аналитическое хранилище).


Вообщем очень зависит от характера нагрузки и от того, как вы будете данные извлекать (достать с 10-100 записей на такой таблице - не проблема - если выборка ложится на индексы).

Важно , чтобы механизм обработки самим приложением был асинхронным - вставка на таких объемах замедляется - ввиду наличия индексов и растет со временем
источник

АЛ

Аггей Лоскутников... in pgsql – PostgreSQL
Объем БД 3+ ТБ, и это почти все "одна большая таблица" и немного справочников вокруг
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
maxp.dev
а что, у нас сейчас чтение в несколько потоков как-то сильно ускоряет disk-io ?
Он делает вот это: "reads the stream of WAL records using pg_xlogdump and schedules concurrent IOs in order to prefault PostgreSQL heap pages into the follower’s filesystem cache.", а не prefetch самих WAL, поэтому помогает.
источник

И

Иван in pgsql – PostgreSQL
Здравствуйте. Что может означать данная ошибка, в какую сторону копать?
ERROR:  invalid memory alloc request size 12776525720924364720
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Иван
Здравствуйте. Что может означать данная ошибка, в какую сторону копать?
ERROR:  invalid memory alloc request size 12776525720924364720
В сторону контекста. ;)
Что она конкретно означает, написано в её тексте, а толку-то?
Т.е. выясните где/когда она происходит, воспроизведите / получите более подробное сообщение об ошибке.
источник

SZ

Sergey Zhuravlev in pgsql – PostgreSQL
Yaroslav Schekin
Он делает вот это: "reads the stream of WAL records using pg_xlogdump and schedules concurrent IOs in order to prefault PostgreSQL heap pages into the follower’s filesystem cache.", а не prefetch самих WAL, поэтому помогает.
да точно, страницы которые потребуютя
источник

И

Иван in pgsql – PostgreSQL
Yaroslav т.е. однозначно искать проблемы, связанные с памятью, а не диском и тд?  Контекст: разворачивал базу, восстанавливал из дампа. Также было развернуто приложение. Связка успешно функционирует без подобных ошибок на другой машине.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Иван
Yaroslav т.е. однозначно искать проблемы, связанные с памятью, а не диском и тд?  Контекст: разворачивал базу, восстанавливал из дампа. Также было развернуто приложение. Связка успешно функционирует без подобных ошибок на другой машине.
Нет, не однозначно. Т.е. без контекста это сообщение практически бесполезно.

> Контекст: разворачивал базу, восстанавливал из дампа.

Так найдите конкретное место (выполнявшийся SQL), где это происходит. Это обычно есть и в выводе pg_restore (psql), и в логах PostgreSQL.
источник

И

Иван in pgsql – PostgreSQL
Вопро пример запроса с ошибкой
[2020-08-09 13:49:45.156 MSK] ERROR:  invalid memory alloc request size 12776525720924364720
[2020-08-09 13:49:45.156 MSK] STATEMENT:  INSERT INTO error_log (source, message, status) VALUES ($1, $2, $3)
источник

И

Иван in pgsql – PostgreSQL
но не факт, что это конкретно этот запрос виноват. любой запрос после сбоя даст
ERROR:  invalid memory alloc request size 12776525720924364720
источник