From 2cbbf6394f015da0f2a40c8d521a87edb4858d18 Mon Sep 17 00:00:00 2001 From: Binbin Date: Mon, 13 Mar 2023 14:35:45 +0800 Subject: [PATCH] replication test wip --- src/replication.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/replication.c b/src/replication.c index 854688f2c814b..157d3348a8723 100644 --- a/src/replication.c +++ b/src/replication.c @@ -332,8 +332,6 @@ void feedReplicationBuffer(char *s, size_t len) { static long long repl_block_id = 0; if (server.repl_backlog == NULL) return; - server.master_repl_offset += len; - server.repl_backlog->histlen += len; while(len > 0) { size_t start_pos = 0; /* The position of referenced block to start sending. */ @@ -354,6 +352,8 @@ void feedReplicationBuffer(char *s, size_t len) { tail->used += copy; s += copy; len -= copy; + server.master_repl_offset += copy; + server.repl_backlog->histlen += copy; } if (len) { /* Create a new node, make sure it is allocated to at @@ -369,7 +369,6 @@ void feedReplicationBuffer(char *s, size_t len) { size_t copy = (tail->size >= len) ? len : tail->size; tail->used = copy; tail->refcount = 0; - tail->repl_offset = server.master_repl_offset - tail->used + 1; tail->id = repl_block_id++; memcpy(tail->buf, s, copy); listAddNodeTail(server.repl_buffer_blocks, tail); @@ -382,6 +381,9 @@ void feedReplicationBuffer(char *s, size_t len) { } s += copy; len -= copy; + server.master_repl_offset += copy; + server.repl_backlog->histlen += copy; + tail->repl_offset = server.master_repl_offset - tail->used + 1; } /* For output buffer of replicas. */