diff --git a/CHANGELOG.md b/CHANGELOG.md index f5f9725825..98fa8a7f97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ Please mark all change in change log and use the ticket from JIRA. # Milvus 0.5.2 (TODO) ## Bug +- \#194 - Search faild: message="Table file doesn't exist" ## Feature diff --git a/core/src/db/meta/MySQLMetaImpl.cpp b/core/src/db/meta/MySQLMetaImpl.cpp index 44594636ad..4eafd6b9ec 100644 --- a/core/src/db/meta/MySQLMetaImpl.cpp +++ b/core/src/db/meta/MySQLMetaImpl.cpp @@ -173,6 +173,7 @@ MySQLMetaImpl::~MySQLMetaImpl() { Status MySQLMetaImpl::NextTableId(std::string& table_id) { + std::lock_guard lock(genid_mutex_); // avoid duplicated id std::stringstream ss; SimpleIDGenerator g; ss << g.GetNextIDNumber(); @@ -182,6 +183,7 @@ MySQLMetaImpl::NextTableId(std::string& table_id) { Status MySQLMetaImpl::NextFileId(std::string& file_id) { + std::lock_guard lock(genid_mutex_); // avoid duplicated id std::stringstream ss; SimpleIDGenerator g; ss << g.GetNextIDNumber(); diff --git a/core/src/db/meta/MySQLMetaImpl.h b/core/src/db/meta/MySQLMetaImpl.h index 02bc6e1752..bb7fb5b59f 100644 --- a/core/src/db/meta/MySQLMetaImpl.h +++ b/core/src/db/meta/MySQLMetaImpl.h @@ -136,6 +136,7 @@ class MySQLMetaImpl : public Meta { std::shared_ptr mysql_connection_pool_; bool safe_grab_ = false; + std::mutex genid_mutex_; // std::mutex connectionMutex_; }; // DBMetaImpl diff --git a/core/src/db/meta/SqliteMetaImpl.cpp b/core/src/db/meta/SqliteMetaImpl.cpp index 3fed2a81d4..0454123acd 100644 --- a/core/src/db/meta/SqliteMetaImpl.cpp +++ b/core/src/db/meta/SqliteMetaImpl.cpp @@ -97,6 +97,7 @@ SqliteMetaImpl::~SqliteMetaImpl() { Status SqliteMetaImpl::NextTableId(std::string &table_id) { + std::lock_guard lock(genid_mutex_); // avoid duplicated id std::stringstream ss; SimpleIDGenerator g; ss << g.GetNextIDNumber(); @@ -106,6 +107,7 @@ SqliteMetaImpl::NextTableId(std::string &table_id) { Status SqliteMetaImpl::NextFileId(std::string &file_id) { + std::lock_guard lock(genid_mutex_); // avoid duplicated id std::stringstream ss; SimpleIDGenerator g; ss << g.GetNextIDNumber(); diff --git a/core/src/db/meta/SqliteMetaImpl.h b/core/src/db/meta/SqliteMetaImpl.h index c8b99b358a..0fc3f3c4ba 100644 --- a/core/src/db/meta/SqliteMetaImpl.h +++ b/core/src/db/meta/SqliteMetaImpl.h @@ -132,6 +132,7 @@ class SqliteMetaImpl : public Meta { private: const DBMetaOptions options_; std::mutex meta_mutex_; + std::mutex genid_mutex_; }; // DBMetaImpl } // namespace meta