Сбои узла прокси-сервера базы данных во время записи
В случаях, когда прокси-сервер базы данных (например, maxscale) присутствует между серверной базой данных и клиентом, что происходит с записью в случае сбоя самого прокси-узла. В частности, меня интересует следующий сценарий:
- Клиент выдает команду записи (предположим, что автоматическая фиксация включена).
- Прокси-сервер базы данных получает команду записи от клиента и отправляет ее в базу данных бэкэнда.
- Бэкэнд-база данных получает команду записи, выполняет запись, фиксирует транзакцию и отправляет подтверждение обратно на прокси-узел.
- Прокси-узел получает подтверждение. Но, прежде чем прокси-узел может отправить подтверждение обратно клиенту, он умирает.
В этом сценарии транзакция была зафиксирована, и что касается базы данных, ее клиент (т.е. прокси-узел) был проинформирован. Однако фактический клиент не знает, была ли совершена транзакция или нет.
Как прокси базы данных справляются с этим сценарием?
1 ответ
В случае MaxScale, когда клиентское соединение внезапно закрывается, соединение с базой данных также закрывается. Это делает поведение похожим на то, как сервер будет работать без прокси.