[Tarantool-patches] [PATCH v2] txn_limbo: simplify owner migration condition

Cyrill Gorcunov gorcunov at gmail.com
Fri Apr 16 10:17:31 MSK 2021


When limbo owner is about to change the state we should check
if there are some pending transactions which are not yet processed,
iow if queue is empty. No need to test if current limbo owner
is zero. The owner is set to zero once -- when limbo is created
during initialization.

After all I think even if owner would ever zero and we're about
to change it the queue simply must be empty, that is the only
safe state.

Signed-off-by: Cyrill Gorcunov <gorcunov at gmail.com>
---
 src/box/txn_limbo.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Index: tarantool.git/src/box/txn_limbo.c
===================================================================
--- tarantool.git.orig/src/box/txn_limbo.c
+++ tarantool.git/src/box/txn_limbo.c
@@ -94,8 +94,7 @@ txn_limbo_append(struct txn_limbo *limbo
 		id = instance_id;
 	bool make_ro = false;
 	if (limbo->owner_id != id) {
-		if (limbo->owner_id == REPLICA_ID_NIL ||
-		    rlist_empty(&limbo->queue)) {
+		if (rlist_empty(&limbo->queue)) {
 			limbo->owner_id = id;
 			limbo->confirmed_lsn = 0;
 			if (id != instance_id)


More information about the Tarantool-patches mailing list