diff --git a/cpp/src/db/db.h b/cpp/src/db/db.h index 60323d3909e88cb94465789f8f3563b403a37791..525a661e1eb801cac085121fa6b146286686d385 100644 --- a/cpp/src/db/db.h +++ b/cpp/src/db/db.h @@ -21,17 +21,8 @@ public: GroupSchema& group_info_) = 0; virtual Status get_group(const std::string& group_id_, 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_, - GroupFileSchema& group_file_info_) = 0; - virtual Status has_group_file(const std::string& group_id_, - const std::string& file_id_, - bool& has_or_not_) = 0; - virtual Status get_group_file(const std::string& group_id_, - const std::string& file_id_, - GroupFileSchema& group_file_info_) = 0; - virtual Status get_group_files(const std::string& group_id_, + const int date_delta_, GroupFilesSchema& group_files_info_) = 0; DB() = default; diff --git a/cpp/src/db/db_impl.cpp b/cpp/src/db/db_impl.cpp index 3fdbdf01e0753e5e99eb423f4c72bacc97895531..332942073cbc1f1b9d05a0df7c3b0a36ed83bbe3 100644 --- a/cpp/src/db/db_impl.cpp +++ b/cpp/src/db/db_impl.cpp @@ -8,15 +8,32 @@ DBImpl::DBImpl(const Options& options_, const std::string& name_) _env(options_.env), _options(options_), _bg_work_finish_signal(_mutex), - _bg_compaction_scheduled(false) { + _bg_compaction_scheduled(false), + _pMeta(new DBMetaImpl(*(_options.pMetaOptions))) { } Status DBImpl::add_group(const GroupOptions& options_, const std::string& group_id_, - std::string& gid_) { + GroupSchema& group_info_) { assert((!options_.has_id) || (options_.has_id && ("" != group_id_))); + return _pMeta->add_group(options_, group_id, group_info_); +} + +Status DBImpl::get_group(const std::string& group_id_, GroupSchema& group_info_) { + return _pMeta->get_group(group_id_, group_info_); +} + +Status DBImpl::has_group(const std::string& group_id_, bool& has_or_not_) { + return _pMeta->has_group(group_id_, has_or_not_); +} + +Status DBImpl::get_group_files(const std::string& group_id_, + const int date_delta_, + GroupFilesSchema& group_files_info_) { + return _pMeta->get_group_files(group_id_, date_delta_, group_file_info_); + } void DBImpl::try_schedule_compaction() { diff --git a/cpp/src/db/db_impl.h b/cpp/src/db/db_impl.h index b0de407d6bee7ea24025649888df295cf2c4fb8e..f93a14e798792128142d49e3a6033b5e6ee749ae 100644 --- a/cpp/src/db/db_impl.h +++ b/cpp/src/db/db_impl.h @@ -19,7 +19,13 @@ public: virtual Status add_group(GroupOptions options_, const std::string& group_id_, - std::string& gid_) override; + GroupSchema& group_info_) override; + virtual Status get_group(const std::string& group_id_, 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_, + const int date_delta_, + GroupFilesSchema& group_files_info_) override; void try_schedule_compaction(); @@ -43,6 +49,7 @@ private: Status _bg_error; MemManager _memMgr; + std::shared_ptr _pMeta; }; // DBImpl diff --git a/cpp/src/db/db_meta.h b/cpp/src/db/db_meta.h index 10868c44f1a109633a63ce3cc2c9bc116bf19589..0570c44eba56aa676a43e36ae6d28c896ca67d05 100644 --- a/cpp/src/db/db_meta.h +++ b/cpp/src/db/db_meta.h @@ -50,6 +50,7 @@ public: virtual Status update_group_file(const GroupFileSchema& group_file_) = 0; virtual Status get_group_files(const std::string& group_id_, + const int date_delta_, GroupFilesSchema& group_files_info_) = 0; }; // MetaData diff --git a/cpp/src/db/db_meta_impl.cpp b/cpp/src/db/db_meta_impl.cpp index 6eace00eb1be4616438f7b4dba72779aa77527e7..61562378f9a46bfc8eeb3db77e8c5ed7906be845 100644 --- a/cpp/src/db/db_meta_impl.cpp +++ b/cpp/src/db/db_meta_impl.cpp @@ -52,6 +52,7 @@ Status DBMetaImpl::get_group_file(const std::string& group_id_, } Status DBMetaImpl::get_group_files(const std::string& group_id_, + const int date_delta_, GroupFilesSchema& group_files_info_) { // PXU TODO return Status.OK(); diff --git a/cpp/src/db/db_meta_impl.h b/cpp/src/db/db_meta_impl.h index b0745ec93572340847348e1e609e4e2aebd3bb5a..690fadf92d8f8b75dc55594376ae993d34228dcf 100644 --- a/cpp/src/db/db_meta_impl.h +++ b/cpp/src/db/db_meta_impl.h @@ -29,6 +29,7 @@ public: virtual Status update_group_file(const GroupFileSchema& group_file_) override; virtual Status get_group_files(const std::string& group_id_, + const int date_delta_, GroupFilesSchema& group_files_info_) override; private: diff --git a/cpp/src/db/options.h b/cpp/src/db/options.h index 283c1905fcfae80bbce02f5df8ca1c67ab9ca16f..7da3e3ce8be3ee870434ce3e4d2d949c9178ebbe 100644 --- a/cpp/src/db/options.h +++ b/cpp/src/db/options.h @@ -2,15 +2,19 @@ #define VECENGINE_OPTIONS_H_ #include +#include namespace zilliz { namespace vecwise { namespace engine { +class MetaOptions; + struct Options { uint16_t memory_sync_interval = 10; uint16_t raw_file_merge_trigger_number = 100; size_t raw_to_index_trigger_size = 100000; + std::shared_ptr pMetaOptions; }; // Options