MemTable.h 817 字节
Newer Older
Z
zhiru 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#pragma once

#include "Status.h"
#include "MemTableFile.h"
#include "VectorSource.h"

#include <stack>

namespace zilliz {
namespace milvus {
namespace engine {

class MemTable {

public:

    using Ptr = std::shared_ptr<MemTable>;
Z
zhiru 已提交
18
    using MemTableFileList = std::vector<MemTableFile::Ptr>;
Z
zhiru 已提交
19 20
    using MetaPtr = meta::Meta::Ptr;

Z
zhiru 已提交
21
    MemTable(const std::string& table_id, const std::shared_ptr<meta::Meta>& meta, const Options& options);
Z
zhiru 已提交
22 23 24 25 26 27 28

    Status Add(VectorSource::Ptr& source);

    void GetCurrentMemTableFile(MemTableFile::Ptr& mem_table_file);

    size_t GetStackSize();

Z
zhiru 已提交
29 30
    Status Serialize();

Z
zhiru 已提交
31 32 33
private:
    const std::string table_id_;

Z
zhiru 已提交
34
    MemTableFileList mem_table_file_list_;
Z
zhiru 已提交
35 36 37

    MetaPtr meta_;

Z
zhiru 已提交
38 39
    Options options_;

Z
zhiru 已提交
40 41 42 43 44
}; //MemTable

} // namespace engine
} // namespace milvus
} // namespace zilliz