提交 d123bf20 编写于 作者: J jinhai

Merge branch 'branch-0.5.0' into 'branch-0.5.0'

MS-640 Cache object size calculate incorrect

See merge request megasearch/milvus!693

Former-commit-id: c90ec36775a1e5d9d4ed4d46c527bd4a093c1413
......@@ -14,6 +14,7 @@ Please mark all change in change log and use the ticket from JIRA.
- MS-622 - Delete vectors should be failed if date range is invalid
- MS-620 - Get table row counts display wrong error code
- MS-637 - out of memory when load too many tasks
- MS-640 - Cache object size calculate incorrect
## Improvement
- MS-552 - Add and change the easylogging library
......
......@@ -37,9 +37,17 @@ namespace engine {
int64_t
VecIndex::Size() {
if (size_ != 0) {
return size_;
}
return Count() * Dimension() * sizeof(float);
}
void
VecIndex::set_size(int64_t size) {
size_ = size;
}
struct FileIOReader {
std::fstream fs;
std::string name;
......@@ -159,12 +167,13 @@ GetVecIndexFactory(const IndexType& type, const Config& cfg) {
}
VecIndexPtr
LoadVecIndex(const IndexType& index_type, const knowhere::BinarySet& index_binary) {
LoadVecIndex(const IndexType& index_type, const knowhere::BinarySet& index_binary, int64_t size) {
auto index = GetVecIndexFactory(index_type);
if (index == nullptr)
return nullptr;
// else
index->Load(index_binary);
index->set_size(size);
return index;
}
......@@ -210,7 +219,7 @@ read_index(const std::string& location) {
delete[] meta;
}
return LoadVecIndex(current_type, load_data_list);
return LoadVecIndex(current_type, load_data_list, length);
}
Status
......
......@@ -87,6 +87,9 @@ class VecIndex : public cache::DataObj {
int64_t
Size() override;
void
set_size(int64_t size);
virtual knowhere::BinarySet
Serialize() = 0;
......@@ -115,6 +118,8 @@ class VecIndex : public cache::DataObj {
return Status::OK();
}
////////////////
private:
int64_t size_ = 0;
};
extern Status
......@@ -127,7 +132,7 @@ extern VecIndexPtr
GetVecIndexFactory(const IndexType& type, const Config& cfg = Config());
extern VecIndexPtr
LoadVecIndex(const IndexType& index_type, const knowhere::BinarySet& index_binary);
LoadVecIndex(const IndexType& index_type, const knowhere::BinarySet& index_binary, int64_t size);
extern IndexType
ConvertToCpuIndexType(const IndexType& type);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册