线上交易业务并发更新同一行热点数据,业务 QPS 稳定 2 万左右,无超大事务,硬件资源充足,但应用频繁捕获 Write conflict 写入冲突错误,大量事务回滚导致业务成功率下降;调整事务隔离级别后问题无明显改善。
该场景为乐观事务下并发修改同一行产生写写冲突,仅调整隔离级别无法解决写入冲突。按优先级给出处理方案:
- 事务模式调整 将热点更新逻辑切换为悲观事务(
BEGIN PESSIMISTIC),悲观锁会阻塞并发写入而非直接抛出冲突,适配高频单行更新场景;可搭配合理锁等待超时参数避免长时间阻塞。 - 业务层优化(长期最优) 对热点行做分桶打散,将单行热点拆分多行分摊更新压力;应用层增加事务重试逻辑捕获
Write conflict自动重试,提升业务成功率。 - 辅助排查与优化 查看集群版本确认是否存在事务相关已知 Bug;缩短热点事务执行时长,减少锁持有窗口;避免事务内包含无关查询、延迟提交。
1 个赞
大批量更新拆成小事务提交,减少锁持有时间。
乐观锁写写冲突导致重试,高冲突场景建议加悲观锁。
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。