Flush log files periodically
For low rate logs, disk bandwidth isn't the thing to worry about. The
real concern is how long data sits in memory before being written to
disk. Add a (configurable) threshold after which we flush data to disk
to bound the time.
Change-Id: Ia0be4a13a4840ec6b89c3ecafdeb3a1f1a82d4a2
diff --git a/aos/events/logging/log_writer.cc b/aos/events/logging/log_writer.cc
index f68bbf6..96e3dc8 100644
--- a/aos/events/logging/log_writer.cc
+++ b/aos/events/logging/log_writer.cc
@@ -14,6 +14,7 @@
namespace logger {
namespace {
using message_bridge::RemoteMessage;
+namespace chrono = std::chrono;
} // namespace
Logger::Logger(EventLoop *event_loop, const Configuration *configuration,
@@ -682,7 +683,7 @@
CHECK(node_state_[f.data_node_index].header_valid)
<< ": Can't write data before the header on channel "
<< configuration::CleanedChannelToString(f.fetcher->channel());
- f.writer->QueueSizedFlatbuffer(&fbb);
+ f.writer->QueueSizedFlatbuffer(&fbb, end);
}
if (f.timestamp_writer != nullptr) {
@@ -708,7 +709,7 @@
CHECK(node_state_[f.timestamp_node_index].header_valid)
<< ": Can't write data before the header on channel "
<< configuration::CleanedChannelToString(f.fetcher->channel());
- f.timestamp_writer->QueueSizedFlatbuffer(&fbb);
+ f.timestamp_writer->QueueSizedFlatbuffer(&fbb, end);
}
if (f.contents_writer != nullptr) {
@@ -769,7 +770,7 @@
CHECK(node_state_[f.contents_node_index].header_valid)
<< ": Can't write data before the header on channel "
<< configuration::CleanedChannelToString(f.fetcher->channel());
- f.contents_writer->QueueSizedFlatbuffer(&fbb);
+ f.contents_writer->QueueSizedFlatbuffer(&fbb, end);
}
f.written = true;