TGViewer
Типичный программист Типичный программист @tproger · 78K subscribers
Post #14917 4.72K
Замена Redis на MySQL в Shopify: устройство резервов и поиск дефицита соединений

На время оплаты Shopify резервирует товары, чтобы два покупателя не забрали последнюю единицу. Перенос резервов в MySQL позволил списывать товар и снимать резерв одной транзакцией. Но первые попытки упирались в конкуренцию за одну строку с количеством товара.

Команда завела строки для отдельных единиц, ограничив запас 1000 строк на товар и место хранения. SKIP LOCKED позволяет при резервировании пропускать заблокированные строки и выбирать свободные.

Запросы ускорились, но соединений всё равно не хватало. Метки в SQL-запросах и замеры на прокси показали: другие части оформления заказа удерживали соединения слишком долго. В разборе миграции Shopify есть эта диагностика, подбор ключей и уровня изоляции, а также проверка двух систем в параллельной работе.

#веб
  • 👎 4
  • ❤ 3
  • 🌚 3
  • 🔥 1
  • 😁 1
  • 💋 1
  • 👨‍💻 1
  • 👀 1
  • 🙈 1
  • 🙊 1
  • 👾 1
More from @tproger
  1. Oct 12, 2026Разработчик превратил Wi-Fi роутер в программируемый радиоприёмник Автор написал собственн…
  2. Oct 12, 2026Cookies удалены, а браузер всё ещё узнают Удаление cookies не обязательно делает браузер н…
  3. Oct 12, 2026Хотел просто поиграть на Mac. В итоге написал новый движок Total Annihilation Тут есть те,…
  4. Oct 12, 2026Ускорение просмотра изменений в GitHub через упрощение компонентов React Одна строка кода…
  5. Oct 12, 2026Подготовка мобильных приложений Etsy к пикам нагрузки без мгновенного отката Неудачный моб…
  6. Oct 11, 2026Почему разработчик планирует отдавать больше задач Claude Винсент Шмальбах описал план пер…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →