Size: a a a

2019 December 27

AZ

Anton Zhukov in Symfoniacs spb
Таблица большая?
источник

AZ

Anton Zhukov in Symfoniacs spb
Вообще лучше описать кейс от начала и до конца, какое-то гадание получается что там у вас за композиция
источник

D

Denis in Symfoniacs spb
источник

D

Denis in Symfoniacs spb
возмите этот кейс
источник

D

Denis in Symfoniacs spb
оч похож
источник

D

Denis in Symfoniacs spb
только там хотя б ошибку возвращает а у меня Архитектурой БД возможен дубль а в бизнес логике - нет
источник

AZ

Anton Zhukov in Symfoniacs spb
Почему не изменить архитектуру БД?
источник

D

Denis in Symfoniacs spb
Никак. я могу расписать причины но это на пару страниц.
источник

AZ

Anton Zhukov in Symfoniacs spb
Тогда можно пойти через локализацию процесса. Делаете воркер, который работает в одном экземпляре, и принимает на вход реквесты для работы с этой таблицей, кладёт в очередь, или сам забирает из очереди. Запросы идут строго single lock. Делаете селект, чекаете существование, делаете инсерт или игрор, или что там у вас. Гарантируете изоляцию через идинственный процесс работающий с этой логикой.
источник

AZ

Anton Zhukov in Symfoniacs spb
Вообще всё это умеет база, но раз нельзя менять архитектуру, индексы, мьютексы, то локать через код
источник

D

Denis in Symfoniacs spb
источник

D

Denis in Symfoniacs spb
теперь надо проверить насколько ожидаемо это работаеит
источник

D

Denis in Symfoniacs spb
Anton Zhukov
Тогда можно пойти через локализацию процесса. Делаете воркер, который работает в одном экземпляре, и принимает на вход реквесты для работы с этой таблицей, кладёт в очередь, или сам забирает из очереди. Запросы идут строго single lock. Делаете селект, чекаете существование, делаете инсерт или игрор, или что там у вас. Гарантируете изоляцию через идинственный процесс работающий с этой логикой.
оверинжиниринг какой то)))
источник

AZ

Anton Zhukov in Symfoniacs spb
А как вы хотели?) Завтра появится вопрос как без рута на сервере апнуть мускул и там тоже будет оверинжиниринг))
источник

AZ

Anton Zhukov in Symfoniacs spb
Изоляция на уровне таблицы это аффект на конкурентность доступа. При таком оверинжиниринге будет фифти фифти. Проще тогда сменить схему на MYISAM сразу.
источник

D

Denis in Symfoniacs spb
я хочу просто залочить на чтение таблицу для селекта и инсерта. да я знаю о возможных взаимоблокировках но мне лучше два отвалившихся запроса чем поиметь дубли определенных значений в этой таблице
источник

AZ

Anton Zhukov in Symfoniacs spb
Какой туда QPS сейчас?
источник

D

Denis in Symfoniacs spb
да не считал. MYISAM это нулевые)))
источник

AZ

Anton Zhukov in Symfoniacs spb
C - это 60-е)))
источник

AZ

Anton Zhukov in Symfoniacs spb
В общем в зависимости от потока вы можете таким решение полокать базу, а за ней приложение на конкурентности из разных инстансов , я бы очень аккуратно к такому относился
источник