Details
-
Improvement
-
Resolution: Fixed
-
Major
-
6.5.0
Description
cbauth.cache.Get() uses an exclusive lock to get an entry and push it to the bottom of the LRU, and this takes 10% throughput on iris.
The get should be done with a read lock, and the push should only be done if the entry is in danger of being cleaned (see query/util/cache.go for a similar mechanism).
FYI the perfrunner tests run as a single user, so sharding the cache but still retaining an exclusive lock will not deliver the desired improvement, as all the requests will be piling up on the same shard.