mirror of
https://github.com/fluencelabs/redis
synced 2025-03-30 22:31:03 +00:00
On Linux now fdatasync() is used insetad of fsync() in order to flush the AOF file kernel buffers
This commit is contained in:
parent
7aaaad5070
commit
10ce12761a
7
config.h
7
config.h
@ -35,4 +35,11 @@
|
|||||||
#define HAVE_KQUEUE 1
|
#define HAVE_KQUEUE 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* define aof_fsync to fdatasync() in Linux and fsync() for all the rest */
|
||||||
|
#ifdef __linux__
|
||||||
|
#define aof_fsync fdatasync
|
||||||
|
#else
|
||||||
|
#define aof_fsync fsync
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#define _REDIS_FMACRO_H
|
#define _REDIS_FMACRO_H
|
||||||
|
|
||||||
#define _BSD_SOURCE
|
#define _BSD_SOURCE
|
||||||
#define _XOPEN_SOURCE
|
#define _XOPEN_SOURCE 700
|
||||||
#define _LARGEFILE_SOURCE
|
#define _LARGEFILE_SOURCE
|
||||||
#define _FILE_OFFSET_BITS 64
|
#define _FILE_OFFSET_BITS 64
|
||||||
|
|
||||||
|
8
redis.c
8
redis.c
@ -37,8 +37,6 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#define __USE_POSIX199309
|
|
||||||
#define __USE_UNIX98
|
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
|
||||||
#ifdef HAVE_BACKTRACE
|
#ifdef HAVE_BACKTRACE
|
||||||
@ -4049,7 +4047,7 @@ static void echoCommand(redisClient *c) {
|
|||||||
|
|
||||||
static void setGenericCommand(redisClient *c, int nx, robj *key, robj *val, robj *expire) {
|
static void setGenericCommand(redisClient *c, int nx, robj *key, robj *val, robj *expire) {
|
||||||
int retval;
|
int retval;
|
||||||
long seconds;
|
long seconds = 0; /* initialized to avoid an harmness warning */
|
||||||
|
|
||||||
if (expire) {
|
if (expire) {
|
||||||
if (getLongFromObjectOrReply(c, expire, &seconds, NULL) != REDIS_OK)
|
if (getLongFromObjectOrReply(c, expire, &seconds, NULL) != REDIS_OK)
|
||||||
@ -8090,7 +8088,9 @@ static void feedAppendOnlyFile(struct redisCommand *cmd, int dictid, robj **argv
|
|||||||
(server.appendfsync == APPENDFSYNC_EVERYSEC &&
|
(server.appendfsync == APPENDFSYNC_EVERYSEC &&
|
||||||
now-server.lastfsync > 1))
|
now-server.lastfsync > 1))
|
||||||
{
|
{
|
||||||
fsync(server.appendfd); /* Let's try to get this data on the disk */
|
/* aof_fsync is defined as fdatasync() for Linux in order to avoid
|
||||||
|
* flushing metadata. */
|
||||||
|
aof_fsync(server.appendfd); /* Let's try to get this data on the disk */
|
||||||
server.lastfsync = now;
|
server.lastfsync = now;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user