Пропускная способность составляет 300 запросов в секунду, и многие (или все) запросы могут быть нацелены на один и тот же счетчик.
Для корректности каждый запрос в настоящее время синхронно выполняет следующие операции в одной транзакции:
- Считайте счетчик, чтобы проверить, можно ли его увеличить далее.
- Вставьте запись журнала, представляющую дельту.
- Обновите (увеличьте/уменьшите) строку счетчика.
Можно использовать более продвинутые методы транзакций, такие как Сериализуемая изоляция моментальных снимков (SSI) или другие подходы на основе MVCC — значительно уменьшают конфликты и повышают пропускную способность для такого рода высококонкурентных обновлений счетчиков, сохраняя при этом синхронность обновлений в одной транзакции. Если SSI/MVCC здесь не помогает, какой класс подходов обычно используют вместо этого реальные системы?
Подробнее здесь: https://stackoverflow.com/questions/798 ... tended-cou
Мобильная версия