While reviewing DocumentSubsetBitsetCache, I noticed that it might leak memory since size-based evictions don't trigger evictions in DocumentSubsetBitsetCache.keysByIndex. So keysByIndex might keep holding a reference to cache keys long after they have been removed from the cache.