170 похожих чатов

@Tishka17 помнится ты не так давно говорил о том, что

бывают нужны отдельно пулы (бд) на чтение и на запись. Интерес такой: а зачем? Это оптимизация такая?

20 ответов

17 просмотров

Это если ты захочешь использовать репликацию

Если говорить про PG, то примерно так: 1. на каждое пользовательское соединение один процесс дополнительный. Сколько у типичного проекта по пользователям обычно нагрузка? Отсюда потребность в пулере, к примеру pgbouncer 2. Обычно создают кластер СУБД, где одна машинка является мастером, а другие репликами. Все по записи долбится на первую, а если она ляжет, то ее роль подхватывает одна из реплик. Отсюда вывод, чтоб реплика содержала up to date, почти up to date состояние нужно делать репликацию. чтоб не грузить лишнего мастер можно раскидать READ-операции по репликам

Добавлю на всякий, что master-master репликация - это дорого и сложно, поэтому разделение на чтение и запись. Со слейв реплик можно сравнительно недорого и беспроблемно читать и не напрягать этими запросами мастер.

Dmitry
Если говорить про PG, то примерно так: 1. на каждо...

Только нужна (semi-)sync репликация, чтобы нормально разделять чтение и запись

evle
Добавлю на всякий, что master-master репликация - ...

Стоит разделять стратегию репликации и стратегию разделения запросов. Active master - passive master не сильно отличает от обычного master-slave.

asce
Стоит разделять стратегию репликации и стратегию р...

Это вполне взаимосвязанные вещи, хоть и, понятно, не идентичные.

evle
Это вполне взаимосвязанные вещи, хоть и, понятно, ...

Да, но так-то и в реплику можно писать, если это предусмотрено

asce
Да, но так-то и в реплику можно писать, если это п...

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

evle
В том и дело, что чтобы сделать реплику, в которую...

Зависит от конкретного софта. С логической репликацией обычно нет проблем. Тут скорее зависит от бизнес задач, которые решает реаликация. Классическое создание реплик и деление запросов - масштабирование чтения, но бывают и другие задачи

Ну ок, в каких случаях мультимастер — простая задача, что можно себе позволить без боли и страданий распределять запросы на запись по сколь-либо масштабируемому числу реплик? Во всех случаях, когда мне такое попадалось — это делалось достаточно нетривиальными усилиями и адаптацией кода именно под такую возможность — и иначе просто не удавалось сделать.

evle
Ну ок, в каких случаях мультимастер — простая зада...

Ну мультимастер в zookeper из коробки работает. Можно писать/читать из любой ноды. В последних версиях xtradb cluster, вроде, нет проблем с записью на любую ноду.

asce
Ну мультимастер в zookeper из коробки работает. Мо...

* в зукипере мульти-мастер с точки зрения запросов, что можно писать куда угодно Так-то там есть лидер

asce
* в зукипере мульти-мастер с точки зрения запросов...

Но с классической точки зрения, это мульти-мастер

asce
Ну мультимастер в zookeper из коробки работает. Мо...

Ну так зукипер не про производительность и ситуации, когда нам нужно множество реплик для распределения нагрузки. Что там наделали в XtraDB не смотрел, но раньше там весьма классический мультимастер с типичными для него ограничениями. Явно не то, что можно просто взять и волшебным образом отмасштабировать в зависимости от нагрузки и получить пропорциональное числу нод ускорение.

evle
Ну так зукипер не про производительность и ситуаци...

Я и говорю, что зависит от целей, но чтение в зукипере распределяется, оно не требует согласование кластера. Раньше там точно был active/passive master. К сожалению, волшебства не существует :) Есть только крутой маркетинг (привет, монга)

evle
Ну так зукипер не про производительность и ситуаци...

Запись без шардирования, к сожалению, не отмасштабировать(

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

evle
Напоминаю исходную мысль — деление на пулы подключ...

И я повторюсь - это не вопрос топологии репликации, а вопрос бизнес задач и реализации

asce
И я повторюсь - это не вопрос топологии репликации...

Ладно, меня не поняли, значит не поняли. Бывает.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта