Details
-
Task
-
Resolution: Done
-
Major
-
6.5.1, 6.6.0, 6.5.2, 6.5.0
-
1
Description
During qualification testing of 6.6.0 it was noted that memcached stats hash detail has a sizeable impact on server performance (ops/s).
The exact cause of that slowdown has not been confirmed, but the belief is that given "hash" must traverse every item in each vBucket's HashTable and (while under lock) accumulate various stats including histograms of chain depth :-
class HashTableDepthStatVisitor : public HashTableDepthVisitor { |
public: |
void visit(int bucket, int depth, size_t mem) { |
(void)bucket; |
// -1 is a special case for min. If there's a value other than |
// -1, we prefer that. |
min = std::min(min == -1 ? depth : min, depth);
|
max = std::max(max, depth);
|
depthHisto.add(depth);
|
size += depth;
|
memUsed += mem;
|
}
|
While this is being investigated and improved, temporarily remove this stat call from cbcollect to avoid impacting normal operation in customer environments.