MCPcopy Create free account
hub / github.com/facebook/CacheLib / createCombinedEntryManager

Method createCombinedEntryManager

cachelib/navy/block_cache/BlockCache.cpp:186–211  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

184BlockCache::~BlockCache() { regionManager_.drain(); }
185
186std::unique_ptr<CombinedEntryManager> BlockCache::createCombinedEntryManager(
187 const Config& config) {
188 if (config.useCombinedEntryBlock &&
189 config.indexConfig.isFixedSizeIndexEnabled()) {
190 // Let's use one stream per each mutex for the index
191 uint64_t numStreams = FixedSizeIndex::getTotalShardCount(
192 FixedSizeIndex::getTotalBucketCount(
193 config.indexConfig.getNumChunks(),
194 config.indexConfig.getNumBucketsPerChunkPower()),
195 config.indexConfig.getNumBucketsPerMutex());
196
197 // Currently, FixedSizeIndex and CombinedEntryManager will support shm
198 // persistence only
199 return std::make_unique<CombinedEntryManager>(
200 numStreams, CombinedEntryBlock::kDefaultSize - sizeof(EntryDesc),
201 (config.persistParams.useShm)
202 ? (config.persistParams.shmManager.has_value()
203 ? &(config.persistParams.shmManager.value().get())
204 : nullptr)
205 : nullptr,
206 config.name, bindThis(&BlockCache::onWriteCombinedEntryBlock, *this),
207 bindThis(&BlockCache::onReadCombinedEntryBlock, *this));
208 } else {
209 return nullptr;
210 }
211}
212
213BlockCache::BlockCache(Config&& config)
214 : BlockCache{std::move(config.validate()), ValidConfigTag{}} {}

Callers

nothing calls this directly

Calls 7

bindThisFunction · 0.85
getNumBucketsPerMutexMethod · 0.80
getNumChunksMethod · 0.45
getMethod · 0.45
valueMethod · 0.45

Tested by

no test coverage detected