Leave them encoded until they are used, since usually we won't use them.
This is about 50k currently.
Signed-off-by: Sage Weil <sage@redhat.com>
// encode map<string,map<int32_t,string>> of current config
bufferlist config_bl;
+ // encode map<string,string> of compiled-in defaults
+ bufferlist config_defaults_bl;
+
void decode_payload() override
{
bufferlist::iterator p = payload.begin();
}
if (header.version >= 3) {
::decode(config_bl, p);
+ ::decode(config_defaults_bl, p);
}
}
encode(daemon_status, payload);
}
::encode(config_bl, payload);
+ ::encode(config_defaults_bl, payload);
}
const char *get_type_name() const override { return "mgropen"; }
::decode(daemon->config, p);
dout(20) << " got config " << daemon->config << dendl;
}
+ daemon->config_defaults_bl = m->config_defaults_bl;
+ daemon->config_defaults.clear();
+ dout(20) << " got config_defaults_bl " << daemon->config_defaults_bl.length()
+ << " bytes" << dendl;
}
if (m->get_connection()->get_peer_type() != entity_name_t::TYPE_CLIENT &&
// running config
std::map<std::string,std::map<int32_t,std::string>> config;
+ // compiled-in config defaults (rarely used, so we leave them encoded!)
+ bufferlist config_defaults_bl;
+ std::map<std::string,std::string> config_defaults;
+
// The perf counters received in MMgrReport messages
DaemonPerfCounters perf_counters;
open->daemon_metadata = daemon_metadata;
}
cct->_conf->get_config_bl(&open->config_bl);
+ cct->_conf->get_defaults_bl(&open->config_defaults_bl);
session->con->send_message(open);
}
}