Skip to content

Commit

Permalink
revert config
Browse files Browse the repository at this point in the history
Signed-off-by: xianliang.li <[email protected]>
  • Loading branch information
foxspy committed Oct 11, 2024
1 parent 59f9bcf commit f677188
Show file tree
Hide file tree
Showing 21 changed files with 125 additions and 152 deletions.
4 changes: 2 additions & 2 deletions internal/core/src/index/ScalarIndex.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,8 @@ class ScalarIndex : public IndexBase {

virtual bool
IsMmapSupported() const {
return index_type_ == milvus::index::BITMAP_INDEX_TYPE ||
index_type_ == milvus::index::HYBRID_INDEX_TYPE;
return index_type_ == milvus::index::BITMAP_INDEX_TYPE ||
index_type_ == milvus::index::HYBRID_INDEX_TYPE;
}

virtual int64_t
Expand Down
3 changes: 2 additions & 1 deletion internal/core/src/index/VectorIndex.h
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,8 @@ class VectorIndex : public IndexBase {

virtual bool
IsMmapSupported() const {
return knowhere::IndexFactory::Instance().FeatureCheck(index_type_, knowhere::feature::MMAP);
return knowhere::IndexFactory::Instance().FeatureCheck(
index_type_, knowhere::feature::MMAP);
}

knowhere::Json
Expand Down
41 changes: 32 additions & 9 deletions internal/core/src/segcore/vector_index_c.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,15 @@
#include "pb/index_cgo_msg.pb.h"

CStatus
ValidateIndexParams(const char* index_type, enum CDataType data_type, const uint8_t* serialized_index_params, const uint64_t length) {
ValidateIndexParams(const char* index_type,
enum CDataType data_type,
const uint8_t* serialized_index_params,
const uint64_t length) {
try {
auto index_params =
std::make_unique<milvus::proto::indexcgo::IndexParams>();
auto res = index_params->ParseFromArray(serialized_index_params, length);
std::make_unique<milvus::proto::indexcgo::IndexParams>();
auto res =
index_params->ParseFromArray(serialized_index_params, length);
AssertInfo(res, "Unmarshall index params failed");

knowhere::Json json;
Expand All @@ -40,15 +44,35 @@ ValidateIndexParams(const char* index_type, enum CDataType data_type, const uint
knowhere::Status status;
std::string error_msg;
if (dataType == milvus::DataType::VECTOR_BINARY) {
status = knowhere::CheckConfig<knowhere::bin1>(index_type, knowhere::Version::GetCurrentVersion().VersionNumber(), json, knowhere::PARAM_TYPE::TRAIN, error_msg);
status = knowhere::IndexStaticFaced<knowhere::bin1>::ConfigCheck(
index_type,
knowhere::Version::GetCurrentVersion().VersionNumber(),
json,
error_msg);
} else if (dataType == milvus::DataType::VECTOR_FLOAT) {
status = knowhere::CheckConfig<knowhere::fp32>(index_type, knowhere::Version::GetCurrentVersion().VersionNumber(), json, knowhere::PARAM_TYPE::TRAIN, error_msg);
status = knowhere::IndexStaticFaced<knowhere::fp32>::ConfigCheck(
index_type,
knowhere::Version::GetCurrentVersion().VersionNumber(),
json,
error_msg);
} else if (dataType == milvus::DataType::VECTOR_BFLOAT16) {
status = knowhere::CheckConfig<knowhere::bf16>(index_type, knowhere::Version::GetCurrentVersion().VersionNumber(), json, knowhere::PARAM_TYPE::TRAIN, error_msg);
status = knowhere::IndexStaticFaced<knowhere::bf16>::ConfigCheck(
index_type,
knowhere::Version::GetCurrentVersion().VersionNumber(),
json,
error_msg);
} else if (dataType == milvus::DataType::VECTOR_FLOAT16) {
status = knowhere::CheckConfig<knowhere::fp16>(index_type, knowhere::Version::GetCurrentVersion().VersionNumber(), json, knowhere::PARAM_TYPE::TRAIN, error_msg);
status = knowhere::IndexStaticFaced<knowhere::fp16>::ConfigCheck(
index_type,
knowhere::Version::GetCurrentVersion().VersionNumber(),
json,
error_msg);
} else if (dataType == milvus::DataType::VECTOR_SPARSE_FLOAT) {
status = knowhere::CheckConfig<knowhere::fp32>(index_type, knowhere::Version::GetCurrentVersion().VersionNumber(), json, knowhere::PARAM_TYPE::TRAIN, error_msg);
status = knowhere::IndexStaticFaced<knowhere::fp32>::ConfigCheck(
index_type,
knowhere::Version::GetCurrentVersion().VersionNumber(),
json,
error_msg);
} else {
status = knowhere::Status::invalid_args;
}
Expand Down Expand Up @@ -87,4 +111,3 @@ GetIndexFeatures(void* index_key_list, uint64_t* index_feature_list) {
idx++;
}
}

6 changes: 4 additions & 2 deletions internal/core/src/segcore/vector_index_c.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,17 @@ extern "C" {
#include "common/type_c.h"

CStatus
ValidateIndexParams(const char* index_type, enum CDataType data_type, const uint8_t* index_params, const uint64_t length);
ValidateIndexParams(const char* index_type,
enum CDataType data_type,
const uint8_t* index_params,
const uint64_t length);

int
GetIndexListSize();

void
GetIndexFeatures(void* index_key_list, uint64_t* index_feature_list);


#ifdef __cplusplus
}
#endif
3 changes: 1 addition & 2 deletions internal/datacoord/compaction_task_clustering_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ import (
"testing"
"time"

"github.com/milvus-io/milvus/pkg/util/metautil"

"github.com/stretchr/testify/mock"
"github.com/stretchr/testify/suite"
"go.uber.org/atomic"
Expand All @@ -41,6 +39,7 @@ import (
"github.com/milvus-io/milvus/internal/storage"
"github.com/milvus-io/milvus/pkg/common"
"github.com/milvus-io/milvus/pkg/util/merr"
"github.com/milvus-io/milvus/pkg/util/metautil"
)

func TestClusteringCompactionTaskSuite(t *testing.T) {
Expand Down
4 changes: 2 additions & 2 deletions internal/datacoord/import_task.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@
package datacoord

import (
"github.com/milvus-io/milvus/pkg/util/funcutil"
"github.com/milvus-io/milvus/pkg/util/paramtable"
"google.golang.org/protobuf/proto"

"github.com/milvus-io/milvus/internal/proto/datapb"
"github.com/milvus-io/milvus/pkg/util/funcutil"
"github.com/milvus-io/milvus/pkg/util/paramtable"
"github.com/milvus-io/milvus/pkg/util/timerecord"
)

Expand Down
2 changes: 1 addition & 1 deletion internal/datacoord/index_meta.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ import (
"github.com/milvus-io/milvus/internal/metastore"
"github.com/milvus-io/milvus/internal/metastore/model"
"github.com/milvus-io/milvus/internal/proto/indexpb"
"github.com/milvus-io/milvus/internal/util/indexparamcheck"
"github.com/milvus-io/milvus/internal/proto/workerpb"
"github.com/milvus-io/milvus/internal/util/indexparamcheck"
"github.com/milvus-io/milvus/pkg/common"
"github.com/milvus-io/milvus/pkg/log"
"github.com/milvus-io/milvus/pkg/metrics"
Expand Down
1 change: 0 additions & 1 deletion internal/datacoord/meta.go
Original file line number Diff line number Diff line change
Expand Up @@ -1807,7 +1807,6 @@ func (s *segMetricMutation) addNewSeg(state commonpb.SegmentState, level datapb.
}
if _, ok := s.stateChange[level.String()][state.String()]; !ok {
s.stateChange[level.String()][state.String()] = make(map[string]int)

}
s.stateChange[level.String()][state.String()][getSortStatus(isSorted)] += 1

Expand Down
3 changes: 3 additions & 0 deletions internal/util/hookutil/mock_hook.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
//go:build test
// +build test

/*
* Licensed to the LF AI & Data foundation under one
* or more contributor license agreements. See the NOTICE file
Expand Down
2 changes: 1 addition & 1 deletion internal/util/indexparamcheck/bin_flat_checker_test.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package indexparamcheck

import (
"github.com/milvus-io/milvus/pkg/common"
"strconv"
"testing"

"github.com/stretchr/testify/assert"

"github.com/milvus-io/milvus-proto/go-api/v2/schemapb"
"github.com/milvus-io/milvus/pkg/common"
"github.com/milvus-io/milvus/pkg/util/metric"
)

Expand Down
2 changes: 1 addition & 1 deletion internal/util/indexparamcheck/cagra_checker_test.go
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package indexparamcheck

import (
"github.com/milvus-io/milvus-proto/go-api/v2/schemapb"
"strconv"
"testing"

"github.com/stretchr/testify/assert"

"github.com/milvus-io/milvus-proto/go-api/v2/schemapb"
"github.com/milvus-io/milvus/pkg/util/metric"
)

Expand Down
2 changes: 1 addition & 1 deletion internal/util/indexparamcheck/ivf_sq_checker_test.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package indexparamcheck

import (
"github.com/milvus-io/milvus/pkg/common"
"strconv"
"testing"

"github.com/stretchr/testify/assert"

"github.com/milvus-io/milvus-proto/go-api/v2/schemapb"
"github.com/milvus-io/milvus/pkg/common"
"github.com/milvus-io/milvus/pkg/util/metric"
)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package indexparamcheck

import (
"github.com/milvus-io/milvus-proto/go-api/v2/schemapb"
"strconv"
"testing"

"github.com/stretchr/testify/assert"

"github.com/milvus-io/milvus-proto/go-api/v2/schemapb"
"github.com/milvus-io/milvus/pkg/util/metric"
)

Expand Down
3 changes: 2 additions & 1 deletion internal/util/indexparamcheck/scalar_index_checker_test.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package indexparamcheck

import (
"github.com/milvus-io/milvus-proto/go-api/v2/schemapb"
"testing"

"github.com/stretchr/testify/assert"

"github.com/milvus-io/milvus-proto/go-api/v2/schemapb"
)

func TestCheckIndexValid(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion internal/util/indexparamcheck/vector_index_checker.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ func (c vecIndexChecker) CheckTrain(dataType schemapb.DataType, params map[strin

func (c vecIndexChecker) CheckValidDataType(indexType IndexType, field *schemapb.FieldSchema) error {
if !typeutil.IsVectorType(field.GetDataType()) {
return fmt.Errorf("index %s only support vector data type", indexType)
return fmt.Errorf("index %s only supports vector data type", indexType)
}
if !GetVecIndexMgrInstance().IsDataTypeSupport(indexType, field.GetDataType()) {
return fmt.Errorf("index %s do not support data type: %s", indexType, schemapb.DataType_name[int32(field.GetDataType())])
Expand Down
75 changes: 41 additions & 34 deletions pkg/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,8 @@ import (
"strings"

"github.com/cockroachdb/errors"
"github.com/spf13/cast"
"go.uber.org/zap"
"gopkg.in/yaml.v3"

"github.com/milvus-io/milvus/pkg/log"
"github.com/milvus-io/milvus/pkg/util/typeutil"
)

Expand Down Expand Up @@ -62,6 +60,13 @@ func Init(opts ...Option) (*Manager, error) {

var formattedKeys = typeutil.NewConcurrentMap[string, string]()

func lowerKey(key string) string {
if strings.HasPrefix(key, NotFormatPrefix) {
return key
}
return strings.ToLower(key)
}

func formatKey(key string) string {
if strings.HasPrefix(key, NotFormatPrefix) {
return key
Expand All @@ -75,40 +80,42 @@ func formatKey(key string) string {
return result
}

func parseConfig(prefix string, m map[string]interface{}, result map[string]string) {
for k, v := range m {
fullKey := k
if prefix != "" {
fullKey = prefix + "." + k
}
func flattenNode(node *yaml.Node, parentKey string, result map[string]string) {
// The content of the node should contain key-value pairs in a MappingNode
if node.Kind == yaml.MappingNode {
for i := 0; i < len(node.Content); i += 2 {
keyNode := node.Content[i]
valueNode := node.Content[i+1]

switch val := v.(type) {
case map[string]interface{}:
parseConfig(fullKey, val, result)
case []interface{}:
str := ""
for i, item := range val {
itemStr, err := cast.ToStringE(item)
if err != nil {
log.Warn("cast to string failed", zap.Any("item", item))
continue
}
if i == 0 {
str = itemStr
} else {
str = str + "," + itemStr
}
key := keyNode.Value
// Construct the full key with parent hierarchy
fullKey := key
if parentKey != "" {
fullKey = parentKey + "." + key
}
result[strings.ToLower(fullKey)] = str
result[formatKey(fullKey)] = str
default:
str, err := cast.ToStringE(val)
if err != nil {
log.Warn("cast to string failed", zap.Any("val", val))
continue

switch valueNode.Kind {
case yaml.ScalarNode:
// Scalar value, store it as a string
result[lowerKey(fullKey)] = valueNode.Value
result[formatKey(fullKey)] = valueNode.Value
case yaml.MappingNode:
// Nested map, process recursively
flattenNode(valueNode, fullKey, result)
case yaml.SequenceNode:
// List (sequence), process elements
var listStr string
for j, item := range valueNode.Content {
if j > 0 {
listStr += ","
}
if item.Kind == yaml.ScalarNode {
listStr += item.Value
}
}
result[lowerKey(fullKey)] = listStr
result[formatKey(fullKey)] = listStr
}
result[strings.ToLower(fullKey)] = str
result[formatKey(fullKey)] = str
}
}
}
Loading

0 comments on commit f677188

Please sign in to comment.