diff --git a/be/src/clucene b/be/src/clucene index d3de160871dc1e..25324632babc0e 160000 --- a/be/src/clucene +++ b/be/src/clucene @@ -1 +1 @@ -Subproject commit d3de160871dc1e2e293e5702e5b870e220ed42e4 +Subproject commit 25324632babc0e5da28048ebbe9adcbdfc73c281 diff --git a/be/src/olap/rowset/segment_v2/inverted_index_reader.cpp b/be/src/olap/rowset/segment_v2/inverted_index_reader.cpp index 678c63e078c0b2..f453e7cca31729 100644 --- a/be/src/olap/rowset/segment_v2/inverted_index_reader.cpp +++ b/be/src/olap/rowset/segment_v2/inverted_index_reader.cpp @@ -239,6 +239,8 @@ Status InvertedIndexReader::create_index_searcher(lucene::store::Directory* dir, if (std::string(dir->getObjectName()) == "DorisCompoundReader") { static_cast(dir)->getDorisIndexInput()->setIdxFileCache(false); } + // NOTE: before mem_tracker hook becomes active, we caculate reader memory size by hand. + mem_tracker->consume(index_searcher_builder->get_reader_size()); return Status::OK(); }; diff --git a/be/src/olap/rowset/segment_v2/inverted_index_searcher.cpp b/be/src/olap/rowset/segment_v2/inverted_index_searcher.cpp index aff9c6ae0e0043..90d455e5754bfd 100644 --- a/be/src/olap/rowset/segment_v2/inverted_index_searcher.cpp +++ b/be/src/olap/rowset/segment_v2/inverted_index_searcher.cpp @@ -44,6 +44,7 @@ Status FulltextIndexSearcherBuilder::build(lucene::store::Directory* directory, return Status::Error( "FulltextIndexSearcherBuilder build index_searcher error."); } + reader_size = reader->getTermInfosRAMUsed(); // NOTE: need to cl_refcount-- here, so that directory will be deleted when // index_searcher is destroyed _CLDECDELETE(directory) diff --git a/be/src/olap/rowset/segment_v2/inverted_index_searcher.h b/be/src/olap/rowset/segment_v2/inverted_index_searcher.h index b0466ab2df21f9..46297fbf6e25bd 100644 --- a/be/src/olap/rowset/segment_v2/inverted_index_searcher.h +++ b/be/src/olap/rowset/segment_v2/inverted_index_searcher.h @@ -61,6 +61,10 @@ class IndexSearcherBuilder { virtual Result get_index_searcher(lucene::store::Directory* directory); static Result> create_index_searcher_builder( InvertedIndexReaderType reader_type); + int64_t get_reader_size() const { return reader_size; } + +protected: + int64_t reader_size = 0; }; class FulltextIndexSearcherBuilder : public IndexSearcherBuilder {