in glean/rocksdb/rocksdb.cpp [482:514]
T getAdminValue(AdminId id, T def, bool write, F&& notFound) {
container_.requireOpen();
rocksdb::PinnableSlice val;
binary::Output key;
key.fixed(id);
auto s = container_.db->Get(
rocksdb::ReadOptions(),
container_.family(Family::admin),
slice(key),
&val);
if (!s.IsNotFound()) {
check(s);
binary::Input value = input(val);
auto result = value.fixed<T>();
if (!value.empty()) {
rts::error("corrupt database - invalid {}",
admin_names[static_cast<uint32_t>(id)]);
}
return result;
} else {
notFound();
if (write) {
binary::Output value;
value.fixed(def);
check(container_.db->Put(
container_.writeOptions,
container_.family(Family::admin),
slice(key),
slice(value)));
}
return def;
}
}