mirror of https://github.com/milvus-io/milvus.git
* #4488 get_entity_by_id() performance is poor in 0.11.0 Signed-off-by: yhmo <yihua.mo@zilliz.com> * add changelog Signed-off-by: yhmo <yihua.mo@zilliz.com> Signed-off-by: shengjun.li <shengjun.li@zilliz.com>pull/4533/head^2
parent
4466ebd4ad
commit
7fd76c4072
|
@ -40,6 +40,7 @@ Please mark all changes in change log and use the issue from GitHub
|
|||
- \#4302 Setting DSL fields is invalid in restful api, fields are not returned
|
||||
- \#4329 C++ sdk sdk_binary needs to update
|
||||
- \#4418 Fix search when there are multiple vector fields
|
||||
- \#4488 get_entity_by_id() performance is poor in 0.11.0
|
||||
|
||||
## Feature
|
||||
- \#4163 Update C++ sdk search interface
|
||||
|
|
|
@ -87,13 +87,8 @@ BlockFormat::Read(const storage::FSHandlerPtr& fs_ptr, const std::string& file_p
|
|||
|
||||
fs_ptr->reader_ptr_->Seekg(offset + MAGIC_SIZE + HEADER_SIZE);
|
||||
fs_ptr->reader_ptr_->Read(raw->data_.data(), num_bytes);
|
||||
|
||||
uint32_t record;
|
||||
fs_ptr->reader_ptr_->Read(&record, SUM_SIZE);
|
||||
fs_ptr->reader_ptr_->Close();
|
||||
|
||||
CHECK_SUM_VALID(header.data(), reinterpret_cast<const char*>(raw->data_.data()), num_bytes, record);
|
||||
|
||||
return Status::OK();
|
||||
}
|
||||
|
||||
|
@ -116,19 +111,9 @@ BlockFormat::Read(const storage::FSHandlerPtr& fs_ptr, const std::string& file_p
|
|||
HeaderMap map = TransformHeaderData(header);
|
||||
size_t total_num_bytes = stol(map.at("size"));
|
||||
|
||||
std::vector<char> data;
|
||||
data.resize(total_num_bytes);
|
||||
|
||||
fs_ptr->reader_ptr_->Read(data.data(), total_num_bytes);
|
||||
uint32_t record;
|
||||
fs_ptr->reader_ptr_->Read(&record, SUM_SIZE);
|
||||
fs_ptr->reader_ptr_->Close();
|
||||
|
||||
CHECK_SUM_VALID(header.data(), reinterpret_cast<const char*>(data.data()), total_num_bytes, record);
|
||||
|
||||
int64_t total_bytes = 0;
|
||||
for (auto& range : read_ranges) {
|
||||
if (range.offset_ > total_num_bytes) {
|
||||
if (range.offset_ + range.num_bytes_ > total_num_bytes) {
|
||||
return Status(SERVER_INVALID_ARGUMENT, "Invalid argument to read: " + file_path);
|
||||
}
|
||||
total_bytes += range.num_bytes_;
|
||||
|
@ -139,10 +124,13 @@ BlockFormat::Read(const storage::FSHandlerPtr& fs_ptr, const std::string& file_p
|
|||
int64_t poz = 0;
|
||||
for (auto& range : read_ranges) {
|
||||
int64_t offset = range.offset_;
|
||||
memcpy(raw->data_.data() + poz, data.data() + offset, range.num_bytes_);
|
||||
fs_ptr->reader_ptr_->Seekg(offset + MAGIC_SIZE + HEADER_SIZE);
|
||||
fs_ptr->reader_ptr_->Read(raw->data_.data() + poz, range.num_bytes_);
|
||||
poz += range.num_bytes_;
|
||||
}
|
||||
|
||||
fs_ptr->reader_ptr_->Close();
|
||||
|
||||
return Status::OK();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue