[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