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

Function createDevice

cachelib/allocator/nvmcache/NavySetup.cpp:349–382  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

347} // namespace
348
349std::unique_ptr<navy::Device> createDevice(
350 const navy::NavyConfig& config,
351 std::shared_ptr<navy::DeviceEncryptor> encryptor) {
352 auto blockSize = config.getBlockSize();
353 auto maxDeviceWriteSize = config.getDeviceMaxWriteSize();
354 if (config.usesRaidFiles() || config.usesSimpleFile()) {
355 auto stripeSize = 0;
356 auto fileSize = config.getFileSize();
357 std::vector<std::string> filePaths;
358 if (config.usesSimpleFile()) {
359 filePaths.emplace_back(config.getFileName());
360 } else {
361 stripeSize = getRegionSize(config);
362 filePaths = config.getRaidPaths();
363 fileSize = alignDown(fileSize, stripeSize);
364 }
365
366 return navy::createFileDevice(
367 filePaths,
368 fileSize,
369 config.getTruncateFile(),
370 blockSize,
371 stripeSize,
372 maxDeviceWriteSize > 0 ? alignDown(maxDeviceWriteSize, blockSize) : 0,
373 config.getIoEngine(),
374 config.getQDepth(),
375 config.isFDPEnabled(),
376 std::move(encryptor),
377 config.getExclusiveOwner());
378 } else {
379 return navy::createMemoryDevice(config.getFileSize(), std::move(encryptor),
380 blockSize);
381 }
382}
383
384std::unique_ptr<navy::AbstractCache> createNavyCache(
385 const navy::NavyConfig& config,

Callers 3

createNavyCacheFunction · 0.85
TESTFunction · 0.85
NavySetupTest.cppFile · 0.85

Calls 14

getRegionSizeFunction · 0.85
alignDownFunction · 0.85
createFileDeviceFunction · 0.85
createMemoryDeviceFunction · 0.85
getDeviceMaxWriteSizeMethod · 0.80
usesRaidFilesMethod · 0.80
usesSimpleFileMethod · 0.80
getFileSizeMethod · 0.80
getTruncateFileMethod · 0.80
getIoEngineMethod · 0.80
getQDepthMethod · 0.80
isFDPEnabledMethod · 0.80

Tested by 1

TESTFunction · 0.68