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

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 25th, 2017 10:42 am
Powered by Dreamwidth Studios