В основном у нас есть продавцы, которые обращаются с запросом. Прямо сейчас он попробовал запрос "свежего свинца", чтобы получить их.
Если нет новых отведений, он переходит к «относительно новому» запросу. Мы называем эти «источники», и, по сути, ближе будут проходить через источники, пока они не найдут жизнеспособное руководство.
Все эти запросы запрашивают одну и ту же таблицу, только разные группы данных. Тем не менее, существует много сложной сортировки для каждого запроса, и между этим и вставками / обновлениями в таблицу (таблица InnoDB), мы испытываем много ожиданий (нет тупиков, я уверен, поскольку они не отображаются в InnoDB статус), так что я думаю, что у нас есть медленный выбор, в сочетании с большим количеством вставок / обновлений.
СЕЙЧАС, окончательный вопрос:
Должны ли мы запросить БД для каждого источника и взять около 100ish (очевидно, переменная в зависимости от системы) и кэшировать их в memcached. Затем, в соответствии с запросами доводчиков, отправьте их из кэша, но обновите кэш, чтобы отразить флаг «is_acccepted». Таким образом, мы вызываем каждый источник только тогда, когда у нас заканчиваются кэшированные отведения, и только один раз, когда у нас заканчивается, вместо того, чтобы каждый раз при приближении запрашивать отведение?
Тогда мы можем использовать симуляцию блокировки с memcached - http://code.google.com/p/memcached/wiki/FAQ#Emulating_locking_with_the_add_command
Это похоже на жизнеспособное решение? Любые рекомендации? Нам нужно свести к минимуму шансы на ожидание блокировки отчаянно и быстро.