Details
-
Bug
-
Resolution: Fixed
-
Major
-
7.1.4, 7.1.0, 7.1.1, 7.1.2, 7.2.0, 7.1.3, 7.2.1, 7.1.5
-
Untriaged
-
0
-
Unknown
Description
A number of threads/paths now make use of BucketManager::forEach and the exclusive lock inside forEach (all_buckets) means those threads end up serialised/blocked. If the callback given to forEach is slow, this leads to issues, for example the mc_time callback which runs on the accept thread will be blocked (as it has code using forEach), delaying new connections.
We should make forEach use a read lock
Attachments
Issue Links
For Gerrit Dashboard: MB-57296 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
192378,4 | MB-57296: Remove all_buckets lock acquire from forEach | neo | kv_engine | Status: MERGED | +2 | +1 |
193304,15 | MB-57249: 5/n Return actual elapsed time from UptimeClock::tick | master | kv_engine | Status: MERGED | +2 | +1 |
193305,18 | MB-57249: 7/n Add a warning when the UptimeClock::tick is early/late | master | kv_engine | Status: MERGED | +2 | +1 |
196372,1 | Merge commit '758817af4' into 'couchbase/master' | master | kv_engine | Status: MERGED | +2 | +1 |