diff --git a/internal/core/src/index/json_stats/JsonKeyStats.cpp b/internal/core/src/index/json_stats/JsonKeyStats.cpp index 2d1265085f..ba4394379a 100644 --- a/internal/core/src/index/json_stats/JsonKeyStats.cpp +++ b/internal/core/src/index/json_stats/JsonKeyStats.cpp @@ -1006,7 +1006,9 @@ JsonKeyStats::Load(milvus::tracer::TraceContext ctx, const Config& config) { LoadShreddingData(shredding_data_files); // load shared key index - bson_inverted_index_->LoadIndex(shared_key_index_files, load_priority_); + bson_inverted_index_->LoadIndex(shared_key_index_files, + load_priority_, + config.contains(MMAP_FILE_PATH)); } IndexStatsPtr diff --git a/internal/core/src/index/json_stats/bson_inverted.cpp b/internal/core/src/index/json_stats/bson_inverted.cpp index 4b4367144e..3d8af02c46 100644 --- a/internal/core/src/index/json_stats/bson_inverted.cpp +++ b/internal/core/src/index/json_stats/bson_inverted.cpp @@ -104,7 +104,8 @@ BsonInvertedIndex::BuildIndex() { void BsonInvertedIndex::LoadIndex(const std::vector& index_files, - milvus::proto::common::LoadPriority priority) { + milvus::proto::common::LoadPriority priority, + bool load_in_mmap) { if (is_load_) { // convert shared_key_index/... to remote_prefix/shared_key_index/... std::vector remote_files; @@ -122,10 +123,17 @@ BsonInvertedIndex::LoadIndex(const std::vector& index_files, "index dir not exist: {}", path_); wrapper_ = std::make_shared( - path_.c_str(), false, milvus::index::SetBitsetUnused); - LOG_INFO("load json shared key index done for field id:{} with dir:{}", - field_id_, - path_); + path_.c_str(), load_in_mmap, milvus::index::SetBitsetUnused); + + if (!load_in_mmap) { + disk_file_manager_->RemoveJsonStatsSharedIndexFiles(); + } + LOG_INFO( + "load json shared key index done for field id:{} with " + "dir:{},load_in_mmap:{}", + field_id_, + path_, + load_in_mmap); } } diff --git a/internal/core/src/index/json_stats/bson_inverted.h b/internal/core/src/index/json_stats/bson_inverted.h index c532feb34e..772149f665 100644 --- a/internal/core/src/index/json_stats/bson_inverted.h +++ b/internal/core/src/index/json_stats/bson_inverted.h @@ -57,7 +57,8 @@ class BsonInvertedIndex { void LoadIndex(const std::vector& index_files, - milvus::proto::common::LoadPriority priority); + milvus::proto::common::LoadPriority priority, + bool load_in_mmap); IndexStatsPtr UploadIndex(); diff --git a/internal/core/src/storage/DiskFileManagerImpl.cpp b/internal/core/src/storage/DiskFileManagerImpl.cpp index 60c738c777..860f9cb1d8 100644 --- a/internal/core/src/storage/DiskFileManagerImpl.cpp +++ b/internal/core/src/storage/DiskFileManagerImpl.cpp @@ -721,6 +721,13 @@ DiskFileManagerImpl::RemoveTextLogFiles() { local_chunk_manager->RemoveDir(GetLocalTextIndexPrefix()); } +void +DiskFileManagerImpl::RemoveJsonStatsSharedIndexFiles() { + auto local_chunk_manager = + LocalChunkManagerSingleton::GetInstance().GetChunkManager(); + local_chunk_manager->RemoveDir(GetLocalJsonStatsSharedIndexPrefix()); +} + void DiskFileManagerImpl::RemoveJsonStatsFiles() { auto local_chunk_manager = diff --git a/internal/core/src/storage/DiskFileManagerImpl.h b/internal/core/src/storage/DiskFileManagerImpl.h index 64c6a38c67..6049eb7f2c 100644 --- a/internal/core/src/storage/DiskFileManagerImpl.h +++ b/internal/core/src/storage/DiskFileManagerImpl.h @@ -173,6 +173,9 @@ class DiskFileManagerImpl : public FileManagerImpl { void RemoveTextLogFiles(); + void + RemoveJsonStatsSharedIndexFiles(); + void RemoveJsonStatsFiles();