Shopify replaced Redis with MySQL for inventory reservations
shopify.engineering原文 ↗
Shopify 将库存预留从 Redis 的独立 INCR/DECR 计数器迁入 MySQL 事务,把每个可售单元表示成可锁定行,并用 `SKIP LOCKED`、READ COMMITTED、固定锁顺序和 `UNION ALL` 批处理压低高并发争用;每个商品/地点只维持最多 1000 行热池。复合主键把每行所需锁数从 2 降为 1,结账路径清理又减少 50% 读请求和 33% 主库事务;闪购中 writer CPU 低于 50%、reader 低于 16%。迁移采用 Redis/MySQL 影子双写、逐 pod 切换和 kill switch,真正值得记录的是它把预留与库存账本重新收进可原子提交的同一数据库边界。
–浏览
评论 · Comments