From 09da953a1987a6b9750a49550cb43c56c062febf Mon Sep 17 00:00:00 2001 From: Patrick Weizhi Xu Date: Sun, 13 Aug 2023 20:53:30 +0800 Subject: [PATCH] Use Knowhere AIO Context Init Defalut Value and Panic when Fail (#26286) Signed-off-by: Patrick Weizhi Xu --- internal/core/src/config/ConfigKnowhere.cpp | 5 ++++- internal/core/thirdparty/knowhere/CMakeLists.txt | 2 +- internal/core/unittest/test_init.cpp | 15 +++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/internal/core/src/config/ConfigKnowhere.cpp b/internal/core/src/config/ConfigKnowhere.cpp index 4f99578d9..9e0658d76 100644 --- a/internal/core/src/config/ConfigKnowhere.cpp +++ b/internal/core/src/config/ConfigKnowhere.cpp @@ -74,7 +74,10 @@ KnowhereSetSimdType(const char* value) { void KnowhereInitThreadPool(const uint32_t num_threads) { knowhere::ThreadPool::InitGlobalThreadPool(num_threads); - knowhere::KnowhereConfig::SetAioContextPool(num_threads, 32); + if (!knowhere::KnowhereConfig::SetAioContextPool(num_threads)) { + PanicInfo("Failed to set aio context pool with num_threads " + + std::to_string(num_threads)); + } } } // namespace milvus::config diff --git a/internal/core/thirdparty/knowhere/CMakeLists.txt b/internal/core/thirdparty/knowhere/CMakeLists.txt index 3cfafdac2..00bf349ca 100644 --- a/internal/core/thirdparty/knowhere/CMakeLists.txt +++ b/internal/core/thirdparty/knowhere/CMakeLists.txt @@ -11,7 +11,7 @@ # or implied. See the License for the specific language governing permissions and limitations under the License. #------------------------------------------------------------------------------- -set( KNOWHERE_VERSION 4f99dc0) +set( KNOWHERE_VERSION aa4a42f ) message(STATUS "Building knowhere-${KNOWHERE_SOURCE_VER} from source") message(STATUS ${CMAKE_BUILD_TYPE}) diff --git a/internal/core/unittest/test_init.cpp b/internal/core/unittest/test_init.cpp index 6ecdc953f..630bee671 100644 --- a/internal/core/unittest/test_init.cpp +++ b/internal/core/unittest/test_init.cpp @@ -10,7 +10,10 @@ // or implied. See the License for the specific language governing permissions and limitations under the License #include +#include +#include "config/ConfigKnowhere.h" +#include "gtest/gtest-death-test.h" #include "segcore/segcore_init_c.h" #include "test_utils/DataGen.h" @@ -22,3 +25,15 @@ TEST(Init, Naive) { auto simd_type = SegcoreSetSimdType("auto"); free(simd_type); } + +TEST(Init, KnowhereThreadPoolInit) { +#ifdef BUILD_DISK_ANN + try { + milvus::config::KnowhereInitThreadPool(0); + } catch (std::exception& e) { + ASSERT_TRUE(std::string(e.what()).find( + "Failed to set aio context pool") != std::string::npos); + } +#endif + milvus::config::KnowhereInitThreadPool(8); +} -- GitLab