Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
e394114d
Commit
e394114d
authored
Dec 21, 2011
by
antirez
Browse files
AOF refactoring, now with three states: ON, OFF, WAIT_REWRITE.
parent
c6ac7d03
Changes
7
Hide whitespace changes
Inline
Side-by-side
src/aof.c
View file @
e394114d
...
@@ -19,14 +19,14 @@ void aof_background_fsync(int fd) {
...
@@ -19,14 +19,14 @@ void aof_background_fsync(int fd) {
/* Called when the user switches from "appendonly yes" to "appendonly no"
/* Called when the user switches from "appendonly yes" to "appendonly no"
* at runtime using the CONFIG command. */
* at runtime using the CONFIG command. */
void
stopAppendOnly
(
void
)
{
void
stopAppendOnly
(
void
)
{
redisAssert
(
server
.
aof_state
!=
REDIS_AOF_OFF
);
flushAppendOnlyFile
(
1
);
flushAppendOnlyFile
(
1
);
aof_fsync
(
server
.
appendfd
);
aof_fsync
(
server
.
appendfd
);
close
(
server
.
appendfd
);
close
(
server
.
appendfd
);
server
.
appendfd
=
-
1
;
server
.
appendfd
=
-
1
;
server
.
appendseldb
=
-
1
;
server
.
appendseldb
=
-
1
;
server
.
appendonly
=
0
;
server
.
aof_state
=
REDIS_AOF_OFF
;
server
.
aof_wait_rewrite
=
0
;
/* rewrite operation in progress? kill it, wait child exit */
/* rewrite operation in progress? kill it, wait child exit */
if
(
server
.
bgrewritechildpid
!=
-
1
)
{
if
(
server
.
bgrewritechildpid
!=
-
1
)
{
int
statloc
;
int
statloc
;
...
@@ -46,6 +46,7 @@ void stopAppendOnly(void) {
...
@@ -46,6 +46,7 @@ void stopAppendOnly(void) {
int
startAppendOnly
(
void
)
{
int
startAppendOnly
(
void
)
{
server
.
lastfsync
=
time
(
NULL
);
server
.
lastfsync
=
time
(
NULL
);
server
.
appendfd
=
open
(
server
.
appendfilename
,
O_WRONLY
|
O_APPEND
|
O_CREAT
,
0644
);
server
.
appendfd
=
open
(
server
.
appendfilename
,
O_WRONLY
|
O_APPEND
|
O_CREAT
,
0644
);
redisAssert
(
server
.
aof_state
==
REDIS_AOF_OFF
);
if
(
server
.
appendfd
==
-
1
)
{
if
(
server
.
appendfd
==
-
1
)
{
redisLog
(
REDIS_WARNING
,
"Redis needs to enable the AOF but can't open the append only file: %s"
,
strerror
(
errno
));
redisLog
(
REDIS_WARNING
,
"Redis needs to enable the AOF but can't open the append only file: %s"
,
strerror
(
errno
));
return
REDIS_ERR
;
return
REDIS_ERR
;
...
@@ -57,8 +58,7 @@ int startAppendOnly(void) {
...
@@ -57,8 +58,7 @@ int startAppendOnly(void) {
}
}
/* We correctly switched on AOF, now wait for the rerwite to be complete
/* We correctly switched on AOF, now wait for the rerwite to be complete
* in order to append data on disk. */
* in order to append data on disk. */
server
.
appendonly
=
1
;
server
.
aof_state
=
REDIS_AOF_WAIT_REWRITE
;
server
.
aof_wait_rewrite
=
1
;
return
REDIS_OK
;
return
REDIS_OK
;
}
}
...
@@ -258,15 +258,9 @@ void feedAppendOnlyFile(struct redisCommand *cmd, int dictid, robj **argv, int a
...
@@ -258,15 +258,9 @@ void feedAppendOnlyFile(struct redisCommand *cmd, int dictid, robj **argv, int a
/* Append to the AOF buffer. This will be flushed on disk just before
/* Append to the AOF buffer. This will be flushed on disk just before
* of re-entering the event loop, so before the client will get a
* of re-entering the event loop, so before the client will get a
* positive reply about the operation performed.
* positive reply about the operation performed. */
*
if
(
server
.
aof_state
==
REDIS_AOF_ON
)
* Note, we don't add stuff in the AOF buffer if aof_wait_rewrite is
* non zero, as this means we are starting with a new AOF and the
* current one is meaningless (this happens for instance after
* a slave resyncs with its master). */
if
(
!
server
.
aof_wait_rewrite
)
{
server
.
aofbuf
=
sdscatlen
(
server
.
aofbuf
,
buf
,
sdslen
(
buf
));
server
.
aofbuf
=
sdscatlen
(
server
.
aofbuf
,
buf
,
sdslen
(
buf
));
}
/* If a background append only file rewriting is in progress we want to
/* If a background append only file rewriting is in progress we want to
* accumulate the differences between the child DB and the current one
* accumulate the differences between the child DB and the current one
...
@@ -316,7 +310,7 @@ int loadAppendOnlyFile(char *filename) {
...
@@ -316,7 +310,7 @@ int loadAppendOnlyFile(char *filename) {
struct
redisClient
*
fakeClient
;
struct
redisClient
*
fakeClient
;
FILE
*
fp
=
fopen
(
filename
,
"r"
);
FILE
*
fp
=
fopen
(
filename
,
"r"
);
struct
redis_stat
sb
;
struct
redis_stat
sb
;
int
appendonly
=
server
.
a
ppendonly
;
int
old_aof_state
=
server
.
a
of_state
;
long
loops
=
0
;
long
loops
=
0
;
if
(
fp
&&
redis_fstat
(
fileno
(
fp
),
&
sb
)
!=
-
1
&&
sb
.
st_size
==
0
)
{
if
(
fp
&&
redis_fstat
(
fileno
(
fp
),
&
sb
)
!=
-
1
&&
sb
.
st_size
==
0
)
{
...
@@ -332,7 +326,7 @@ int loadAppendOnlyFile(char *filename) {
...
@@ -332,7 +326,7 @@ int loadAppendOnlyFile(char *filename) {
/* Temporarily disable AOF, to prevent EXEC from feeding a MULTI
/* Temporarily disable AOF, to prevent EXEC from feeding a MULTI
* to the same file we're about to read. */
* to the same file we're about to read. */
server
.
a
ppendonly
=
0
;
server
.
a
of_state
=
REDIS_AOF_OFF
;
fakeClient
=
createFakeClient
();
fakeClient
=
createFakeClient
();
startLoading
(
fp
);
startLoading
(
fp
);
...
@@ -401,7 +395,7 @@ int loadAppendOnlyFile(char *filename) {
...
@@ -401,7 +395,7 @@ int loadAppendOnlyFile(char *filename) {
fclose
(
fp
);
fclose
(
fp
);
freeFakeClient
(
fakeClient
);
freeFakeClient
(
fakeClient
);
server
.
a
ppendonly
=
appendonly
;
server
.
a
of_state
=
old_aof_state
;
stopLoading
();
stopLoading
();
aofUpdateCurrentSize
();
aofUpdateCurrentSize
();
server
.
auto_aofrewrite_base_size
=
server
.
appendonly_current_size
;
server
.
auto_aofrewrite_base_size
=
server
.
appendonly_current_size
;
...
@@ -964,7 +958,9 @@ void backgroundRewriteDoneHandler(int exitcode, int bysignal) {
...
@@ -964,7 +958,9 @@ void backgroundRewriteDoneHandler(int exitcode, int bysignal) {
}
}
redisLog
(
REDIS_NOTICE
,
"Background AOF rewrite successful"
);
redisLog
(
REDIS_NOTICE
,
"Background AOF rewrite successful"
);
server
.
aof_wait_rewrite
=
0
;
/* Change state from WAIT_REWRITE to ON if needed */
if
(
server
.
aof_state
==
REDIS_AOF_WAIT_REWRITE
)
server
.
aof_state
=
REDIS_AOF_ON
;
/* Asynchronously close the overwritten AOF. */
/* Asynchronously close the overwritten AOF. */
if
(
oldfd
!=
-
1
)
bioCreateBackgroundJob
(
REDIS_BIO_CLOSE_FILE
,(
void
*
)(
long
)
oldfd
,
NULL
,
NULL
);
if
(
oldfd
!=
-
1
)
bioCreateBackgroundJob
(
REDIS_BIO_CLOSE_FILE
,(
void
*
)(
long
)
oldfd
,
NULL
,
NULL
);
...
@@ -984,10 +980,7 @@ cleanup:
...
@@ -984,10 +980,7 @@ cleanup:
server
.
bgrewritebuf
=
sdsempty
();
server
.
bgrewritebuf
=
sdsempty
();
aofRemoveTempFile
(
server
.
bgrewritechildpid
);
aofRemoveTempFile
(
server
.
bgrewritechildpid
);
server
.
bgrewritechildpid
=
-
1
;
server
.
bgrewritechildpid
=
-
1
;
/* If we were waiting for an AOF rewrite before to start appending
/* Schedule a new rewrite if we are waiting for it to switch the AOF ON. */
* to the AOF again (this happens both when the user switches on
if
(
server
.
aof_state
==
REDIS_AOF_WAIT_REWRITE
)
* AOF with CONFIG SET, and after a slave with AOF enabled syncs with
server
.
aofrewrite_scheduled
=
1
;
* the master), but the rewrite failed (otherwise aof_wait_rewrite
* would be zero), we need to schedule a new one. */
if
(
server
.
aof_wait_rewrite
)
server
.
aofrewrite_scheduled
=
1
;
}
}
src/config.c
View file @
e394114d
...
@@ -213,9 +213,12 @@ void loadServerConfigFromString(char *config) {
...
@@ -213,9 +213,12 @@ void loadServerConfigFromString(char *config) {
err
=
"argument must be 'yes' or 'no'"
;
goto
loaderr
;
err
=
"argument must be 'yes' or 'no'"
;
goto
loaderr
;
}
}
}
else
if
(
!
strcasecmp
(
argv
[
0
],
"appendonly"
)
&&
argc
==
2
)
{
}
else
if
(
!
strcasecmp
(
argv
[
0
],
"appendonly"
)
&&
argc
==
2
)
{
if
((
server
.
appendonly
=
yesnotoi
(
argv
[
1
]))
==
-
1
)
{
int
yes
;
if
((
yes
=
yesnotoi
(
argv
[
1
]))
==
-
1
)
{
err
=
"argument must be 'yes' or 'no'"
;
goto
loaderr
;
err
=
"argument must be 'yes' or 'no'"
;
goto
loaderr
;
}
}
server
.
aof_state
=
yes
?
REDIS_AOF_ON
:
REDIS_AOF_OFF
;
}
else
if
(
!
strcasecmp
(
argv
[
0
],
"appendfilename"
)
&&
argc
==
2
)
{
}
else
if
(
!
strcasecmp
(
argv
[
0
],
"appendfilename"
)
&&
argc
==
2
)
{
zfree
(
server
.
appendfilename
);
zfree
(
server
.
appendfilename
);
server
.
appendfilename
=
zstrdup
(
argv
[
1
]);
server
.
appendfilename
=
zstrdup
(
argv
[
1
]);
...
@@ -426,19 +429,16 @@ void configSetCommand(redisClient *c) {
...
@@ -426,19 +429,16 @@ void configSetCommand(redisClient *c) {
if
(
yn
==
-
1
)
goto
badfmt
;
if
(
yn
==
-
1
)
goto
badfmt
;
server
.
no_appendfsync_on_rewrite
=
yn
;
server
.
no_appendfsync_on_rewrite
=
yn
;
}
else
if
(
!
strcasecmp
(
c
->
argv
[
2
]
->
ptr
,
"appendonly"
))
{
}
else
if
(
!
strcasecmp
(
c
->
argv
[
2
]
->
ptr
,
"appendonly"
))
{
int
old
=
server
.
appendonly
;
int
enable
=
yesnotoi
(
o
->
ptr
);
int
new
=
yesnotoi
(
o
->
ptr
);
if
(
enable
==
-
1
)
goto
badfmt
;
if
(
new
==
-
1
)
goto
badfmt
;
if
(
enable
==
0
&&
server
.
aof_state
!=
REDIS_AOF_OFF
)
{
if
(
old
!=
new
)
{
stopAppendOnly
();
if
(
new
==
0
)
{
}
else
if
(
enable
&&
server
.
aof_state
==
REDIS_AOF_OFF
)
{
stopAppendOnly
();
if
(
startAppendOnly
()
==
REDIS_ERR
)
{
}
else
{
addReplyError
(
c
,
if
(
startAppendOnly
()
==
REDIS_ERR
)
{
"Unable to turn on AOF. Check server logs."
);
addReplyError
(
c
,
return
;
"Unable to turn on AOF. Check server logs."
);
return
;
}
}
}
}
}
}
else
if
(
!
strcasecmp
(
c
->
argv
[
2
]
->
ptr
,
"auto-aof-rewrite-percentage"
))
{
}
else
if
(
!
strcasecmp
(
c
->
argv
[
2
]
->
ptr
,
"auto-aof-rewrite-percentage"
))
{
...
@@ -616,7 +616,7 @@ void configGetCommand(redisClient *c) {
...
@@ -616,7 +616,7 @@ void configGetCommand(redisClient *c) {
}
}
if
(
stringmatch
(
pattern
,
"appendonly"
,
0
))
{
if
(
stringmatch
(
pattern
,
"appendonly"
,
0
))
{
addReplyBulkCString
(
c
,
"appendonly"
);
addReplyBulkCString
(
c
,
"appendonly"
);
addReplyBulkCString
(
c
,
server
.
a
ppendonly
?
"
yes
"
:
"
no
"
);
addReplyBulkCString
(
c
,
server
.
a
of_state
==
REDIS_AOF_OFF
?
"
no
"
:
"
yes
"
);
matches
++
;
matches
++
;
}
}
if
(
stringmatch
(
pattern
,
"no-appendfsync-on-rewrite"
,
0
))
{
if
(
stringmatch
(
pattern
,
"no-appendfsync-on-rewrite"
,
0
))
{
...
...
src/db.c
View file @
e394114d
...
@@ -487,7 +487,7 @@ void propagateExpire(redisDb *db, robj *key) {
...
@@ -487,7 +487,7 @@ void propagateExpire(redisDb *db, robj *key) {
argv
[
1
]
=
key
;
argv
[
1
]
=
key
;
incrRefCount
(
key
);
incrRefCount
(
key
);
if
(
server
.
a
ppendonly
)
if
(
server
.
a
of_state
!=
REDIS_AOF_OFF
)
feedAppendOnlyFile
(
server
.
delCommand
,
db
->
id
,
argv
,
2
);
feedAppendOnlyFile
(
server
.
delCommand
,
db
->
id
,
argv
,
2
);
if
(
listLength
(
server
.
slaves
))
if
(
listLength
(
server
.
slaves
))
replicationFeedSlaves
(
server
.
slaves
,
db
->
id
,
argv
,
2
);
replicationFeedSlaves
(
server
.
slaves
,
db
->
id
,
argv
,
2
);
...
...
src/multi.c
View file @
e394114d
...
@@ -67,7 +67,7 @@ void discardCommand(redisClient *c) {
...
@@ -67,7 +67,7 @@ void discardCommand(redisClient *c) {
void
execCommandReplicateMulti
(
redisClient
*
c
)
{
void
execCommandReplicateMulti
(
redisClient
*
c
)
{
robj
*
multistring
=
createStringObject
(
"MULTI"
,
5
);
robj
*
multistring
=
createStringObject
(
"MULTI"
,
5
);
if
(
server
.
a
ppendonly
)
if
(
server
.
a
of_state
!=
REDIS_AOF_OFF
)
feedAppendOnlyFile
(
server
.
multiCommand
,
c
->
db
->
id
,
&
multistring
,
1
);
feedAppendOnlyFile
(
server
.
multiCommand
,
c
->
db
->
id
,
&
multistring
,
1
);
if
(
listLength
(
server
.
slaves
))
if
(
listLength
(
server
.
slaves
))
replicationFeedSlaves
(
server
.
slaves
,
c
->
db
->
id
,
&
multistring
,
1
);
replicationFeedSlaves
(
server
.
slaves
,
c
->
db
->
id
,
&
multistring
,
1
);
...
...
src/redis.c
View file @
e394114d
...
@@ -873,14 +873,13 @@ void initServerConfig() {
...
@@ -873,14 +873,13 @@ void initServerConfig() {
server
.
syslog_ident
=
zstrdup
(
"redis"
);
server
.
syslog_ident
=
zstrdup
(
"redis"
);
server
.
syslog_facility
=
LOG_LOCAL0
;
server
.
syslog_facility
=
LOG_LOCAL0
;
server
.
daemonize
=
0
;
server
.
daemonize
=
0
;
server
.
a
ppendonly
=
0
;
server
.
a
of_state
=
REDIS_AOF_OFF
;
server
.
appendfsync
=
APPENDFSYNC_EVERYSEC
;
server
.
appendfsync
=
APPENDFSYNC_EVERYSEC
;
server
.
no_appendfsync_on_rewrite
=
0
;
server
.
no_appendfsync_on_rewrite
=
0
;
server
.
auto_aofrewrite_perc
=
REDIS_AUTO_AOFREWRITE_PERC
;
server
.
auto_aofrewrite_perc
=
REDIS_AUTO_AOFREWRITE_PERC
;
server
.
auto_aofrewrite_min_size
=
REDIS_AUTO_AOFREWRITE_MIN_SIZE
;
server
.
auto_aofrewrite_min_size
=
REDIS_AUTO_AOFREWRITE_MIN_SIZE
;
server
.
auto_aofrewrite_base_size
=
0
;
server
.
auto_aofrewrite_base_size
=
0
;
server
.
aofrewrite_scheduled
=
0
;
server
.
aofrewrite_scheduled
=
0
;
server
.
aof_wait_rewrite
=
0
;
server
.
lastfsync
=
time
(
NULL
);
server
.
lastfsync
=
time
(
NULL
);
server
.
appendfd
=
-
1
;
server
.
appendfd
=
-
1
;
server
.
appendseldb
=
-
1
;
/* Make sure the first time will not match */
server
.
appendseldb
=
-
1
;
/* Make sure the first time will not match */
...
@@ -920,7 +919,6 @@ void initServerConfig() {
...
@@ -920,7 +919,6 @@ void initServerConfig() {
appendServerSaveParams
(
300
,
100
);
/* save after 5 minutes and 100 changes */
appendServerSaveParams
(
300
,
100
);
/* save after 5 minutes and 100 changes */
appendServerSaveParams
(
60
,
10000
);
/* save after 1 minute and 10000 changes */
appendServerSaveParams
(
60
,
10000
);
/* save after 1 minute and 10000 changes */
/* Replication related */
/* Replication related */
server
.
isslave
=
0
;
server
.
masterauth
=
NULL
;
server
.
masterauth
=
NULL
;
server
.
masterhost
=
NULL
;
server
.
masterhost
=
NULL
;
server
.
masterport
=
6379
;
server
.
masterport
=
6379
;
...
@@ -1069,8 +1067,9 @@ void initServer() {
...
@@ -1069,8 +1067,9 @@ void initServer() {
if
(
server
.
sofd
>
0
&&
aeCreateFileEvent
(
server
.
el
,
server
.
sofd
,
AE_READABLE
,
if
(
server
.
sofd
>
0
&&
aeCreateFileEvent
(
server
.
el
,
server
.
sofd
,
AE_READABLE
,
acceptUnixHandler
,
NULL
)
==
AE_ERR
)
oom
(
"creating file event"
);
acceptUnixHandler
,
NULL
)
==
AE_ERR
)
oom
(
"creating file event"
);
if
(
server
.
appendonly
)
{
if
(
server
.
aof_state
==
REDIS_AOF_ON
)
{
server
.
appendfd
=
open
(
server
.
appendfilename
,
O_WRONLY
|
O_APPEND
|
O_CREAT
,
0644
);
server
.
appendfd
=
open
(
server
.
appendfilename
,
O_WRONLY
|
O_APPEND
|
O_CREAT
,
0644
);
if
(
server
.
appendfd
==
-
1
)
{
if
(
server
.
appendfd
==
-
1
)
{
redisLog
(
REDIS_WARNING
,
"Can't open the append-only file: %s"
,
redisLog
(
REDIS_WARNING
,
"Can't open the append-only file: %s"
,
strerror
(
errno
));
strerror
(
errno
));
...
@@ -1156,7 +1155,7 @@ void call(redisClient *c) {
...
@@ -1156,7 +1155,7 @@ void call(redisClient *c) {
slowlogPushEntryIfNeeded
(
c
->
argv
,
c
->
argc
,
duration
);
slowlogPushEntryIfNeeded
(
c
->
argv
,
c
->
argc
,
duration
);
c
->
cmd
->
calls
++
;
c
->
cmd
->
calls
++
;
if
(
server
.
a
ppendonly
&&
dirty
>
0
)
if
(
server
.
a
of_state
!=
REDIS_AOF_OFF
&&
dirty
>
0
)
feedAppendOnlyFile
(
c
->
cmd
,
c
->
db
->
id
,
c
->
argv
,
c
->
argc
);
feedAppendOnlyFile
(
c
->
cmd
,
c
->
db
->
id
,
c
->
argv
,
c
->
argc
);
if
((
dirty
>
0
||
c
->
cmd
->
flags
&
REDIS_CMD_FORCE_REPLICATION
)
&&
if
((
dirty
>
0
||
c
->
cmd
->
flags
&
REDIS_CMD_FORCE_REPLICATION
)
&&
listLength
(
server
.
slaves
))
listLength
(
server
.
slaves
))
...
@@ -1311,7 +1310,7 @@ int prepareForShutdown(int flags) {
...
@@ -1311,7 +1310,7 @@ int prepareForShutdown(int flags) {
kill
(
server
.
bgsavechildpid
,
SIGKILL
);
kill
(
server
.
bgsavechildpid
,
SIGKILL
);
rdbRemoveTempFile
(
server
.
bgsavechildpid
);
rdbRemoveTempFile
(
server
.
bgsavechildpid
);
}
}
if
(
server
.
a
ppendonly
)
{
if
(
server
.
a
of_state
!=
REDIS_AOF_OFF
)
{
/* Kill the AOF saving child as the AOF we already have may be longer
/* Kill the AOF saving child as the AOF we already have may be longer
* but contains the full dataset anyway. */
* but contains the full dataset anyway. */
if
(
server
.
bgrewritechildpid
!=
-
1
)
{
if
(
server
.
bgrewritechildpid
!=
-
1
)
{
...
@@ -1498,13 +1497,13 @@ sds genRedisInfoString(char *section) {
...
@@ -1498,13 +1497,13 @@ sds genRedisInfoString(char *section) {
"last_save_time:%ld
\r\n
"
"last_save_time:%ld
\r\n
"
"bgrewriteaof_in_progress:%d
\r\n
"
,
"bgrewriteaof_in_progress:%d
\r\n
"
,
server
.
loading
,
server
.
loading
,
server
.
a
ppendonly
,
server
.
a
of_state
!=
REDIS_AOF_OFF
,
server
.
dirty
,
server
.
dirty
,
server
.
bgsavechildpid
!=
-
1
,
server
.
bgsavechildpid
!=
-
1
,
server
.
lastsave
,
server
.
lastsave
,
server
.
bgrewritechildpid
!=
-
1
);
server
.
bgrewritechildpid
!=
-
1
);
if
(
server
.
a
ppendonly
)
{
if
(
server
.
a
of_state
!=
REDIS_AOF_OFF
)
{
info
=
sdscatprintf
(
info
,
info
=
sdscatprintf
(
info
,
"aof_current_size:%lld
\r\n
"
"aof_current_size:%lld
\r\n
"
"aof_base_size:%lld
\r\n
"
"aof_base_size:%lld
\r\n
"
...
@@ -2099,7 +2098,7 @@ int main(int argc, char **argv) {
...
@@ -2099,7 +2098,7 @@ int main(int argc, char **argv) {
linuxOvercommitMemoryWarning
();
linuxOvercommitMemoryWarning
();
#endif
#endif
start
=
ustime
();
start
=
ustime
();
if
(
server
.
a
ppendonly
)
{
if
(
server
.
a
of_state
==
REDIS_AOF_ON
)
{
if
(
loadAppendOnlyFile
(
server
.
appendfilename
)
==
REDIS_OK
)
if
(
loadAppendOnlyFile
(
server
.
appendfilename
)
==
REDIS_OK
)
redisLog
(
REDIS_NOTICE
,
"DB loaded from append only file: %.3f seconds"
,(
float
)(
ustime
()
-
start
)
/
1000000
);
redisLog
(
REDIS_NOTICE
,
"DB loaded from append only file: %.3f seconds"
,(
float
)(
ustime
()
-
start
)
/
1000000
);
}
else
{
}
else
{
...
...
src/redis.h
View file @
e394114d
...
@@ -560,7 +560,6 @@ struct redisServer {
...
@@ -560,7 +560,6 @@ struct redisServer {
off_t
auto_aofrewrite_base_size
;
/* AOF size on latest startup or rewrite. */
off_t
auto_aofrewrite_base_size
;
/* AOF size on latest startup or rewrite. */
off_t
appendonly_current_size
;
/* AOF current size. */
off_t
appendonly_current_size
;
/* AOF current size. */
int
aofrewrite_scheduled
;
/* Rewrite once BGSAVE terminates. */
int
aofrewrite_scheduled
;
/* Rewrite once BGSAVE terminates. */
int
aof_wait_rewrite
;
/* Don't append to AOF before rewrite */
pid_t
bgrewritechildpid
;
/* PID if rewriting process */
pid_t
bgrewritechildpid
;
/* PID if rewriting process */
sds
bgrewritebuf
;
/* buffer taken by parent during oppend only rewrite */
sds
bgrewritebuf
;
/* buffer taken by parent during oppend only rewrite */
sds
aofbuf
;
/* AOF buffer, written before entering the event loop */
sds
aofbuf
;
/* AOF buffer, written before entering the event loop */
...
...
src/replication.c
View file @
e394114d
...
@@ -361,7 +361,7 @@ void readSyncBulkPayload(aeEventLoop *el, int fd, void *privdata, int mask) {
...
@@ -361,7 +361,7 @@ void readSyncBulkPayload(aeEventLoop *el, int fd, void *privdata, int mask) {
/* Restart the AOF subsystem now that we finished the sync. This
/* Restart the AOF subsystem now that we finished the sync. This
* will trigger an AOF rewrite, and when done will start appending
* will trigger an AOF rewrite, and when done will start appending
* to the new file. */
* to the new file. */
if
(
server
.
a
ppendonly
)
{
if
(
server
.
a
of_state
!=
REDIS_AOF_OFF
)
{
int
retry
=
10
;
int
retry
=
10
;
stopAppendOnly
();
stopAppendOnly
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment