🐘 «Синхронная реплика» PostgreSQL
Я в последнее время был очень сильно занят — мы переводили одну из наших крупных инсталляций документооборота на «Постгрес» (правда перевод самой крупной впереди, но у меня чувство, что мы будем ждать следующие версии).
Много любопытного я узнал об этой СУБД, возможно когда-нибудь напишу, если не забудется, но самое примечательное следующее. На «Оракле» у нас, естественно, был кластер, это очень удобно программисту — этакий «чёрный ящик», знай кидай туда запросы, оно само разрулит (на самом деле, это типичная «дырявая абстракция», но чаще всего напрягаться не надо).
На «Постгресе» мы, конечно, захотели аналога и, казалось, нашли его — pgpool-II, который разделяет запросы на пишущие и читающие, которые потом распределяются им на мастер и синхронные реплики.
Наши нагрузочные испытания показали, что на пиковых нагрузках синхронные реплики никакие не синхронные, оказалось, что «синхронность» реплики только в том она говорит мастеру «я всё приняла», когда данные попали на диск и именно в этот момент.
Когда нагрузка близка к пиковой, данные физически на диске есть, а логически они ещё не считываются. То есть это скорее пригодно для того, чтобы в случае смерти мастера быстро поменять его на реплику, чем для схемы с распределением нагрузки.
Это будет исправлено в будущей 9.6, а пока живём с тем, что есть.
А в оракле всё честно?
Комментарий для hshhhhh.name:
Не понял что в этом контексте означает «честно». Мы там кластер использовали, в «Постгресе» нет кластера.
А в чём плюсы перехода на постгрес, кроме того что он бесплатный/опенсоурсный ?
Комментарий для dinoelq:
Кроме бесплатности плюсов нет, зато есть закон: https://roem.ru/21-06-2015/198491/substitution-ru/
А постгресс -- не импортное ПО?
Комментарий для mixa:
Нет, коллективное.