Сбой чтения вставленной строки (одно соединение с БД, автоматически отправленные запросы) в кластере Galera - PullRequest
0 голосов
/ 05 сентября 2018

Я использую кластер Galera (mariadb 10.2, 2 узла + garb, master-master), и я заметил, что в некоторых случаях (большая загрузка) выборка строки, которая была вставлена ​​непосредственно перед чтением, завершается неудачей. Это происходит в течение одного соединения дБ с одним узлом кластера, поэтому задержка репликации не должна влиять на него.

Это редко, но иногда случается при большей нагрузке и более параллельных соединениях, которые записывают в одну и ту же таблицу БД.

Все запросы отправляются в режиме автоматической фиксации, поэтому без явной транзакции. Но то же самое в случае, если вставка выполняется в явной транзакции и извлекается в автоколонном запросе, я использую MySQL PDO из сценария PHP.

Запросы могут, например, как:

-- insert into table
INSERT INTO t ...;
-- fetch id of inserted row to variable
SELECT LAST_INSERT_ID();
-- fetch row by id
SELECT * FROM t WHERE id=$id;
-- -> no row found

Plase, есть идеи, где проблема и в чем причина такого поведения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...