LocalMetaImpl.h 2.9 KB
Newer Older
X
Xu Peng 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13
#ifndef VECENGINE_DB_META_IMPL_H_
#define VECENGINE_DB_META_IMPL_H_

#include "Meta.h"
#include "Options.h"

namespace zilliz {
namespace vecwise {
namespace engine {
namespace meta {

class LocalMetaImpl : public Meta {
public:
X
Xu Peng 已提交
14
    const size_t INDEX_TRIGGER_SIZE = 1024*1024*500;
X
Xu Peng 已提交
15 16
    LocalMetaImpl(const DBMetaOptions& options_);

17 18
    virtual Status add_group(GroupSchema& group_info_) override;
    virtual Status get_group(GroupSchema& group_info_) override;
X
Xu Peng 已提交
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
    virtual Status has_group(const std::string& group_id_, bool& has_or_not_) override;

    virtual Status add_group_file(const std::string& group_id,
                                  DateT date,
                                  GroupFileSchema& group_file_info,
                                  GroupFileSchema::FILE_TYPE file_type=GroupFileSchema::RAW) override;

    virtual Status add_group_file(const std::string& group_id_,
                                  GroupFileSchema& group_file_info_,
                                  GroupFileSchema::FILE_TYPE file_type=GroupFileSchema::RAW) override;

    virtual Status has_group_file(const std::string& group_id_,
                                  const std::string& file_id_,
                                  bool& has_or_not_) override;
    virtual Status get_group_file(const std::string& group_id_,
                                  const std::string& file_id_,
                                  GroupFileSchema& group_file_info_) override;
    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;

    virtual Status update_files(const GroupFilesSchema& files) override;

    virtual Status files_to_merge(const std::string& group_id,
            DatePartionedGroupFilesSchema& files) override;

    virtual Status files_to_index(GroupFilesSchema&) override;

private:

X
Xu Peng 已提交
51 52 53 54 55 56
    Status GetGroupMetaInfoByPath(const std::string& path, GroupSchema& group_info);
    std::string GetGroupMetaPathByGroupPath(const std::string& group_path);
    Status GetGroupMetaInfo(const std::string& group_id, GroupSchema& group_info);
    std::string GetNextGroupFileLocationByPartition(const std::string& group_id, DateT& date,
        GroupFileSchema::FILE_TYPE file_type);
    std::string GetGroupDatePartitionPath(const std::string& group_id, DateT& date);
X
Xu Peng 已提交
57 58 59 60
    std::string GetGroupPath(const std::string& group_id);
    std::string GetGroupMetaPath(const std::string& group_id);

    Status CreateGroupMeta(const GroupSchema& group_schema);
X
Xu Peng 已提交
61
    long GetFileSize(const std::string& filename);
X
Xu Peng 已提交
62 63 64 65 66 67 68 69 70 71 72 73 74

    Status initialize();

    const DBMetaOptions _options;

}; // LocalMetaImpl

} // namespace meta
} // namespace engine
} // namespace vecwise
} // namespace zilliz

#endif // VECENGINE_DB_META_IMPL_H_