LINUX.ORG.RU
ФорумAdmin

Помогите в выборе решения для кластера postgresql

 ,


2

2

Доброго времени суток!

Хотел бы задать вопрос, который уже неоднократно тут поднимался, но все же.

Есть задача поднять PostgreSQL-кластер.

Мульти-мастер не рассматриваю, так как везде пишут, что это не совсем стабильное решение. Хотя возможно что-то изменилось в данный момент.

Хотелось бы настроить для теста трех-узловой кластер в режиме Active/Standby. Возможно ли такое, так чтобы Stanby-серверов было 2? Как я понимаю, реализуется это через pg_pool-II.

Я новичок в postgres и потому все время с оглядкой смотрю на mariadb с её galera.

Честно, совсем не представляю себе вообще какую реализацию репликации выбрать.

Смотрел в сторону postgresql-xl и citus, но пока не разбирался с ними основательно. И стоит ли разбираться с ними вообще?



Последнее исправление: dmnord (всего исправлений: 1)

pgpool

Не используй его.

Бери обычную нативную репликацию в одну руку, barman для бэкапов - в другую руку и всё у тебя будет хорошо.

AnDoR ★★★★★
()
Ответ на: комментарий от AnDoR

А что понимается под обычной репликацией? Это она реализована в последних версиях или она всегда там была?

dmnord
() автор топика
Ответ на: комментарий от dmnord

Если для тебя «последние версии» - это версии начиная с 9.0 (выпущено в 2010 году), то да.

AnDoR ★★★★★
()

Да кое-что изменилось, но пока не идеально. Что-то близкое к иделу вроде обещают в версии 9.10. На данный момент самым простым и достаточно надежным является BDR в версии 9.4 но только всеравно нужно патченую ставить от разработчика. Недавно настроил Multi master из 3х нод. Пока работает очень даже нелохо. Там правда есть одно неприянтное ограничение, последовательности с автоинкрементом не работают, поэтому нужно использовать uuid. Ну и некоторые некритичные вещи не реплицируются. А со всякими postgresql-xl и т.п. там все слишком сложно ИМХО. Разобраться конечно со всем можно, но вот времени уйдет довольно много.

merlin-shadow
()
Ответ на: комментарий от merlin-shadow

Судя о текущем положении BDR на официальном сайте, выходит то, что версия 1.0.0 уже полностью объеденена с основным кодом postgresql в версии 9.4. А значит версию 9.5 можно смело использовать без всяких патчей. Но меня немного смущает слово «асинхронный». Получается ты перечислил проблемы как раз-таки в случает с асинхронным master-master?

dmnord
() автор топика

Ситуация такая.

Есть куча форков PG под разные цели, но нет конечного решения. Свести все задумки планируют в PostgreSQL 10.0. Когда он выйдет и что там будет никому не известно, все только на стадии обсуждения.

Я в своей компании построил кластер на основе:
Patroni - https://github.com/zalando/patroni
Pgbouncer
Haproxy
etcd
confd
PostgreSQL 9.6
pgBackRest
saltstack

Будут вопросы, задавай, что не по NDA, отвечу.

uspen ★★★★★
()
Ответ на: комментарий от dmnord

Да. Но синхронный походу имеет почти теже грабли, только работает намного медленнее.

merlin-shadow
()
Ответ на: комментарий от uspen

А не мог бы ты пояснить, по каким критериям ты выбирал между pgbouncer и pgpool2? Сразу другой вопрос - какой именно тип репликации используется (асинхронный, синхронный или BDR)?

По поводу confd и etcd, я понимаю, что там моменты специфичные под вашу конкретную архитектуру. А потому не буду ничего спрашивать, хотя интересно не менее.

dmnord
() автор топика
Ответ на: комментарий от dmnord

Критерий производительности. Так как логика не нужна. И вообще pgpool монструозен.

Репликация асинхронная - деньги не пишем.

Да, специфичное, etcd потому что простое k/v хранилище. confd просто по темплейту конфигурирует сервис

uspen ★★★★★
()
Ответ на: комментарий от uspen

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

А жизнеспособна ли реализация postgres-xl, на твой взгляд? Смотрю в его сторону, но с оглядкой на традиционную синхронную репликацию.

dmnord
() автор топика
Ответ на: комментарий от dmnord

Не работал.
Смотрел видео (не смог найти) с Сигаевым и Бортуновым, где они рассказывали о различиях форков постгреса и что будет в 10.0 относительно их. Короче в форках не все гладко и деньги там считать точно не стоит. И из всех форков нет конечного решения, которое бы покрывало все недочеты у других форков

Вот видео с лекции, в конце там о 10.0 https://youtu.be/w-dtKpzFFis?t=1h30m19s

uspen ★★★★★
()
Ответ на: комментарий от uspen

А не мог бы ты подсказать в какую сторону копать, если деньги надо считать. При чем не только деньги. Надо отслеживать реал-тайм происходящих операций.

dmnord
() автор топика
Ответ на: комментарий от dmnord

Опыта такого нет. Если ты про OLTP так и гугли. Если просто надо чтоб не потерялись зафиксированные транзакции, тогда используй ванильный постгрес и синхронную репликацию. Причем в 9.6 сделали возможность использовать более одной синхронной реплики и даже установить условие, что их должно быть определенное кол-во - это все добавляет надежности.

В 10.0 будет уже «честная» синхронная репликация, там будет функция подтверждения на синхронной реплике конкретно и только надежной записи транзакции. Без лишних условий.

uspen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.