Как стать автором
Обновить

Пишем в PostgreSQL на субсветовой: 1 host, 1 day, 1TB

Время на прочтение 5 мин
Количество просмотров 13K
Всего голосов 19: ↑19 и ↓0 +19
Комментарии 7

Комментарии 7

Спасибо за статью! Почему не используете pg_pathman для секционирования? Как именно вы кешируете данные? У вас одна БД на кластер? Рассматриваете увеличение пропускной способности на чтение?

Почему не используете pg_pathman для секционирования?
Для наших задач это несколько избыточное решение.
Гораздо проще всегда иметь предсозданные секции на завтра-послезавтра. И делать это по cron в период минимальной нагрузки, как и перепаковку «стабилизировавшейся» секции, запись в которую больше не идет.
Про это будет отдельная статья.

Как именно вы кешируете данные?
В памяти коллектора хранится Set, где ведется отметка отправленного в «словари».

У вас одна БД на кластер?
Да. Поскольку это логи, то их потерять жалко, но не настолько критично, чтобы задействовать еще одно хранилище такого же объема.
Пока нам одного хоста хватает и запас кратный.

Рассматриваете увеличение пропускной способности на чтение?
Не понял вопроса.

про pg_pathman пишу, потому что ваше решение под заголовком PG10: второй шанс мне показалось сложноватым, у них в либе всё реализовано и можно использовать с минимальными настройками, просто попробуйте на досуге, может понравится. Про запись понятно, ускорили, да и ssd тоже позволит расти в ширь. Всё равно рано или поздно крупная нагруженная БД думает стать кластером)) я сам в кластерах ноль, но было бы приятно послушать опыт "коллег по цеху")

ваше решение под заголовком PG10: второй шанс мне показалось сложноватым
Просто это тоже не финальное состояние. Потом мы отказались от записи в прокси-таблицу и начали лить прямо в целевую секцию.
Прокси осталась только для словарей, чтобы лить через COPY и туда, но все-таки реагировать на unique_violation, если через Set какой-то дубль таки просочился.

крупная нагруженная БД думает стать кластером
У нас обычно применяется шардинг. С кластерами иногда возникают нетривиальные проблемы.
> У нас обычно применяется шардинг. С кластерами иногда возникают нетривиальные проблемы.
Это всё к тому же: логика работы кластера должна работать независимо от самого кластера.
Чем пользуетесь для шардинга?
Конкретно в этом проекте — ничем, нет необходимости пока. В других доступ к данным рулится на уровне БЛ — то есть ничего типа PL/Proxy или pgpool.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий