From 785cf9297733e32110daed8ca8b16169ea4288b5 Mon Sep 17 00:00:00 2001 From: yoav Date: Wed, 27 Mar 2013 14:38:26 +0200 Subject: [PATCH] Prevent unnecessary fsyncs caused by periodic fsyncs in rdb snapshots and aof rewrites. --- src/rio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rio.c b/src/rio.c index aca4bcbf0..a59038db0 100644 --- a/src/rio.c +++ b/src/rio.c @@ -82,10 +82,10 @@ static size_t rioFileWrite(rio *r, const void *buf, size_t len) { size_t bytes_to_write = (r->io.file.fsync_interval && r->io.file.fsync_interval < len) ? r->io.file.fsync_interval : len; if (fwrite((char*)buf + bytes_written,bytes_to_write,1,r->io.file.fp) != 1) return 0; + if (r->io.file.fsync_interval && (r->processed_bytes + bytes_written)/r->io.file.fsync_interval < (r->processed_bytes + bytes_written + bytes_to_write)/r->io.file.fsync_interval) + fsync(fileno(r->io.file.fp)); bytes_written += bytes_to_write; len -= bytes_to_write; - if (r->io.file.fsync_interval && r->processed_bytes/r->io.file.fsync_interval < (r->processed_bytes + bytes_written)/r->io.file.fsync_interval) - fsync(fileno(r->io.file.fp)); } return 1; } -- GitLab