[rrd-developers] [PATCH] Adjust calculation of upcoming flush timer.
kevin brintnall
kbrint at rufus.net
Sun Jul 19 21:17:49 CEST 2009
The current method may have caused flushes (and journal rotations) more
often than necessary. The problem was introduced in r1600.
---
src/rrd_daemon.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/rrd_daemon.c b/src/rrd_daemon.c
index 36701f8..2a35ec2 100644
--- a/src/rrd_daemon.c
+++ b/src/rrd_daemon.c
@@ -820,14 +820,15 @@ static void *flush_thread_main (void *args __attribute__((unused))) /* {{{ */
|| ((now.tv_sec == next_flush.tv_sec)
&& ((1000 * now.tv_usec) > next_flush.tv_nsec)))
{
+ RRDD_LOG(LOG_DEBUG, "flushing old values");
+
+ /* Determine the time of the next cache flush. */
+ next_flush.tv_sec = now.tv_sec + config_flush_interval;
+
/* Flush all values that haven't been written in the last
* `config_write_interval' seconds. */
flush_old_values (config_write_interval);
- /* Determine the time of the next cache flush. */
- next_flush.tv_sec =
- now.tv_sec + next_flush.tv_sec % config_flush_interval;
-
/* unlock the cache while we rotate so we don't block incoming
* updates if the fsync() blocks on disk I/O */
pthread_mutex_unlock(&cache_lock);
--
1.6.3.1
More information about the rrd-developers
mailing list