From 69f7a194bc260111f02a05ed52ccd7ebf9fcccb5 Mon Sep 17 00:00:00 2001 From: John Sully Date: Thu, 8 Apr 2021 19:52:38 +0000 Subject: [PATCH] Make prefetch configurable Former-commit-id: 16996c048042bd3799c8051645bbe7c54137d54c --- src/config.cpp | 1 + src/networking.cpp | 2 +- src/server.h | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/config.cpp b/src/config.cpp index 9385b440c..f7609feb7 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -2536,6 +2536,7 @@ standardConfig configs[] = { createBoolConfig("allow-write-during-load", NULL, MODIFIABLE_CONFIG, g_pserver->fWriteDuringActiveLoad, 0, NULL, NULL), createBoolConfig("io-threads-do-reads", NULL, IMMUTABLE_CONFIG, fDummy, 0, NULL, NULL), createBoolConfig("time-thread-priority", NULL, IMMUTABLE_CONFIG, cserver.time_thread_priority, 0, NULL, NULL), + createBoolConfig("prefetch-enabled", NULL, MODIFIABLE_CONFIG, g_pserver->prefetch_enabled, 1, NULL, NULL), /* String Configs */ createStringConfig("aclfile", NULL, IMMUTABLE_CONFIG, ALLOW_EMPTY_STRING, g_pserver->acl_filename, "", NULL, NULL), diff --git a/src/networking.cpp b/src/networking.cpp index ab0a335e4..b8d3ef0b2 100644 --- a/src/networking.cpp +++ b/src/networking.cpp @@ -2371,7 +2371,7 @@ void parseClientCommandBuffer(client *c) { } /* Prefetch outside the lock for better perf */ - if (cqueriesStart < c->vecqueuedcmd.size() && !GlobalLocksAcquired()) { + if (g_pserver->prefetch_enabled && cqueriesStart < c->vecqueuedcmd.size() && !GlobalLocksAcquired()) { auto &query = c->vecqueuedcmd.back(); if (query.argc > 0 && query.argc == query.argcMax) { if (c->db->prefetchKeysAsync(c, query, c->vecqueuedcmd.size() == 1)) { diff --git a/src/server.h b/src/server.h index 0e8bf8ccb..8619ee28e 100644 --- a/src/server.h +++ b/src/server.h @@ -2399,6 +2399,8 @@ struct redisServer { char *aof_rewrite_cpulist; /* cpu affinity list of aof rewrite process. */ char *bgsave_cpulist; /* cpu affinity list of bgsave process. */ + int prefetch_enabled = 1; + long long repl_batch_offStart = -1; long long repl_batch_idxStart = -1;