Re-use AOF buffer when it is small enough

This commit is contained in:
Pieter Noordhuis
2011-08-18 12:44:30 +02:00
committed by antirez
parent a57225c2cf
commit f990782f4d
3 changed files with 17 additions and 2 deletions

View File

@ -81,10 +81,17 @@ void flushAppendOnlyFile(void) {
}
exit(1);
}
sdsfree(server.aofbuf);
server.aofbuf = sdsempty();
server.appendonly_current_size += nwritten;
/* Re-use AOF buffer when it is small enough. The maximum comes from the
* arena size of 4k minus some overhead (but is otherwise arbitrary). */
if ((sdslen(server.aofbuf)+sdsavail(server.aofbuf)) < 4000) {
sdsclear(server.aofbuf);
} else {
sdsfree(server.aofbuf);
server.aofbuf = sdsempty();
}
/* Don't fsync if no-appendfsync-on-rewrite is set to yes and there are
* children doing I/O in the background. */
if (server.no_appendfsync_on_rewrite &&