RequestTask.h 6.0 KB
Newer Older
G
groot 已提交
1 2 3 4 5 6 7
/*******************************************************************************
 * Copyright 上海赜睿信息科技有限公司(Zilliz) - All Rights Reserved
 * Unauthorized copying of this file, via any medium is strictly prohibited.
 * Proprietary and confidential.
 ******************************************************************************/
#pragma once

G
groot 已提交
8
#include "RequestScheduler.h"
G
groot 已提交
9 10 11
#include "utils/Error.h"
#include "db/Types.h"

G
groot 已提交
12
#include "milvus_types.h"
G
groot 已提交
13 14 15 16 17

#include <condition_variable>
#include <memory>

namespace zilliz {
J
jinhai 已提交
18
namespace milvus {
G
groot 已提交
19 20 21 22 23
namespace server {

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class CreateTableTask : public BaseTask {
public:
G
groot 已提交
24
    static BaseTaskPtr Create(const ::milvus::thrift::TableSchema& schema);
G
groot 已提交
25 26

protected:
G
groot 已提交
27
    CreateTableTask(const ::milvus::thrift::TableSchema& schema);
G
groot 已提交
28 29 30 31

    ServerError OnExecute() override;

private:
G
groot 已提交
32
    const ::milvus::thrift::TableSchema& schema_;
G
groot 已提交
33 34
};

G
groot 已提交
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class HasTableTask : public BaseTask {
public:
    static BaseTaskPtr Create(const std::string& table_name, bool& has_table);

protected:
    HasTableTask(const std::string& table_name, bool& has_table);

    ServerError OnExecute() override;


private:
    std::string table_name_;
    bool& has_table_;
};

G
groot 已提交
51 52 53
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class DescribeTableTask : public BaseTask {
public:
G
groot 已提交
54
    static BaseTaskPtr Create(const std::string& table_name, ::milvus::thrift::TableSchema& schema);
G
groot 已提交
55 56

protected:
G
groot 已提交
57
    DescribeTableTask(const std::string& table_name, ::milvus::thrift::TableSchema& schema);
G
groot 已提交
58 59 60 61 62 63

    ServerError OnExecute() override;


private:
    std::string table_name_;
G
groot 已提交
64
    ::milvus::thrift::TableSchema& schema_;
G
groot 已提交
65 66 67 68 69 70 71 72 73 74 75 76 77
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class DeleteTableTask : public BaseTask {
public:
    static BaseTaskPtr Create(const std::string& table_name);

protected:
    DeleteTableTask(const std::string& table_name);

    ServerError OnExecute() override;


P
peng.xu 已提交
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
private:
    std::string table_name_;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class BuildIndexTask : public BaseTask {
public:
    static BaseTaskPtr Create(const std::string& table_name);

protected:
    BuildIndexTask(const std::string& table_name);

    ServerError OnExecute() override;


G
groot 已提交
93 94 95 96
private:
    std::string table_name_;
};

G
groot 已提交
97 98 99 100 101 102 103 104 105 106 107 108 109 110
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class ShowTablesTask : public BaseTask {
public:
    static BaseTaskPtr Create(std::vector<std::string>& tables);

protected:
    ShowTablesTask(std::vector<std::string>& tables);

    ServerError OnExecute() override;

private:
    std::vector<std::string>& tables_;
};

G
groot 已提交
111 112 113 114
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class AddVectorTask : public BaseTask {
public:
    static BaseTaskPtr Create(const std::string& table_name,
G
groot 已提交
115
                              const std::vector<::milvus::thrift::RowRecord>& record_array,
G
groot 已提交
116 117 118 119
                              std::vector<int64_t>& record_ids_);

protected:
    AddVectorTask(const std::string& table_name,
G
groot 已提交
120
                        const std::vector<::milvus::thrift::RowRecord>& record_array,
G
groot 已提交
121 122 123 124 125 126
                        std::vector<int64_t>& record_ids_);

    ServerError OnExecute() override;

private:
    std::string table_name_;
G
groot 已提交
127
    const std::vector<::milvus::thrift::RowRecord>& record_array_;
G
groot 已提交
128 129 130 131 132 133 134
    std::vector<int64_t>& record_ids_;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class SearchVectorTask : public BaseTask {
public:
    static BaseTaskPtr Create(const std::string& table_name,
135
                              const std::vector<std::string>& file_id_array,
G
groot 已提交
136 137
                              const std::vector<::milvus::thrift::RowRecord> & query_record_array,
                              const std::vector<::milvus::thrift::Range> & query_range_array,
G
groot 已提交
138
                              const int64_t top_k,
G
groot 已提交
139
                              std::vector<::milvus::thrift::TopKQueryResult>& result_array);
G
groot 已提交
140 141 142

protected:
    SearchVectorTask(const std::string& table_name,
143
                     const std::vector<std::string>& file_id_array,
G
groot 已提交
144 145
                     const std::vector<::milvus::thrift::RowRecord> & query_record_array,
                     const std::vector<::milvus::thrift::Range> & query_range_array,
G
groot 已提交
146
                     const int64_t top_k,
G
groot 已提交
147
                     std::vector<::milvus::thrift::TopKQueryResult>& result_array);
G
groot 已提交
148 149 150 151 152

    ServerError OnExecute() override;

private:
    std::string table_name_;
153
    std::vector<std::string> file_id_array_;
G
groot 已提交
154
    int64_t top_k_;
G
groot 已提交
155 156 157
    const std::vector<::milvus::thrift::RowRecord>& record_array_;
    const std::vector<::milvus::thrift::Range>& range_array_;
    std::vector<::milvus::thrift::TopKQueryResult>& result_array_;
G
groot 已提交
158 159
};

G
groot 已提交
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class GetTableRowCountTask : public BaseTask {
public:
    static BaseTaskPtr Create(const std::string& table_name, int64_t& row_count);

protected:
    GetTableRowCountTask(const std::string& table_name, int64_t& row_count);

    ServerError OnExecute() override;

private:
    std::string table_name_;
    int64_t& row_count_;
};

G
groot 已提交
175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class PingTask : public BaseTask {
public:
    static BaseTaskPtr Create(const std::string& cmd, std::string& result);

protected:
    PingTask(const std::string& cmd, std::string& result);

    ServerError OnExecute() override;

private:
    std::string cmd_;
    std::string& result_;
};

G
groot 已提交
190 191
}
}
P
peng.xu 已提交
192
}