diff --git a/cpp/src/db/DB.h b/cpp/src/db/DB.h index 83bd3770dd1a1dd04bc6044109a2983d8b3729d9..9fc8e6a1f54c04e840fc0ad74b0c302fce851eb5 100644 --- a/cpp/src/db/DB.h +++ b/cpp/src/db/DB.h @@ -17,10 +17,8 @@ class DB { public: static DB* Open(const Options& options); - virtual Status add_group(const GroupOptions& options_, - const std::string& group_id_, - meta::GroupSchema& group_info_) = 0; - virtual Status get_group(const std::string& group_id_, meta::GroupSchema& group_info_) = 0; + virtual Status add_group(meta::GroupSchema& group_info_) = 0; + virtual Status get_group(meta::GroupSchema& group_info_) = 0; virtual Status has_group(const std::string& group_id_, bool& has_or_not_) = 0; virtual Status get_group_files(const std::string& group_id_, const int date_delta_, diff --git a/cpp/src/db/DBImpl.cpp b/cpp/src/db/DBImpl.cpp index 2194e2f3728e7ecfd7ba6e0518def7cad9d17993..8149f1139ee3b2ef53d8e877dcb89f28c755e211 100644 --- a/cpp/src/db/DBImpl.cpp +++ b/cpp/src/db/DBImpl.cpp @@ -26,17 +26,12 @@ DBImpl::DBImpl(const Options& options) start_timer_task(_options.memory_sync_interval); } -Status DBImpl::add_group(const GroupOptions& options, - const std::string& group_id, - meta::GroupSchema& group_info) { - assert((!options.has_id) || - (options.has_id && ("" != group_id))); - - return _pMeta->add_group(options, group_id, group_info); +Status DBImpl::add_group(meta::GroupSchema& group_info) { + return _pMeta->add_group(group_info); } -Status DBImpl::get_group(const std::string& group_id_, meta::GroupSchema& group_info_) { - return _pMeta->get_group(group_id_, group_info_); +Status DBImpl::get_group(meta::GroupSchema& group_info) { + return _pMeta->get_group(group_info); } Status DBImpl::has_group(const std::string& group_id_, bool& has_or_not_) { diff --git a/cpp/src/db/DBImpl.h b/cpp/src/db/DBImpl.h index 5ef90506834d68ad368a9f6beb8ec61cfdd684ae..d678fc71d0c9605bbf367853ea91638ea4e25773 100644 --- a/cpp/src/db/DBImpl.h +++ b/cpp/src/db/DBImpl.h @@ -22,10 +22,8 @@ class DBImpl : public DB { public: DBImpl(const Options& options); - virtual Status add_group(const GroupOptions& options_, - const std::string& group_id_, - meta::GroupSchema& group_info_) override; - virtual Status get_group(const std::string& group_id_, meta::GroupSchema& group_info_) override; + virtual Status add_group(meta::GroupSchema& group_info) override; + virtual Status get_group(meta::GroupSchema& group_info) override; virtual Status has_group(const std::string& group_id_, bool& has_or_not_) override; virtual Status get_group_files(const std::string& group_id_, diff --git a/cpp/src/db/DBMetaImpl.cpp b/cpp/src/db/DBMetaImpl.cpp index c85f4cd37be008dbe6f8e25ee8baa22fff7e2037..5d68e5283fb9a4c032211c68b2b9bd629a304c16 100644 --- a/cpp/src/db/DBMetaImpl.cpp +++ b/cpp/src/db/DBMetaImpl.cpp @@ -52,25 +52,26 @@ Status DBMetaImpl::initialize() { return Status::OK(); } -Status DBMetaImpl::add_group(const GroupOptions& options_, - const std::string& group_id_, - GroupSchema& group_info_) { - - group_info_.dimension = options_.dimension; - group_info_.group_id = group_id_; - group_info_.files_cnt = 0; - group_info_.id = -1; +Status DBMetaImpl::add_group(GroupSchema& group_info) { + if (group_info.group_id == "") { + std::stringstream ss; + SimpleIDGenerator g; + ss << g.getNextIDNumber(); + group_info.group_id = ss.str(); + } + group_info.files_cnt = 0; + group_info.id = -1; try { - auto id = ConnectorPtr->insert(group_info_); + auto id = ConnectorPtr->insert(group_info); std::cout << "id=" << id << std::endl; - group_info_.id = id; + group_info.id = id; } catch(std::system_error& e) { - return Status::GroupError("Add Group " + group_id_ + " Error"); + return Status::GroupError("Add Group " + group_info.group_id + " Error"); } return Status::OK(); } -Status DBMetaImpl::get_group(const std::string& group_id_, GroupSchema& group_info_) { +Status DBMetaImpl::get_group(GroupSchema& group_info_) { return Status::OK(); } diff --git a/cpp/src/db/DBMetaImpl.h b/cpp/src/db/DBMetaImpl.h index 3574f8080249507250b95cb2d73b17771b80b87a..2989e91de3dfa8bd9ecb89937e05acc2fabd4abd 100644 --- a/cpp/src/db/DBMetaImpl.h +++ b/cpp/src/db/DBMetaImpl.h @@ -15,10 +15,8 @@ class DBMetaImpl : public Meta { public: DBMetaImpl(const DBMetaOptions& options_); - virtual Status add_group(const GroupOptions& options_, - const std::string& group_id_, - GroupSchema& group_info_) override; - virtual Status get_group(const std::string& group_id_, GroupSchema& group_info_) override; + virtual Status add_group(GroupSchema& group_info) override; + virtual Status get_group(GroupSchema& group_info_) override; virtual Status has_group(const std::string& group_id_, bool& has_or_not_) override; virtual Status add_group_file(const std::string& group_id, diff --git a/cpp/src/db/LocalMetaImpl.cpp b/cpp/src/db/LocalMetaImpl.cpp index 422798c3ea0fe667c016afe96819a3932c48e3ca..03004d604aa71ed0795aeca6989a7c3f37eba50e 100644 --- a/cpp/src/db/LocalMetaImpl.cpp +++ b/cpp/src/db/LocalMetaImpl.cpp @@ -85,17 +85,15 @@ Status LocalMetaImpl::initialize() { return Status::OK(); } -Status LocalMetaImpl::add_group(const GroupOptions& options, - const std::string& group_id, - GroupSchema& group_info) { +Status LocalMetaImpl::add_group(GroupSchema& group_info) { std::string real_gid; size_t id = SimpleIDGenerator().getNextIDNumber(); - if (group_id == "") { + if (group_info.group_id == "") { std::stringstream ss; ss << id; real_gid = ss.str(); } else { - real_gid = group_id; + real_gid = group_info.group_id; } bool group_exist; @@ -111,7 +109,6 @@ Status LocalMetaImpl::add_group(const GroupOptions& options, group_info.files_cnt = 0; group_info.id = 0; group_info.location = GetGroupPath(real_gid); - group_info.dimension = options.dimension; boost::property_tree::ptree out; out.put("files_cnt", group_info.files_cnt); @@ -121,14 +118,14 @@ Status LocalMetaImpl::add_group(const GroupOptions& options, return Status::OK(); } -Status LocalMetaImpl::get_group(const std::string& group_id, GroupSchema& group_info) { +Status LocalMetaImpl::get_group(GroupSchema& group_info) { bool group_exist; - has_group(group_id, group_exist); + has_group(group_info.group_id, group_exist); if (!group_exist) { - return Status::NotFound("Group " + group_id + " Not Found"); + return Status::NotFound("Group " + group_info.group_id + " Not Found"); } - return GetGroupMetaInfo(group_id, group_info); + return GetGroupMetaInfo(group_info.group_id, group_info); } Status LocalMetaImpl::has_group(const std::string& group_id, bool& has_or_not) { @@ -147,7 +144,7 @@ Status LocalMetaImpl::add_group_file(const std::string& group_id, GroupFileSchema& group_file_info, GroupFileSchema::FILE_TYPE file_type) { GroupSchema group_info; - auto status = get_group(group_id, group_info); + auto status = get_group(group_info); if (!status.ok()) { return status; } diff --git a/cpp/src/db/LocalMetaImpl.h b/cpp/src/db/LocalMetaImpl.h index 35678b9e1e2ff0e233be6486cda729a22b598415..9089ff9d256ad15141cabdca650f08ab7e066512 100644 --- a/cpp/src/db/LocalMetaImpl.h +++ b/cpp/src/db/LocalMetaImpl.h @@ -14,10 +14,8 @@ public: const size_t INDEX_TRIGGER_SIZE = 1024*1024*500; LocalMetaImpl(const DBMetaOptions& options_); - virtual Status add_group(const GroupOptions& options_, - const std::string& group_id_, - GroupSchema& group_info_) override; - virtual Status get_group(const std::string& group_id_, GroupSchema& group_info_) override; + virtual Status add_group(GroupSchema& group_info_) override; + virtual Status get_group(GroupSchema& group_info_) override; virtual Status has_group(const std::string& group_id_, bool& has_or_not_) override; virtual Status add_group_file(const std::string& group_id, diff --git a/cpp/src/db/Meta.h b/cpp/src/db/Meta.h index 54a3241d9a49b8a5246eb98500d3878c710b1b1e..d885c9fce445521248829043bbe7c146a588d2c9 100644 --- a/cpp/src/db/Meta.h +++ b/cpp/src/db/Meta.h @@ -48,10 +48,8 @@ typedef std::map DatePartionedGroupFilesSchema; class Meta { public: - virtual Status add_group(const GroupOptions& options_, - const std::string& group_id_, - GroupSchema& group_info_) = 0; - virtual Status get_group(const std::string& group_id_, GroupSchema& group_info_) = 0; + virtual Status add_group(GroupSchema& group_info) = 0; + virtual Status get_group(GroupSchema& group_info) = 0; virtual Status has_group(const std::string& group_id_, bool& has_or_not_) = 0; virtual Status add_group_file(const std::string& group_id_, diff --git a/cpp/src/server/VecServiceHandler.cpp b/cpp/src/server/VecServiceHandler.cpp index 5d4779a67462dba8c4906eac88dd728b819e6216..9c19a8e3c99f3aa489f7eb81715a9dcee050bda2 100644 --- a/cpp/src/server/VecServiceHandler.cpp +++ b/cpp/src/server/VecServiceHandler.cpp @@ -43,11 +43,10 @@ VecServiceHandler::add_group(const VecGroup &group) { << ", group.index_type = " << group.index_type; try { - engine::GroupOptions gopt; - gopt.dimension = (size_t)group.dimension; - gopt.has_id = !group.id.empty(); engine::meta::GroupSchema group_info; - engine::Status stat = DB()->add_group(gopt, group.id, group_info); + group_info.dimension = (size_t)group.dimension; + group_info.group_id = group.id; + engine::Status stat = DB()->add_group(group_info); if(!stat.ok()) { SERVER_LOG_ERROR << "Engine failed: " << stat.ToString(); } @@ -65,7 +64,8 @@ VecServiceHandler::get_group(VecGroup &_return, const std::string &group_id) { try { engine::meta::GroupSchema group_info; - engine::Status stat = DB()->get_group(group_id, group_info); + group_info.group_id = group_id; + engine::Status stat = DB()->get_group(group_info); if(!stat.ok()) { SERVER_LOG_ERROR << "Engine failed: " << stat.ToString(); } else {