Add per channel storage durations
This lets us save images for less time than everything else, since they
are the main driver of queue memory usage.
Change-Id: I677791e20af6aedb0288d09cf5963b4dde30ecce
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
diff --git a/aos/events/logging/log_reader.cc b/aos/events/logging/log_reader.cc
index 874fe43..e3dd904 100644
--- a/aos/events/logging/log_reader.cc
+++ b/aos/events/logging/log_reader.cc
@@ -98,6 +98,10 @@
std::string_view new_name,
std::string_view new_type,
flatbuffers::FlatBufferBuilder *fbb) {
+ CHECK_EQ(Channel::MiniReflectTypeTable()->num_elems, 14u)
+ << ": Merging logic needs to be updated when the number of channel "
+ "fields changes.";
+
flatbuffers::Offset<flatbuffers::String> name_offset =
fbb->CreateSharedString(new_name.empty() ? c->name()->string_view()
: new_name);
@@ -148,6 +152,9 @@
if (c->has_num_readers()) {
channel_builder.add_num_readers(c->num_readers());
}
+ if (c->has_channel_storage_duration()) {
+ channel_builder.add_channel_storage_duration(c->channel_storage_duration());
+ }
return channel_builder.Finish();
}
@@ -1475,7 +1482,7 @@
fbb.ForceDefaults(true);
std::vector<flatbuffers::Offset<Channel>> channel_offsets;
- CHECK_EQ(Channel::MiniReflectTypeTable()->num_elems, 13u)
+ CHECK_EQ(Channel::MiniReflectTypeTable()->num_elems, 14u)
<< ": Merging logic needs to be updated when the number of channel "
"fields changes.";
@@ -1547,6 +1554,10 @@
if (c->has_frequency()) {
channel_builder.add_frequency(c->frequency());
}
+ if (c->has_channel_storage_duration()) {
+ channel_builder.add_channel_storage_duration(
+ c->channel_storage_duration());
+ }
channel_offsets.emplace_back(channel_builder.Finish());
}
break;
diff --git a/aos/events/logging/multinode_logger_test_lib.h b/aos/events/logging/multinode_logger_test_lib.h
index aaba8cb..e207179 100644
--- a/aos/events/logging/multinode_logger_test_lib.h
+++ b/aos/events/logging/multinode_logger_test_lib.h
@@ -60,13 +60,13 @@
};
constexpr std::string_view kCombinedConfigSha1() {
- return "433bcf2bddfbbd2745a4e0c3c9dda2f9832bb61c5b311e3efdd357b9a19e1b76";
+ return "d018002a9b780d45a69172a1e5dd1d6df49a7c6c63b9bae9125cdc0458ddc6ca";
}
constexpr std::string_view kSplitConfigSha1() {
- return "6956d86e4eeda28d6857c3365f79a7fb0344c74de44bcb5ebe4d51398a4a26d5";
+ return "562f80087c0e95d9304127c4cb46962659b4bfc11def84253c67702b4213e6cf";
}
constexpr std::string_view kReloggedSplitConfigSha1() {
- return "db53e99234ecec2cde4d6b9f7b77c8f5150e0a58f6a441030eebfc1e76a2c89c";
+ return "cb560559ee3111d7c67314e3e1a5fd7fc88e8b4cfd9d15ea71c8d1cae1c0480b";
}
LoggerState MakeLoggerState(NodeEventLoopFactory *node,