diff --git a/milvus_binary/build.sh b/milvus_binary/build.sh index a85f03b..64a1622 100644 --- a/milvus_binary/build.sh +++ b/milvus_binary/build.sh @@ -147,6 +147,7 @@ function install_deps_for_macosx() { bash milvus/scripts/install_deps.sh # need this for cache binary brew install coreutils + pip3 install --user "conan<2.0" } # build for macos arm64/x86_64 diff --git a/milvus_binary/env.sh b/milvus_binary/env.sh index d118722..ff75af6 100644 --- a/milvus_binary/env.sh +++ b/milvus_binary/env.sh @@ -1,5 +1,5 @@ MILVUS_REPO="https://github.com/milvus-io/milvus.git" -MILVUS_VERSION="v2.3.5" +MILVUS_VERSION="v2.3.8" BUILD_PROXY= BUILD_FORCE=NO diff --git a/milvus_binary/patches/knowhere-v2.2.4.patch b/milvus_binary/patches/knowhere-v2.2.4.patch new file mode 100644 index 0000000..c28a104 --- /dev/null +++ b/milvus_binary/patches/knowhere-v2.2.4.patch @@ -0,0 +1,34 @@ +From e8663fb525b5e34f9a4c5ece5cecf82304e2f975 Mon Sep 17 00:00:00 2001 +From: Ji Bin +Date: Sun, 5 Nov 2023 18:27:32 +0800 +Subject: [PATCH] fix for gettid + +Signed-off-by: Ji Bin +--- + include/knowhere/comp/thread_pool.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/include/knowhere/comp/thread_pool.h b/include/knowhere/comp/thread_pool.h +index 29d1eb6..895ec53 100644 +--- a/include/knowhere/comp/thread_pool.h ++++ b/include/knowhere/comp/thread_pool.h +@@ -13,6 +13,7 @@ + + #include + #include ++#include + + #include + #include +@@ -39,7 +40,7 @@ class ThreadPool { + std::thread + newThread(folly::Func&& func) override { + return folly::NamedThreadFactory::newThread([&, func = std::move(func)]() mutable { +- if (setpriority(PRIO_PROCESS, gettid(), 19) != 0) { ++ if (setpriority(PRIO_PROCESS, syscall(SYS_gettid), 19) != 0) { + LOG_KNOWHERE_ERROR_ << "Failed to set priority of knowhere thread. Error is: " + << std::strerror(errno); + } else { +-- +2.43.0 + diff --git a/milvus_binary/patches/milvus-v2.3.8/0001-link-with-CoreServices-for-macos.patch b/milvus_binary/patches/milvus-v2.3.8/0001-link-with-CoreServices-for-macos.patch new file mode 100644 index 0000000..4b74262 --- /dev/null +++ b/milvus_binary/patches/milvus-v2.3.8/0001-link-with-CoreServices-for-macos.patch @@ -0,0 +1,29 @@ +From 3545739f355460b84abac84c83a7b363d664431f Mon Sep 17 00:00:00 2001 +From: Ji Bin +Date: Mon, 13 Nov 2023 23:20:16 +0800 +Subject: [PATCH 1/2] link with CoreServices for macos + +Signed-off-by: Ji Bin +--- + internal/core/src/storage/azure-blob-storage/CMakeLists.txt | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/internal/core/src/storage/azure-blob-storage/CMakeLists.txt b/internal/core/src/storage/azure-blob-storage/CMakeLists.txt +index 62b2e971c..bf803da35 100644 +--- a/internal/core/src/storage/azure-blob-storage/CMakeLists.txt ++++ b/internal/core/src/storage/azure-blob-storage/CMakeLists.txt +@@ -36,6 +36,11 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter -Wno-return-type - + add_library(blob-chunk-manager SHARED AzureBlobChunkManager.cpp) + target_link_libraries(blob-chunk-manager PUBLIC Azure::azure-identity Azure::azure-storage-blobs) + ++if (APPLE) ++ find_library(CORESERVICES_LIBRARY CoreServices) ++ target_link_libraries(blob-chunk-manager PRIVATE ${CORESERVICES_LIBRARY}) ++endif (APPLE) ++ + install(TARGETS blob-chunk-manager DESTINATION "${CMAKE_INSTALL_LIBDIR}") + + if ( BUILD_UNIT_TEST STREQUAL "ON" ) +-- +2.43.0 + diff --git a/milvus_binary/patches/milvus-v2.3.8/0002-fix-for-gettid.patch b/milvus_binary/patches/milvus-v2.3.8/0002-fix-for-gettid.patch new file mode 100644 index 0000000..a45688e --- /dev/null +++ b/milvus_binary/patches/milvus-v2.3.8/0002-fix-for-gettid.patch @@ -0,0 +1,25 @@ +From 99b8bbd82fbcd5ca64bc68c67006c45fd2cf0c48 Mon Sep 17 00:00:00 2001 +From: Ji Bin +Date: Sun, 5 Nov 2023 18:49:29 +0800 +Subject: [PATCH 2/2] fix for gettid + +Signed-off-by: Ji Bin +--- + internal/core/thirdparty/knowhere/CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/internal/core/thirdparty/knowhere/CMakeLists.txt b/internal/core/thirdparty/knowhere/CMakeLists.txt +index ea65c26f0..19451903c 100644 +--- a/internal/core/thirdparty/knowhere/CMakeLists.txt ++++ b/internal/core/thirdparty/knowhere/CMakeLists.txt +@@ -41,6 +41,7 @@ FetchContent_Declare( + GIT_TAG ${KNOWHERE_VERSION} + SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/knowhere-src + BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/knowhere-build ++ PATCH_COMMAND patch -p1 < ${CMAKE_SOURCE_DIR}/../../../patches/knowhere-v2.2.4.patch + DOWNLOAD_DIR ${THIRDPARTY_DOWNLOAD_PATH} ) + + FetchContent_GetProperties( knowhere ) +-- +2.43.0 + diff --git a/src/milvus/__init__.py b/src/milvus/__init__.py index 1932516..0876880 100644 --- a/src/milvus/__init__.py +++ b/src/milvus/__init__.py @@ -21,7 +21,7 @@ import json import hashlib -__version__ = '2.3.5' +__version__ = '2.3.8' LOGGERS = {} diff --git a/src/milvus/data/config.yaml.template b/src/milvus/data/config.yaml.template index 79e4ef8..9f1df97 100644 --- a/src/milvus/data/config.yaml.template +++ b/src/milvus/data/config.yaml.template @@ -177,9 +177,10 @@ rootCoord: port: {{ root_coord_port(int): 53100 }} grpc: serverMaxSendSize: 536870912 - serverMaxRecvSize: 536870912 + serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 - clientMaxRecvSize: 268435456 + clientMaxRecvSize: 536870912 + maxGeneralCapacity: 65536 # Related configuration of proxy, used to validate client requests and reduce the returned results. proxy: @@ -197,7 +198,8 @@ proxy: maxDimension: 32768 # Maximum dimension of a vector # Whether to produce gin logs.\n # please adjust in embedded Milvus: false - ginLogging: false + ginLogging: true + ginLogSkipPaths: "/" # skipped url path for gin log split by comma maxTaskNum: 1024 # max task number of proxy task queue accessLog: enable: false @@ -235,15 +237,15 @@ proxy: port: {{ proxy_port(int): 19530 }} internalPort: {{ proxy_internal_port(int): 19529 }} grpc: - serverMaxSendSize: 67108864 + serverMaxSendSize: 268435456 serverMaxRecvSize: 67108864 clientMaxSendSize: 268435456 - clientMaxRecvSize: 268435456 + clientMaxRecvSize: 67108864 # Related configuration of queryCoord, used to manage topology and load balancing for the query nodes, and handoff from growing segments to sealed segments. queryCoord: autoHandoff: true # Enable auto handoff - autoBalance: false # Enable auto balance + autoBalance: true # Enable auto balance balancer: ScoreBasedBalancer # Balancer to use globalRowCountFactor: 0.1 # expert parameters, only used by scoreBasedBalancer scoreUnbalanceTolerationFactor: 0.05 # expert parameters, only used by scoreBasedBalancer @@ -258,15 +260,16 @@ queryCoord: heartbeatAvailableInterval: 10000 # 10s, Only QueryNodes which fetched heartbeats within the duration are available loadTimeoutSeconds: 600 checkHandoffInterval: 5000 + growingRowCountWeight: 4.0 # can specify ip for example # ip: 127.0.0.1 ip: # if not specify address, will use the first unicastable address as local ip port: {{ query_coord_port(int): 19531 }} grpc: serverMaxSendSize: 536870912 - serverMaxRecvSize: 536870912 + serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 - clientMaxRecvSize: 268435456 + clientMaxRecvSize: 536870912 taskMergeCap: 1 taskExecutionCap: 256 enableActiveStandby: false # Enable active-standby @@ -299,6 +302,16 @@ queryNode: enabled: true # deprecated, TODO: remove it memoryLimit: 2147483648 # 2 GB, 2 * 1024 *1024 *1024 # deprecated, TODO: remove it readAheadPolicy: willneed # The read ahead policy of chunk cache, options: `normal, random, sequential, willneed, dontneed` + # Specifies the necessity for warming up the chunk cache. + # 1. If set to "sync" or "async," the original vector data + # will be synchronously/asynchronously loaded into the + # chunk cache during the load process. This approach has + # the potential to substantially reduce query/search latency + # for a specific duration post-load, albeit accompanied + # by a concurrent increase in disk usage; + # 2. If set to "off," original vector data will only + # be loaded into the chunk cache during search/query. + warmup: async # options: `sync, async, off` grouping: enabled: true maxNQ: 1000 @@ -336,9 +349,9 @@ queryNode: port: {{ query_node_port(int): 21123 }} grpc: serverMaxSendSize: 536870912 - serverMaxRecvSize: 536870912 + serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 - clientMaxRecvSize: 268435456 + clientMaxRecvSize: 536870912 indexCoord: bindIndexNodeMode: @@ -360,9 +373,9 @@ indexNode: port: {{ index_node_port(int): 21121 }} grpc: serverMaxSendSize: 536870912 - serverMaxRecvSize: 536870912 + serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 - clientMaxRecvSize: 268435456 + clientMaxRecvSize: 536870912 dataCoord: channel: @@ -415,9 +428,9 @@ dataCoord: port: {{ data_coord_port(int): 13333 }} grpc: serverMaxSendSize: 536870912 - serverMaxRecvSize: 536870912 + serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 - clientMaxRecvSize: 268435456 + clientMaxRecvSize: 536870912 dataNode: dataSync: @@ -441,9 +454,9 @@ dataNode: port: {{ data_node_port(int): 21124 }} grpc: serverMaxSendSize: 536870912 - serverMaxRecvSize: 536870912 + serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 - clientMaxRecvSize: 268435456 + clientMaxRecvSize: 536870912 memory: forceSyncEnable: true # `true` to force sync if memory usage is too high forceSyncSegmentNum: 1 # number of segments to sync, segments with top largest buffer will be synced. @@ -475,8 +488,10 @@ log: grpc: log: level: WARNING - serverMaxSendSize: 536870912 - serverMaxRecvSize: 536870912 + serverMaxSendSize: 536870912 + serverMaxRecvSize: 268435456 + clientMaxSendSize: 268435456 + clientMaxRecvSize: 536870912 client: compressionEnabled: false dialTimeout: 200 @@ -486,8 +501,6 @@ grpc: initialBackOff: 0.2 # seconds maxBackoff: 10 # seconds backoffMultiplier: 2.0 # deprecated - clientMaxSendSize: 268435456 - clientMaxRecvSize: 268435456 # Configure the proxy tls enable. tls: @@ -531,6 +544,7 @@ common: SearchCacheBudgetGBRatio: 0.1 LoadNumThreadRatio: 8 BeamWidthRatio: 4 + consistencyLevelUsedInDelete: "Bounded" gracefulTime: 5000 # milliseconds. it represents the interval (in ms) by which the request arrival time needs to be subtracted in the case of Bounded Consistency. gracefulStopTimeout: 1800 # seconds. it will force quit the server if the graceful stop process is not completed during this time. storageType: local # please adjust in embedded Milvus: local