diff --git a/conf/config.yaml b/conf/config.yaml index 97034f8890..da6355c85c 100644 --- a/conf/config.yaml +++ b/conf/config.yaml @@ -35,6 +35,7 @@ pulsar: proxy: timezone: UTC+8 + query_node_num: 1 network: address: 0.0.0.0 diff --git a/core/release-build.sh b/core/release-build.sh new file mode 100755 index 0000000000..f7fd8861ac --- /dev/null +++ b/core/release-build.sh @@ -0,0 +1,156 @@ +#!/bin/bash + +# Compile jobs variable; Usage: $ jobs=12 ./build.sh ... +if [[ ! ${jobs+1} ]]; then + jobs=$(nproc) +fi + +BUILD_OUTPUT_DIR="cmake-build-release" +BUILD_TYPE="Release" +BUILD_UNITTEST="OFF" +INSTALL_PREFIX=$(pwd)/milvus +MAKE_CLEAN="OFF" +BUILD_COVERAGE="OFF" +DB_PATH="/tmp/milvus" +PROFILING="OFF" +RUN_CPPLINT="OFF" +CUDA_COMPILER=/usr/local/cuda/bin/nvcc +GPU_VERSION="OFF" #defaults to CPU version +WITH_PROMETHEUS="ON" +CUDA_ARCH="DEFAULT" +CUSTOM_THIRDPARTY_PATH="" + +while getopts "p:d:t:s:f:ulrcghzme" arg; do + case $arg in + f) + CUSTOM_THIRDPARTY_PATH=$OPTARG + ;; + p) + INSTALL_PREFIX=$OPTARG + ;; + d) + DB_PATH=$OPTARG + ;; + t) + BUILD_TYPE=$OPTARG # BUILD_TYPE + ;; + u) + echo "Build and run unittest cases" + BUILD_UNITTEST="ON" + ;; + l) + RUN_CPPLINT="ON" + ;; + r) + if [[ -d ${BUILD_OUTPUT_DIR} ]]; then + MAKE_CLEAN="ON" + fi + ;; + c) + BUILD_COVERAGE="ON" + ;; + z) + PROFILING="ON" + ;; + g) + GPU_VERSION="ON" + ;; + e) + WITH_PROMETHEUS="OFF" + ;; + s) + CUDA_ARCH=$OPTARG + ;; + h) # help + echo " + +parameter: +-f: custom paths of thirdparty downloaded files(default: NULL) +-p: install prefix(default: $(pwd)/milvus) +-d: db data path(default: /tmp/milvus) +-t: build type(default: Debug) +-u: building unit test options(default: OFF) +-l: run cpplint, clang-format and clang-tidy(default: OFF) +-r: remove previous build directory(default: OFF) +-c: code coverage(default: OFF) +-z: profiling(default: OFF) +-g: build GPU version(default: OFF) +-e: build without prometheus(default: OFF) +-s: build with CUDA arch(default:DEFAULT), for example '-gencode=compute_61,code=sm_61;-gencode=compute_75,code=sm_75' +-h: help + +usage: +./build.sh -p \${INSTALL_PREFIX} -t \${BUILD_TYPE} -s \${CUDA_ARCH} -f\${CUSTOM_THIRDPARTY_PATH} [-u] [-l] [-r] [-c] [-z] [-g] [-m] [-e] [-h] + " + exit 0 + ;; + ?) + echo "ERROR! unknown argument" + exit 1 + ;; + esac +done + +if [[ ! -d ${BUILD_OUTPUT_DIR} ]]; then + mkdir ${BUILD_OUTPUT_DIR} +fi + +cd ${BUILD_OUTPUT_DIR} + +# remove make cache since build.sh -l use default variables +# force update the variables each time +make rebuild_cache >/dev/null 2>&1 + + +if [[ ${MAKE_CLEAN} == "ON" ]]; then + echo "Runing make clean in ${BUILD_OUTPUT_DIR} ..." + make clean + exit 0 +fi + +CMAKE_CMD="cmake \ +-DBUILD_UNIT_TEST=${BUILD_UNITTEST} \ +-DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} +-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ +-DOpenBLAS_SOURCE=AUTO \ +-DCMAKE_CUDA_COMPILER=${CUDA_COMPILER} \ +-DBUILD_COVERAGE=${BUILD_COVERAGE} \ +-DMILVUS_DB_PATH=${DB_PATH} \ +-DENABLE_CPU_PROFILING=${PROFILING} \ +-DMILVUS_GPU_VERSION=${GPU_VERSION} \ +-DMILVUS_WITH_PROMETHEUS=${WITH_PROMETHEUS} \ +-DMILVUS_CUDA_ARCH=${CUDA_ARCH} \ +-DCUSTOM_THIRDPARTY_DOWNLOAD_PATH=${CUSTOM_THIRDPARTY_PATH} \ +../" +echo ${CMAKE_CMD} +${CMAKE_CMD} + + +if [[ ${RUN_CPPLINT} == "ON" ]]; then + # cpplint check + make lint + if [ $? -ne 0 ]; then + echo "ERROR! cpplint check failed" + exit 1 + fi + echo "cpplint check passed!" + + # clang-format check + make check-clang-format + if [ $? -ne 0 ]; then + echo "ERROR! clang-format check failed" + exit 1 + fi + echo "clang-format check passed!" + + # clang-tidy check + make check-clang-tidy + if [ $? -ne 0 ]; then + echo "ERROR! clang-tidy check failed" + exit 1 + fi + echo "clang-tidy check passed!" +else + # compile and build + make -j ${jobs} install || exit 1 +fi diff --git a/proxy/src/config/ConfigMgr.cpp b/proxy/src/config/ConfigMgr.cpp index c49ddba871..d19aa7cd7a 100644 --- a/proxy/src/config/ConfigMgr.cpp +++ b/proxy/src/config/ConfigMgr.cpp @@ -73,6 +73,9 @@ ConfigMgr::ConfigMgr() { {"timezone", CreateStringConfig("timezone", false, &config.timezone.value, "UTC+8", nullptr, nullptr)}, + {"query_node_num", CreateIntegerConfig("query_node_num", false, 0, 1023, &config.query_node_num.value, + 1, nullptr, nullptr)}, + /* network */ {"network.address", CreateStringConfig("network.address", false, &config.network.address.value, "0.0.0.0", nullptr, nullptr)}, diff --git a/proxy/src/config/ServerConfig.h b/proxy/src/config/ServerConfig.h index 78353c8019..e7a9a2480a 100644 --- a/proxy/src/config/ServerConfig.h +++ b/proxy/src/config/ServerConfig.h @@ -65,6 +65,7 @@ struct ServerConfig { using Floating = ConfigValue; String timezone{"unknown"}; + Integer query_node_num{1}; struct Network { String address{"unknown"}; diff --git a/proxy/src/message_client/ClientV2.cpp b/proxy/src/message_client/ClientV2.cpp index 71dc789fb4..ae795e7955 100644 --- a/proxy/src/message_client/ClientV2.cpp +++ b/proxy/src/message_client/ClientV2.cpp @@ -2,6 +2,7 @@ #include "pulsar/Result.h" #include "PartitionPolicy.h" #include "utils/CommonUtil.h" +#include "config/ServerConfig.h" #include #include #include @@ -47,7 +48,7 @@ Status MsgClientV2::Init(const std::string &insert_delete, } int64_t GetQueryNodeNum() { - return 1; + return config.query_node_num(); } Status