Details
-
Bug
-
Resolution: Fixed
-
Major
-
4.1.1, 4.5.0
-
Security Level: Public
-
Untriaged
-
No
Description
Warmup via the Access log keeps a huge about of temporary data structures around during the whole warmup process, as a result of this it cause the warmup process to finish early as it reaches the low watermark sooner. Which in turn means the resident ratio is also low.
There are three data structures created in memory when using the access.log:
- A list of keys in the access log and their sequence number at the time the access log was generated - MutationLogHarvester::committed
- Another list of keys and their updated sequence number - MutationLogHarvester::apply::fetches
- A temporary back ground fetch item for every key in the list above - batchWarmupCallback::items2fetch
The crux of this is the batched warmup (CBD-440), which doesn't have an upper limit on the batch size. Therefore if you have (for example) 6M items in a single vBucket, then Couchbase Server will actually create of the order of 3x 6M == 18M temporary items.