in cachelib/allocator/nvmcache/NavyConfig.cpp [148:223]
std::map<std::string, std::string> NavyConfig::serialize() const {
auto configMap = std::map<std::string, std::string>();
// admission policy settings
configMap["navyConfig::admissionPolicy"] = getAdmissionPolicy();
configMap["navyConfig::admissionProbability"] =
folly::to<std::string>(randomAPConfig_.getAdmProbability());
configMap["navyConfig::admissionWriteRate"] =
folly::to<std::string>(dynamicRandomAPConfig_.getAdmWriteRate());
configMap["navyConfig::maxWriteRate"] =
folly::to<std::string>(dynamicRandomAPConfig_.getMaxWriteRate());
configMap["navyConfig::admissionSuffixLen"] =
folly::to<std::string>(dynamicRandomAPConfig_.getAdmSuffixLength());
configMap["navyConfig::admissionProbBaseSize"] =
folly::to<std::string>(dynamicRandomAPConfig_.getAdmProbBaseSize());
configMap["navyConfig::admissionProbFactorLowerBound"] =
folly::to<std::string>(dynamicRandomAPConfig_.getProbFactorLowerBound());
configMap["navyConfig::admissionProbFactorUpperBound"] =
folly::to<std::string>(dynamicRandomAPConfig_.getProbFactorUpperBound());
// device settings
configMap["navyConfig::blockSize"] = folly::to<std::string>(blockSize_);
configMap["navyConfig::fileName"] = fileName_;
configMap["navyConfig::raidPaths"] = folly::join(",", raidPaths_);
configMap["navyConfig::deviceMetadataSize"] =
std::to_string(deviceMetadataSize_);
configMap["navyConfig::fileSize"] = folly::to<std::string>(fileSize_);
configMap["navyConfig::truncateFile"] = truncateFile_ ? "true" : "false";
configMap["navyConfig::deviceMaxWriteSize"] =
folly::to<std::string>(deviceMaxWriteSize_);
// BlockCache settings
configMap["navyConfig::blockCacheLru"] =
blockCacheConfig_.isLruEnabled() ? "true" : "false";
configMap["navyConfig::blockCacheRegionSize"] =
folly::to<std::string>(blockCacheConfig_.getRegionSize());
configMap["navyConfig::blockCacheCleanRegions"] =
folly::to<std::string>(blockCacheConfig_.getCleanRegions());
configMap["navyConfig::blockCacheReinsertionHitsThreshold"] =
folly::to<std::string>(
blockCacheConfig_.getReinsertionConfig().getHitsThreshold());
configMap["navyConfig::blockCacheReinsertionPctThreshold"] =
folly::to<std::string>(
blockCacheConfig_.getReinsertionConfig().getPctThreshold());
configMap["navyConfig::blockCacheNumInMemBuffers"] =
folly::to<std::string>(blockCacheConfig_.getNumInMemBuffers());
configMap["navyConfig::blockCacheDataChecksum"] =
blockCacheConfig_.getDataChecksum() ? "true" : "false";
configMap["navyConfig::blockCacheSegmentedFifoSegmentRatio"] =
folly::join(",", blockCacheConfig_.getSFifoSegmentRatio());
// BigHash settings
configMap["navyConfig::bigHashSizePct"] =
folly::to<std::string>(bigHashConfig_.getSizePct());
configMap["navyConfig::bigHashBucketSize"] =
folly::to<std::string>(bigHashConfig_.getBucketSize());
configMap["navyConfig::bigHashBucketBfSize"] =
folly::to<std::string>(bigHashConfig_.getBucketBfSize());
configMap["navyConfig::bigHashSmallItemMaxSize"] =
folly::to<std::string>(bigHashConfig_.getSmallItemMaxSize());
// Job scheduler settings
configMap["navyConfig::readerThreads"] =
folly::to<std::string>(readerThreads_);
configMap["navyConfig::writerThreads"] =
folly::to<std::string>(writerThreads_);
configMap["navyConfig::navyReqOrderingShards"] =
folly::to<std::string>(navyReqOrderingShards_);
// Other settings
configMap["navyConfig::maxConcurrentInserts"] =
folly::to<std::string>(maxConcurrentInserts_);
configMap["navyConfig::maxParcelMemoryMB"] =
folly::to<std::string>(maxParcelMemoryMB_);
return configMap;
}