Skip to content
Snippets Groups Projects
Commit 4ec51b4b authored by Serge Petrenko's avatar Serge Petrenko Committed by Serge Petrenko
Browse files

recovery: move lsn comparison after the replica_id assertion

It doesn't make sense to assert that replica_id is correct in a row
after using that replica id to make some decisions based on it. Let's
switch the order of operations: first assert that replica_id is correct,
then compare row lsn with the already recovered one.

In-scope-of #9491

NO_DOC=refactoring
NO_TEST=refactoring
NO_CHANGELOG=refactoring
parent ebb170cb
No related branches found
No related tags found
No related merge requests found
......@@ -268,9 +268,6 @@ recover_xlog(struct recovery *r, struct xstream *stream,
if (stop_vclock != NULL &&
r->vclock.signature >= stop_vclock->signature)
return;
int64_t current_lsn = vclock_get(&r->vclock, row.replica_id);
if (row.lsn <= current_lsn)
continue; /* already applied, skip */
/*
* All rows in xlog files have an assigned replica
......@@ -278,6 +275,9 @@ recover_xlog(struct recovery *r, struct xstream *stream,
* are signed with a zero replica id.
*/
assert(row.replica_id != 0 || row.group_id == GROUP_LOCAL);
int64_t current_lsn = vclock_get(&r->vclock, row.replica_id);
if (row.lsn <= current_lsn)
continue; /* already applied, skip */
/*
* We can promote the vclock either before or
* after xstream_write(): it only makes any impact
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment