в бд они таки запускаются и падают с ошибкой, если ресурсы заняты, и дедлоки поэтому не исключение, а разруливает это mvcc. Правда при работе с stm нет дедлоков, кто их разруливает?
Там иначе происходит работа с памятью. В общем. Есть контекст на несколько TVar. В контексте есть lock. Когда в транзакции мы читаем значение переменной мы на короткий срок лочим контекст и пишем значение переменной в транзакцию. Разблокируем контекст. Когда мы пишем переменную мы пишем в транзакцию. Перед применением транзакции мы лочим контекст, сверяем значения, обновляем данные и разблокируем контекст.
В некоторых базах есть транзакционная память
Их нет на уровне логики подхода
Обсуждают сегодня