How per-item RwLock reads became expensive in our read-heavy workload, how using lock-free has improved performance, and where a simple RwLock remained a good fit.