MCPcopy Create free account
hub / github.com/ElementsProject/elements / ReuseManifest

Method ReuseManifest

src/leveldb/db/version_set.cc:990–1019  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

988}
989
990bool VersionSet::ReuseManifest(const std::string& dscname,
991 const std::string& dscbase) {
992 if (!options_->reuse_logs) {
993 return false;
994 }
995 FileType manifest_type;
996 uint64_t manifest_number;
997 uint64_t manifest_size;
998 if (!ParseFileName(dscbase, &manifest_number, &manifest_type) ||
999 manifest_type != kDescriptorFile ||
1000 !env_->GetFileSize(dscname, &manifest_size).ok() ||
1001 // Make new compacted MANIFEST if old one is too big
1002 manifest_size >= TargetFileSize(options_)) {
1003 return false;
1004 }
1005
1006 assert(descriptor_file_ == nullptr);
1007 assert(descriptor_log_ == nullptr);
1008 Status r = env_->NewAppendableFile(dscname, &descriptor_file_);
1009 if (!r.ok()) {
1010 Log(options_->info_log, "Reuse MANIFEST: %s\n", r.ToString().c_str());
1011 assert(descriptor_file_ == nullptr);
1012 return false;
1013 }
1014
1015 Log(options_->info_log, "Reusing MANIFEST %s\n", dscname.c_str());
1016 descriptor_log_ = new log::Writer(descriptor_file_, manifest_size);
1017 manifest_file_number_ = manifest_number;
1018 return true;
1019}
1020
1021void VersionSet::MarkFileNumberUsed(uint64_t number) {
1022 if (next_file_number_ <= number) {

Callers

nothing calls this directly

Calls 6

ParseFileNameFunction · 0.85
TargetFileSizeFunction · 0.85
LogFunction · 0.85
GetFileSizeMethod · 0.45
NewAppendableFileMethod · 0.45
ToStringMethod · 0.45

Tested by

no test coverage detected