Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Согласованное неблокирующее чтение - аномалия с дублированием строк / 8 сообщений из 8, страница 1 из 1
11.11.2015, 20:41:25
    #39101155
vishnja
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Согласованное неблокирующее чтение - аномалия с дублированием строк
Здравствуйте!
В документации MySQL сказано, что существует аномалия с дублированием строк (первый абзац):
http://dev.mysql.com/doc/refman/5.7/en/innodb-consistent-read.html
Я нашел больше информации по этой теме здесь:
http://grokbase.com/t/mysql/mysql/0859na0v98/pls-help-clarify-dox-innodb-consistent-non-locking-read-behavior
Но воспроизвести сам баг я не смог. Мне кажется, что понимание таких нюансов важно для того, чтобы хорошо разбираться в работе MySQL.
Можете ли вы воспроизвести этот баг или объяснить эту аномалию?
Спасибо!
...
Рейтинг: 0 / 0
12.11.2015, 01:08:16
    #39101303
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Согласованное неблокирующее чтение - аномалия с дублированием строк
там же все нарисовано... и написано, что это не БАГ, а документированное действо
в первой сессии перед последним селектом Peter не сделал COMMIT. Он увидел свое состояние записи, т.е свой старый "снимок" и состояние записи с учетом второй "закоммиченной" сессии.
Если бы он сделал COMMIT - увидел бы одной запись
жирным выделеноOn T1, say:
set @@autocommit=0;
create table t6 (s1 int, primary key(s1)) engine=innodb;
insert into t6 values (1);commit;select * from t6;
On T2, say:
set @@autocommit=0;
update t6 set s1 = s1 + 1;
commit;
On T1, say:
update t6 set s1 = s1 + 2;
COMMIT;
select * from t6;
но тоже бы удивился, увидев 4 а не 3.
Т.е. пока не сделан COMMIT, вы видите свое состояние и изменения, уже сделанные в других сессиях
...
Рейтинг: 0 / 0
12.11.2015, 09:51:29
    #39101437
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Согласованное неблокирующее чтение - аномалия с дублированием строк
vishnja,

что конкретно не ясно?
...
Рейтинг: 0 / 0
12.11.2015, 13:45:12
    #39101798
vishnja
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Согласованное неблокирующее чтение - аномалия с дублированием строк
Alex_Ustinov,
Не могу воспроизвести, у меня всегда одна строка в конце (со значением '4'), а не две ('1', '4'), как в примере.
...
Рейтинг: 0 / 0
12.11.2015, 13:50:35
    #39101806
vishnja
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Согласованное неблокирующее чтение - аномалия с дублированием строк
MasterZiv,
1) Не могу воспроизвести это поведение.
2) Если это действительно так (я что то неправильно делаю), то хотелось бы разобраться, как вообще может появляться дубль для update'а.
...
Рейтинг: 0 / 0
12.11.2015, 14:04:33
    #39101828
vishnja
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Согласованное неблокирующее чтение - аномалия с дублированием строк
Все, воспроизвел! Видимо стоял уровень изоляции READ-COMMITTED. Хотя вроде много раз пробовал.
...
Рейтинг: 0 / 0
12.11.2015, 14:51:26
    #39101881
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Согласованное неблокирующее чтение - аномалия с дублированием строк
vishnjaВсе, воспроизвел! Видимо стоял уровень изоляции READ-COMMITTED. Хотя вроде много раз пробовал.

По умолчанию REPEATABLE READ стоит.
...
Рейтинг: 0 / 0
12.11.2015, 22:37:18
    #39102440
vishnja
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Согласованное неблокирующее чтение - аномалия с дублированием строк
MasterZiv,
На OpenServer по умолчанию READ-COMMITTED.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Согласованное неблокирующее чтение - аномалия с дублированием строк / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]