Первая строчка однозначно выполняет COMMIT (см yii2). Вам придется поверить мне на слово.
Получается такая цепочка: станция В --> свитч 6 --> хаб 5 --> свитч 2 -->(хаб 4 (нет совпадений) и маршрутизатор 1) --> свитч 3 --> станция Е
begin;
insert into ...
begin; -- implicit commit here
insert another row
rollback;
нигде ничего автоматом не коммитится никогда
ребята, смотрите: у нас дофига нагрузки вот от этих пары oltp запросов. Они же вроде не критичны к мелкому лагу? Давайте их на реплику скинем.
А вот этот милый запрос на 20% суточной нагрузки - это же вообще аналитика за прошлые сутки для менеджеров, давайте на аналитическую slow реплику перенесём, нафиг оно нам на мастере автовакууму мешает
И это не имеет абсолютно никакого отношения к транзакционной работе.
Если работа с базой из приложения не проектировалась с оглядкой на конкурентный транзакционный доступ - у вас ситуация номер два. Читатель будет получать что-то. Что-то согласованное во времени или какие интересные аномалии - уж как ему повезёт.
sim3x, а что это изменит? Если писатель не учитывает конкурентный доступ - то читатель будет получать аномалии в любой реализации СУБД (и на любом уровне изоляции транзакций). СУБД не будет мешать делать запросы если специально не просить СУБД считать, что вот эта группа запросов должна быть читателям или полностью видна или полностью незаметна.
Егор Казанцев, ACID требует определённое поведение транзакций. Получать интересные аномалии как побочный эффект не учитывающего конкурентный доступ приложения ACID не мешают. Ну а по-умолчанию или нет - утешение слабое и учитывать что речь может быть об этой куче бинарного мусора под видом данных - стоит.