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

G
groot 已提交
7 8
#include "RequestHandler.h"
#include "RequestTask.h"
G
groot 已提交
9 10 11
#include "utils/TimeRecorder.h"

namespace zilliz {
J
jinhai 已提交
12
namespace milvus {
G
groot 已提交
13 14
namespace server {

G
groot 已提交
15
using namespace ::milvus;
G
groot 已提交
16

G
groot 已提交
17
RequestHandler::RequestHandler() {
G
groot 已提交
18 19 20 21

}

void
G
groot 已提交
22
RequestHandler::CreateTable(const thrift::TableSchema &param) {
G
groot 已提交
23
    BaseTaskPtr task_ptr = CreateTableTask::Create(param);
G
groot 已提交
24
    RequestScheduler::ExecTask(task_ptr);
G
groot 已提交
25 26
}

G
groot 已提交
27 28 29 30 31 32 33 34 35
bool
RequestHandler::HasTable(const std::string &table_name) {
    bool has_table = false;
    BaseTaskPtr task_ptr = HasTableTask::Create(table_name, has_table);
    RequestScheduler::ExecTask(task_ptr);

    return has_table;
}

G
groot 已提交
36
void
G
groot 已提交
37
RequestHandler::DeleteTable(const std::string &table_name) {
G
groot 已提交
38
    BaseTaskPtr task_ptr = DeleteTableTask::Create(table_name);
G
groot 已提交
39
    RequestScheduler::ExecTask(task_ptr);
G
groot 已提交
40 41
}

P
peng.xu 已提交
42 43 44 45 46 47
void
RequestHandler::BuildIndex(const std::string &table_name) {
    BaseTaskPtr task_ptr = BuildIndexTask::Create(table_name);
    RequestScheduler::ExecTask(task_ptr);
}

G
groot 已提交
48
void
G
groot 已提交
49
RequestHandler::AddVector(std::vector<int64_t> &_return,
50 51
                          const std::string &table_name,
                          const std::vector<thrift::RowRecord> &record_array) {
G
groot 已提交
52
    BaseTaskPtr task_ptr = AddVectorTask::Create(table_name, record_array, _return);
G
groot 已提交
53
    RequestScheduler::ExecTask(task_ptr);
G
groot 已提交
54 55 56
}

void
57 58 59 60 61
RequestHandler::SearchVector(std::vector<thrift::TopKQueryResult> &_return,
                             const std::string &table_name,
                             const std::vector<thrift::RowRecord> &query_record_array,
                             const std::vector<thrift::Range> &query_range_array,
                             const int64_t topk) {
Z
update  
zhiru 已提交
62
//    SERVER_LOG_DEBUG << "Entering RequestHandler::SearchVector";
63
    BaseTaskPtr task_ptr = SearchVectorTask1::Create(table_name, std::vector<std::string>(), query_record_array,
64 65 66 67
            query_range_array, topk, _return);
    RequestScheduler::ExecTask(task_ptr);
}

68 69 70 71 72 73 74 75 76 77 78
void
RequestHandler::SearchVector2(std::vector<thrift::TopKQueryBinResult> & _return,
        const std::string& table_name,
        const std::vector<thrift::RowRecord> & query_record_array,
        const std::vector<thrift::Range> & query_range_array,
        const int64_t topk) {
    BaseTaskPtr task_ptr = SearchVectorTask2::Create(table_name, std::vector<std::string>(), query_record_array,
                                                    query_range_array, topk, _return);
    RequestScheduler::ExecTask(task_ptr);
}

79 80 81 82 83 84 85
void
RequestHandler::SearchVectorInFiles(std::vector<::milvus::thrift::TopKQueryResult> &_return,
                                    const std::string& table_name,
                                    const std::vector<std::string> &file_id_array,
                                    const std::vector<::milvus::thrift::RowRecord> &query_record_array,
                                    const std::vector<::milvus::thrift::Range> &query_range_array,
                                    const int64_t topk) {
Z
update  
zhiru 已提交
86
//    SERVER_LOG_DEBUG << "Entering RequestHandler::SearchVectorInFiles. file_id_array size = " << std::to_string(file_id_array.size());
87
    BaseTaskPtr task_ptr = SearchVectorTask1::Create(table_name, file_id_array, query_record_array,
88
            query_range_array, topk, _return);
G
groot 已提交
89
    RequestScheduler::ExecTask(task_ptr);
G
groot 已提交
90 91 92
}

void
G
groot 已提交
93
RequestHandler::DescribeTable(thrift::TableSchema &_return, const std::string &table_name) {
G
groot 已提交
94
    BaseTaskPtr task_ptr = DescribeTableTask::Create(table_name, _return);
G
groot 已提交
95
    RequestScheduler::ExecTask(task_ptr);
G
groot 已提交
96 97
}

G
groot 已提交
98
int64_t
G
groot 已提交
99
RequestHandler::GetTableRowCount(const std::string& table_name) {
G
groot 已提交
100 101 102
    int64_t row_count = 0;
    {
        BaseTaskPtr task_ptr = GetTableRowCountTask::Create(table_name, row_count);
G
groot 已提交
103
        RequestScheduler::ExecTask(task_ptr);
G
groot 已提交
104 105 106 107 108 109
        task_ptr->WaitToFinish();
    }

    return row_count;
}

G
groot 已提交
110
void
G
groot 已提交
111
RequestHandler::ShowTables(std::vector<std::string> &_return) {
G
groot 已提交
112
    BaseTaskPtr task_ptr = ShowTablesTask::Create(_return);
G
groot 已提交
113
    RequestScheduler::ExecTask(task_ptr);
G
groot 已提交
114 115 116
}

void
G
groot 已提交
117
RequestHandler::Ping(std::string& _return, const std::string& cmd) {
G
groot 已提交
118
    BaseTaskPtr task_ptr = PingTask::Create(cmd, _return);
G
groot 已提交
119
    RequestScheduler::ExecTask(task_ptr);
G
groot 已提交
120 121 122 123 124
}

}
}
}