Пишу, по большей части, про историю, свою жизнь и немного про программирование.

🐘 «Синхронная реплика» PostgreSQL

Я в последнее время был очень сильно занят — мы переводили одну из наших крупных инсталляций документооборота на «Постгрес» (правда перевод самой крупной впереди, но у меня чувство, что мы будем ждать следующие версии).

Много любопытного я узнал об этой СУБД, возможно когда-нибудь напишу, если не забудется, но самое примечательное следующее. На «Оракле» у нас, естественно, был кластер, это очень удобно программисту — этакий «чёрный ящик», знай кидай туда запросы, оно само разрулит (на самом деле, это типичная «дырявая абстракция», но чаще всего напрягаться не надо).

На «Постгресе» мы, конечно, захотели аналога и, казалось, нашли его — pgpool-II, который разделяет запросы на пишущие и читающие, которые потом распределяются им на мастер и синхронные реплики.

Наши нагрузочные испытания показали, что на пиковых нагрузках синхронные реплики никакие не синхронные, оказалось, что «синхронность» реплики только в том она говорит мастеру «я всё приняла», когда данные попали на диск и именно в этот момент.

Когда нагрузка близка к пиковой, данные физически на диске есть, а логически они ещё не считываются. То есть это скорее пригодно для того, чтобы в случае смерти мастера быстро поменять его на реплику, чем для схемы с распределением нагрузки.

Это будет исправлено в будущей 9.6, а пока живём с тем, что есть.

6 комментариев
hshhhhh.name 2016

А в оракле всё честно?

Евгений Степанищев (bolknote.ru) 2016

Комментарий для hshhhhh.name:

Не понял что в этом контексте означает «честно». Мы там кластер использовали, в «Постгресе» нет кластера.

dinoelq 2016

А в чём плюсы перехода на постгрес, кроме того что он бесплатный/опенсоурсный ?

Евгений Степанищев (bolknote.ru) 2016

Комментарий для dinoelq:

Кроме бесплатности плюсов нет, зато есть закон: https://roem.ru/21-06-2015/198491/substitution-ru/

mixa 2016

А постгресс -​-​ не импортное ПО?

Евгений Степанищев (bolknote.ru) 2016

Комментарий для mixa:

Нет, коллективное.