Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
c5dd686e
Commit
c5dd686e
authored
Feb 04, 2015
by
antirez
Browse files
Replication: put server.master client creation into separated function.
parent
96abf659
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/replication.c
View file @
c5dd686e
...
@@ -854,6 +854,23 @@ void replicationEmptyDbCallback(void *privdata) {
...
@@ -854,6 +854,23 @@ void replicationEmptyDbCallback(void *privdata) {
replicationSendNewlineToMaster
();
replicationSendNewlineToMaster
();
}
}
/* Once we have a link with the master and the synchroniziation was
* performed, this function materializes the master client we store
* at server.master, starting from the specified file descriptor. */
void
replicationCreateMasterClient
(
int
fd
)
{
server
.
master
=
createClient
(
fd
);
server
.
master
->
flags
|=
REDIS_MASTER
;
server
.
master
->
authenticated
=
1
;
server
.
repl_state
=
REDIS_REPL_CONNECTED
;
server
.
master
->
reploff
=
server
.
repl_master_initial_offset
;
memcpy
(
server
.
master
->
replrunid
,
server
.
repl_master_runid
,
sizeof
(
server
.
repl_master_runid
));
/* If master offset is set to -1, this master is old and is not
* PSYNC capable, so we flag it accordingly. */
if
(
server
.
master
->
reploff
==
-
1
)
server
.
master
->
flags
|=
REDIS_PRE_PSYNC
;
}
/* Asynchronously read the SYNC payload we receive from a master */
/* Asynchronously read the SYNC payload we receive from a master */
#define REPL_MAX_WRITTEN_BEFORE_FSYNC (1024*1024*8)
/* 8 MB */
#define REPL_MAX_WRITTEN_BEFORE_FSYNC (1024*1024*8)
/* 8 MB */
void
readSyncBulkPayload
(
aeEventLoop
*
el
,
int
fd
,
void
*
privdata
,
int
mask
)
{
void
readSyncBulkPayload
(
aeEventLoop
*
el
,
int
fd
,
void
*
privdata
,
int
mask
)
{
...
@@ -1017,17 +1034,7 @@ void readSyncBulkPayload(aeEventLoop *el, int fd, void *privdata, int mask) {
...
@@ -1017,17 +1034,7 @@ void readSyncBulkPayload(aeEventLoop *el, int fd, void *privdata, int mask) {
/* Final setup of the connected slave <- master link */
/* Final setup of the connected slave <- master link */
zfree
(
server
.
repl_transfer_tmpfile
);
zfree
(
server
.
repl_transfer_tmpfile
);
close
(
server
.
repl_transfer_fd
);
close
(
server
.
repl_transfer_fd
);
server
.
master
=
createClient
(
server
.
repl_transfer_s
);
replicationCreateMasterClient
(
server
.
repl_transfer_s
);
server
.
master
->
flags
|=
REDIS_MASTER
;
server
.
master
->
authenticated
=
1
;
server
.
repl_state
=
REDIS_REPL_CONNECTED
;
server
.
master
->
reploff
=
server
.
repl_master_initial_offset
;
memcpy
(
server
.
master
->
replrunid
,
server
.
repl_master_runid
,
sizeof
(
server
.
repl_master_runid
));
/* If master offset is set to -1, this master is old and is not
* PSYNC capable, so we flag it accordingly. */
if
(
server
.
master
->
reploff
==
-
1
)
server
.
master
->
flags
|=
REDIS_PRE_PSYNC
;
redisLog
(
REDIS_NOTICE
,
"MASTER <-> SLAVE sync: Finished with success"
);
redisLog
(
REDIS_NOTICE
,
"MASTER <-> SLAVE sync: Finished with success"
);
/* 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
...
...
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