diff options
5 files changed, 15 insertions, 1 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/server/proton.cpp b/searchcore/src/vespa/searchcore/proton/server/proton.cpp index 3f8db3f2ff9..1ab1ba72b4f 100644 --- a/searchcore/src/vespa/searchcore/proton/server/proton.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/proton.cpp @@ -662,6 +662,7 @@ Proton::ping(MonitorRequest::UP request, MonitorClient & client) ret.timestamp = (_matchEngine->isOnline()) ? 42 : 0; ret.activeDocs = (_matchEngine->isOnline()) ? getNumActiveDocs() : 0; ret.activeDocsRequested = request->reportActiveDocs; + ret.is_blocking_writes = !_diskMemUsageSampler->writeFilter().acceptWriteOperation(); return reply; } diff --git a/searchlib/src/tests/engine/proto_converter/proto_converter_test.cpp b/searchlib/src/tests/engine/proto_converter/proto_converter_test.cpp index 3e129457d46..16e4f93b6fb 100644 --- a/searchlib/src/tests/engine/proto_converter/proto_converter_test.cpp +++ b/searchlib/src/tests/engine/proto_converter/proto_converter_test.cpp @@ -535,6 +535,16 @@ TEST_F(MonitorReplyTest, require_that_distribution_key_is_converted) { EXPECT_EQ(proto.distribution_key(), 7); } +TEST_F(MonitorReplyTest, require_that_is_blocking_writes_is_converted) { + reply.is_blocking_writes = false; + convert(); + EXPECT_FALSE(proto.is_blocking_writes()); + + reply.is_blocking_writes = true; + convert(); + EXPECT_TRUE(proto.is_blocking_writes()); +} + //----------------------------------------------------------------------------- GTEST_MAIN_RUN_ALL_TESTS() diff --git a/searchlib/src/vespa/searchlib/engine/monitorreply.cpp b/searchlib/src/vespa/searchlib/engine/monitorreply.cpp index c0f7fa0d42a..3414603a893 100644 --- a/searchlib/src/vespa/searchlib/engine/monitorreply.cpp +++ b/searchlib/src/vespa/searchlib/engine/monitorreply.cpp @@ -15,7 +15,8 @@ MonitorReply::MonitorReply() totalParts(), activeParts(), activeDocs(0), - flags() + flags(), + is_blocking_writes(false) { } } diff --git a/searchlib/src/vespa/searchlib/engine/monitorreply.h b/searchlib/src/vespa/searchlib/engine/monitorreply.h index 7d1f0ce1cef..f66a30fdd89 100644 --- a/searchlib/src/vespa/searchlib/engine/monitorreply.h +++ b/searchlib/src/vespa/searchlib/engine/monitorreply.h @@ -21,6 +21,7 @@ struct MonitorReply uint32_t activeParts; // mld uint64_t activeDocs; uint32_t flags; + bool is_blocking_writes; MonitorReply(); }; diff --git a/searchlib/src/vespa/searchlib/engine/proto_converter.cpp b/searchlib/src/vespa/searchlib/engine/proto_converter.cpp index e5846734a8d..2876fa99434 100644 --- a/searchlib/src/vespa/searchlib/engine/proto_converter.cpp +++ b/searchlib/src/vespa/searchlib/engine/proto_converter.cpp @@ -170,6 +170,7 @@ ProtoConverter::monitor_reply_to_proto(const MonitorReply &reply, ProtoMonitorRe proto.set_online(reply.timestamp != 0); proto.set_active_docs(reply.activeDocs); proto.set_distribution_key(reply.distribution_key); + proto.set_is_blocking_writes(reply.is_blocking_writes); } //----------------------------------------------------------------------------- |