知识卡片
资源竞争的治理是打地鼠式的持续过程
内容
消除并发系统里的资源竞争热点不是一次性解决的工程任务,而是打地鼠式的持续过程——解决一个瓶颈,压力会自然转移到另一个共享资源上,新热点会在别处冒出来。真正务实的目标不是彻底消灭竞争,而是持续压制到可接受水平:细粒度锁、乐观锁、允许部分数据松散一致、能不共享就不共享,都是分散或降低压力的手段。发散:抱着”修完就一劳永逸”的心态做并发调优,本身就是对问题性质的误判。
参考来源
- 位置:第19章《并发视点》19.3.4节「资源竞争」问题和缺陷(源文件:_epub-src/OEBPS/text00269.html附近)
- 结论依据:原文明确指出只要消除一个资源竞争点就会出现另一个,追踪资源竞争是把竞争降低到可接受级别的持续过程,并给出细粒度锁、乐观锁、降低并发数量等具体降低风险措施,直接支持卡片结论。
- 原始内容:"资源竞争经常会表现为长期等待共享资源,或者是小型、系统特定部分中的过多活动(通俗地说就是过热点(hot spot))……在现实中,只要消除了一个资源竞争点,就会出现另一个。因此,追踪资源竞争一般是把竞争降低到可接受级别的过程……通过把大型资源上的锁分解成多个细粒度的锁,从而减少竞争……考虑可替换的锁定技术,如乐观锁,来降低持有锁的时间……如果可能,降低你围绕可能出现竞争问题点的并发数量。"