Убийство клиента не гарантирует мгновенной остановки запроса в БД: сервер может обнаружить разрыв позже или успеть завершить операцию.
Что произойдёт с запросом на стороне базы данных, если приложение (клиент), выполнявшее запрос, было убито (например, под)?
Убийство клиента не гарантирует мгновенной остановки запроса в БД: сервер может обнаружить разрыв позже или успеть завершить операцию.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Что произойдёт с запросом на стороне базы данных, если приложение (клиент), выполнявшее запрос, было убито (например, под)?
Ответ
Убийство клиента не гарантирует мгновенной остановки запроса в БД: сервер может обнаружить разрыв позже или успеть завершить операцию.
Поведение зависит от СУБД, протокола, pool/proxy и timeout. Незавершённая транзакция при закрытии сессии обычно откатывается, но уже подтверждённый commit не отменяется. Используйте серверные лимиты времени и идемпотентность, поскольку потеря ответа оставляет результат неопределённым для клиента.