[tarantool-patches] [PATCH] recovery: build secondary index in hot standby mode

Ilya Kosarev i.kosarev at tarantool.org
Wed Aug 14 21:31:44 MSK 2019


Secondary index was being built after reading xlog
except for the force recovery case,
when it was being built immediately after reading snapshot.
Now it is also being built immediately after reading snapshot
in case of hot standby mode in order to be ready by the time
original instance quits.

Closes #4135
---
Branch: https://github.com/tarantool/tarantool/tree/i.kosarev/gh-4135-secondary-index-for-hot-standby
Issue: https://github.com/tarantool/tarantool/issues/4135

 src/box/memtx_engine.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/box/memtx_engine.c b/src/box/memtx_engine.c
index 7c3dd8465..2c8653bd9 100644
--- a/src/box/memtx_engine.c
+++ b/src/box/memtx_engine.c
@@ -48,6 +48,7 @@
 #include "replication.h"
 #include "schema.h"
 #include "gc.h"
+#include "wal.h"
 
 /* sync snapshot every 16MB */
 #define SNAP_SYNC_INTERVAL	(1 << 24)
@@ -269,7 +270,7 @@ memtx_engine_begin_final_recovery(struct engine *engine)
 	/* End of the fast path: loaded the primary key. */
 	space_foreach(memtx_end_build_primary_key, memtx);
 
-	if (!memtx->force_recovery) {
+	if (!memtx->force_recovery && wal_dir_lock >= 0) {
 		/*
 		 * Fast start path: "play out" WAL
 		 * records using the primary key only,
-- 
2.17.1





More information about the Tarantool-patches mailing list