MemTable.h 941 字节
Newer Older
Z
zhiru 已提交
1 2 3 4 5 6
#pragma once

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

Z
zhiru 已提交
7
#include <mutex>
Z
zhiru 已提交
8

Z
update  
zhiru 已提交
9

Z
zhiru 已提交
10 11 12 13 14 15
namespace zilliz {
namespace milvus {
namespace engine {

class MemTable {

Z
update  
zhiru 已提交
16
 public:
Z
zhiru 已提交
17 18

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

Z
update  
zhiru 已提交
22
    MemTable(const std::string &table_id, const std::shared_ptr<meta::Meta> &meta, const Options &options);
Z
zhiru 已提交
23

Z
update  
zhiru 已提交
24
    Status Add(VectorSource::Ptr &source);
Z
zhiru 已提交
25

Z
update  
zhiru 已提交
26
    void GetCurrentMemTableFile(MemTableFile::Ptr &mem_table_file);
Z
zhiru 已提交
27

Z
zhiru 已提交
28
    size_t GetTableFileCount();
Z
zhiru 已提交
29

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

Z
zhiru 已提交
32 33
    bool Empty();

Z
update  
zhiru 已提交
34
    const std::string &GetTableId() const;
Z
zhiru 已提交
35 36

    size_t GetCurrentMem();
Z
zhiru 已提交
37

Z
update  
zhiru 已提交
38
 private:
Z
zhiru 已提交
39 40
    const std::string table_id_;

Z
zhiru 已提交
41
    MemTableFileList mem_table_file_list_;
Z
zhiru 已提交
42 43 44

    MetaPtr meta_;

Z
zhiru 已提交
45 46
    Options options_;

Z
zhiru 已提交
47 48
    std::mutex mutex_;

Z
zhiru 已提交
49 50 51 52 53
}; //MemTable

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