Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#2642 Create index failed caused by server crashed. #2701

Merged
merged 4 commits into from
Jul 2, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,14 @@ Please mark all change in change log and use the issue from GitHub

## Bug
- \#2487 Enlarge timeout value for creating collection
- \#2585 IVF_PQ on GPU with using metric_type IP
- \#2557 Fix random crash of INSERT_DUPLICATE_ID case
- \#2578 Result count doesn't match target vectors count
- \#2557 fix random crash of INSERT_DUPLICATE_ID case
- \#2598 fix Milvus docker image report illegal instruction
- \#2585 IVF_PQ on GPU with using metric_type IP
- \#2598 Fix Milvus docker image report illegal instruction
- \#2617 Fix HNSW and RNSG index files size
- \#2637 Suit the range of HNSW parameters
- \#2649 search parameter of annoy has conflict with document
- \#2642 Create index failed and server crashed
- \#2649 Search parameter of annoy has conflict with document

## Feature

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,22 @@ BinaryIDMAP::QueryById(const DatasetPtr& dataset_ptr, const Config& config) {
}
#endif

int64_t
BinaryIDMAP::Count() {
if (!index_) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

server crash is caused by "index_" not initialized ?
why ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No reason for the problem was found, but it would have prevented the server from crashing. @cydrain

KNOWHERE_THROW_MSG("index not initialize");
}
return index_->ntotal;
}

int64_t
BinaryIDMAP::Dim() {
if (!index_) {
KNOWHERE_THROW_MSG("index not initialize");
}
return index_->d;
}

void
BinaryIDMAP::Add(const DatasetPtr& dataset_ptr, const Config& config) {
if (!index_) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,10 @@ class BinaryIDMAP : public VecIndex, public FaissBaseBinaryIndex {
#endif

int64_t
Count() override {
return index_->ntotal;
}
Count() override;

int64_t
Dim() override {
return index_->d;
}
Dim() override;

int64_t
IndexSize() override {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,22 @@ BinaryIVF::QueryById(const DatasetPtr& dataset_ptr, const Config& config) {
}
#endif

int64_t
BinaryIVF::Count() {
if (!index_) {
KNOWHERE_THROW_MSG("index not initialize");
}
return index_->ntotal;
}

int64_t
BinaryIVF::Dim() {
if (!index_) {
KNOWHERE_THROW_MSG("index not initialize");
}
return index_->d;
}

void
BinaryIVF::Train(const DatasetPtr& dataset_ptr, const Config& config) {
GETTENSORWITHIDS(dataset_ptr)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,14 +68,10 @@ class BinaryIVF : public VecIndex, public FaissBaseBinaryIndex {
#endif

int64_t
Count() override {
return index_->ntotal;
}
Count() override;

int64_t
Dim() override {
return index_->d;
}
Dim() override;

#if 0
DatasetPtr
Expand Down
16 changes: 16 additions & 0 deletions core/src/index/knowhere/knowhere/index/vector_index/IndexIDMAP.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,22 @@ IDMAP::QueryById(const DatasetPtr& dataset_ptr, const Config& config) {
}
#endif

int64_t
IDMAP::Count() {
if (!index_) {
KNOWHERE_THROW_MSG("index not initialize");
}
return index_->ntotal;
}

int64_t
IDMAP::Dim() {
if (!index_) {
KNOWHERE_THROW_MSG("index not initialize");
}
return index_->d;
}

VecIndexPtr
IDMAP::CopyCpuToGpu(const int64_t device_id, const Config& config) {
#ifdef MILVUS_GPU_VERSION
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,14 +54,10 @@ class IDMAP : public VecIndex, public FaissBaseIndex {
#endif

int64_t
Count() override {
return index_->ntotal;
}
Count() override;

int64_t
Dim() override {
return index_->d;
}
Dim() override;

int64_t
IndexSize() override {
Expand Down
16 changes: 16 additions & 0 deletions core/src/index/knowhere/knowhere/index/vector_index/IndexIVF.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,22 @@ IVF::GetVectorById(const DatasetPtr& dataset_ptr, const Config& config) {
}
#endif

int64_t
IVF::Count() {
if (!index_) {
KNOWHERE_THROW_MSG("index not initialize");
}
return index_->ntotal;
}

int64_t
IVF::Dim() {
if (!index_) {
KNOWHERE_THROW_MSG("index not initialize");
}
return index_->d;
}

void
IVF::Seal() {
if (!index_ || !index_->is_trained) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,14 +59,10 @@ class IVF : public VecIndex, public FaissBaseIndex {
#endif

int64_t
Count() override {
return index_->ntotal;
}
Count() override;

int64_t
Dim() override {
return index_->d;
}
Dim() override;

#if 0
DatasetPtr
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,11 +149,17 @@ NSG::Train(const DatasetPtr& dataset_ptr, const Config& config) {

int64_t
NSG::Count() {
if (!index_) {
KNOWHERE_THROW_MSG("index not initialize");
}
return index_->ntotal;
}

int64_t
NSG::Dim() {
if (!index_) {
KNOWHERE_THROW_MSG("index not initialize");
}
return index_->dimension;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,11 +200,17 @@ CPUSPTAGRNG::Query(const DatasetPtr& dataset_ptr, const Config& config) {

int64_t
CPUSPTAGRNG::Count() {
if (!index_ptr_) {
KNOWHERE_THROW_MSG("index not initialize");
}
return index_ptr_->GetNumSamples();
}

int64_t
CPUSPTAGRNG::Dim() {
if (!index_ptr_) {
KNOWHERE_THROW_MSG("index not initialize");
}
return index_ptr_->GetFeatureDim();
}

Expand Down