mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
logging: Dedicated log flush timer
Log flushing is currently triggered based on the threading heartbeat timer of WriterBackends and the hard-coded WRITE_BUFFER_SIZE 1000. This change introduces a separate timer that is managed by the logger manager instead of piggy-backing on the heartbeat timer, as well as a const &redef for the buffer size. This allows to modify the log flush frequency and batch size independently of the threading heartbeat interval. Later, this will allow to re-use the buffering and flushing logic of writer frontends for non-Broker cluster backends, too. One change here is that even frontends that do not have a backend will be flushed regularly. This is wanted for non-Broker backends and should be very cheap. Possibly, Broker can piggy back on this timer down the road, too, rather than using its own script-level timer (see Broker::log_flush()).
This commit is contained in:
parent
77b9510c8a
commit
0d925e935e
11 changed files with 87 additions and 23 deletions
|
@ -57,8 +57,9 @@ enum TimerType : uint8_t {
|
|||
TIMER_THREAD_HEARTBEAT,
|
||||
TIMER_UNKNOWN_PROTOCOL_EXPIRE,
|
||||
TIMER_LOG_DELAY_EXPIRE,
|
||||
TIMER_LOG_FLUSH_WRITE_BUFFER,
|
||||
};
|
||||
constexpr int NUM_TIMER_TYPES = int(TIMER_LOG_DELAY_EXPIRE) + 1;
|
||||
constexpr int NUM_TIMER_TYPES = int(TIMER_LOG_FLUSH_WRITE_BUFFER) + 1;
|
||||
|
||||
extern const char* timer_type_to_string(TimerType type);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue