Dec. 8th, 2014

kranov: (Default)
Если сессии попали на один сервер, надо разруливать с помощью select for update, если на разные, надо ловить падение commit.

Чудеса чудесные. Добился
select * from test where id = 1;
ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction
Это нормальная ситуация, кто-то поменял и закомитил на другой ноде строку, которую мы уже меняли в текущей транзакции, поэтому теперь нам надо делать rollback, и читать это нельзя, а если бы мы еще не меняли, но уже читали, то читать нам можно было бы и читали бы мы старое значение, потому что repeatable read.

Если проадейтить на разных нодах строку в одно и тоже (типа set f=0) , то проблем с комитом не будет, сильно запутало меня это.

Profile

kranov: (Default)
kranov

January 2018

S M T W T F S
 123456
789 10111213
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 29th, 2025 02:07 pm
Powered by Dreamwidth Studios