From 04f4447ab914ec955eabb91169485223725d9528 Mon Sep 17 00:00:00 2001 From: Koushal Kawade Date: Wed, 11 Jun 2025 06:27:52 +0000 Subject: [PATCH] Set memory limit for IResearch --- 3rdParty/iresearch | 2 +- arangod/IResearch/IResearchFeature.cpp | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/3rdParty/iresearch b/3rdParty/iresearch index c24abc117de1..61a8a3ca3124 160000 --- a/3rdParty/iresearch +++ b/3rdParty/iresearch @@ -1 +1 @@ -Subproject commit c24abc117de144291862349c2e281a76d252c1ff +Subproject commit 61a8a3ca312492ff234b26a992ae54696e7fbf40 diff --git a/arangod/IResearch/IResearchFeature.cpp b/arangod/IResearch/IResearchFeature.cpp index ba65a874ce8f..6da591cbca0a 100644 --- a/arangod/IResearch/IResearchFeature.cpp +++ b/arangod/IResearch/IResearchFeature.cpp @@ -85,6 +85,8 @@ #include "VocBase/LogicalCollection.h" #include "VocBase/LogicalDataSource.h" #include "VocBase/LogicalView.h" +#include "Basics/PhysicalMemory.h" +#include "resource_manager.hpp" #include @@ -1105,6 +1107,12 @@ void IResearchFeature::validateOptions( void IResearchFeature::prepare() { TRI_ASSERT(isEnabled()); + // Set memory limits for IResearchFeature to 50% of available memory. + auto physicalMem = static_cast(PhysicalMemory::getValue()); + irs::IResearchMemoryManager::GetInstance()->SetMemoryLimit(physicalMem / 2); + LOG_TOPIC("462d7", INFO, arangodb::iresearch::TOPIC) << "Setting IResearch memory limit to " << + physicalMem / 2; + // load all known codecs ::irs::formats::init();