mirror of https://github.com/milvus-io/milvus.git
test(db): refactor db test
Former-commit-id: c85ed1e09b51f9c883426f7c77da3261232f0745pull/191/head
parent
61854a6c23
commit
21a98c0e02
|
@ -17,22 +17,14 @@ TEST_F(DBTest, DB_TEST) {
|
|||
static const std::string group_name = "test_group";
|
||||
static const int group_dim = 256;
|
||||
|
||||
engine::Options opt;
|
||||
opt.meta.backend_uri = "http://127.0.0.1";
|
||||
opt.meta.path = "/tmp/vecwise_test/db_test";
|
||||
|
||||
engine::DB* db = nullptr;
|
||||
engine::DB::Open(opt, &db);
|
||||
ASSERT_TRUE(db != nullptr);
|
||||
|
||||
engine::meta::GroupSchema group_info;
|
||||
group_info.dimension = group_dim;
|
||||
group_info.group_id = group_name;
|
||||
engine::Status stat = db->add_group(group_info);
|
||||
engine::Status stat = db_->add_group(group_info);
|
||||
|
||||
engine::meta::GroupSchema group_info_get;
|
||||
group_info_get.group_id = group_name;
|
||||
stat = db->get_group(group_info_get);
|
||||
stat = db_->get_group(group_info_get);
|
||||
ASSERT_STATS(stat);
|
||||
ASSERT_EQ(group_info_get.dimension, group_dim);
|
||||
|
||||
|
@ -65,12 +57,12 @@ TEST_F(DBTest, DB_TEST) {
|
|||
|
||||
for (auto j=0; j<15; ++j) {
|
||||
ss.str("");
|
||||
db->count(group_name, count);
|
||||
db_->count(group_name, count);
|
||||
|
||||
ss << "Search " << j << " With Size " << count;
|
||||
|
||||
START_TIMER;
|
||||
stat = db->search(group_name, k, qb, qxb, results);
|
||||
stat = db_->search(group_name, k, qb, qxb, results);
|
||||
STOP_TIMER(ss.str());
|
||||
|
||||
ASSERT_STATS(stat);
|
||||
|
@ -83,9 +75,9 @@ TEST_F(DBTest, DB_TEST) {
|
|||
|
||||
for (auto i=0; i<loop; ++i) {
|
||||
if (i==40) {
|
||||
db->add_vectors(group_name, qb, qxb, target_ids);
|
||||
db_->add_vectors(group_name, qb, qxb, target_ids);
|
||||
} else {
|
||||
db->add_vectors(group_name, nb, xb, vector_ids);
|
||||
db_->add_vectors(group_name, nb, xb, vector_ids);
|
||||
}
|
||||
std::this_thread::sleep_for(std::chrono::microseconds(5));
|
||||
}
|
||||
|
@ -94,40 +86,23 @@ TEST_F(DBTest, DB_TEST) {
|
|||
|
||||
delete [] xb;
|
||||
delete [] qxb;
|
||||
delete db;
|
||||
engine::DB::Open(opt, &db);
|
||||
db->drop_all();
|
||||
delete db;
|
||||
};
|
||||
|
||||
TEST_F(DBTest, SEARCH_TEST) {
|
||||
static const std::string group_name = "test_group";
|
||||
static const int group_dim = 256;
|
||||
|
||||
engine::Options opt;
|
||||
opt.meta.backend_uri = "http://127.0.0.1";
|
||||
opt.meta.path = "/tmp/search_test";
|
||||
opt.index_trigger_size = 100000 * group_dim;
|
||||
opt.memory_sync_interval = 1;
|
||||
opt.merge_trigger_number = 1;
|
||||
|
||||
engine::DB* db = nullptr;
|
||||
engine::DB::Open(opt, &db);
|
||||
ASSERT_TRUE(db != nullptr);
|
||||
|
||||
engine::meta::GroupSchema group_info;
|
||||
group_info.dimension = group_dim;
|
||||
group_info.group_id = group_name;
|
||||
engine::Status stat = db->add_group(group_info);
|
||||
//ASSERT_STATS(stat);
|
||||
engine::Status stat = db_->add_group(group_info);
|
||||
|
||||
engine::meta::GroupSchema group_info_get;
|
||||
group_info_get.group_id = group_name;
|
||||
stat = db->get_group(group_info_get);
|
||||
stat = db_->get_group(group_info_get);
|
||||
ASSERT_STATS(stat);
|
||||
ASSERT_EQ(group_info_get.dimension, group_dim);
|
||||
|
||||
|
||||
// prepare raw data
|
||||
size_t nb = 250000;
|
||||
size_t nq = 10;
|
||||
|
@ -155,30 +130,19 @@ TEST_F(DBTest, SEARCH_TEST) {
|
|||
//std::vector<float> dis_gt(k*nq);
|
||||
std::vector<float> dis(k*nq);
|
||||
|
||||
// prepare ground-truth
|
||||
//faiss::Index* index_gt(faiss::index_factory(group_dim, "IDMap,Flat"));
|
||||
//index_gt->add_with_ids(nb, xb.data(), ids.data());
|
||||
//index_gt->search(nq, xq.data(), 1, dis_gt.data(), nns_gt.data());
|
||||
|
||||
// insert data
|
||||
const int batch_size = 100;
|
||||
for (int j = 0; j < nb / batch_size; ++j) {
|
||||
stat = db->add_vectors(group_name, batch_size, xb.data()+batch_size*j*group_dim, ids);
|
||||
stat = db_->add_vectors(group_name, batch_size, xb.data()+batch_size*j*group_dim, ids);
|
||||
if (j == 200){ sleep(1);}
|
||||
ASSERT_STATS(stat);
|
||||
}
|
||||
|
||||
sleep(3); // wait until build index finish
|
||||
sleep(2); // wait until build index finish
|
||||
|
||||
engine::QueryResults results;
|
||||
stat = db->search(group_name, k, nq, xq.data(), results);
|
||||
stat = db_->search(group_name, k, nq, xq.data(), results);
|
||||
ASSERT_STATS(stat);
|
||||
|
||||
// TODO(linxj): add groundTruth assert
|
||||
|
||||
delete db;
|
||||
|
||||
engine::DB::Open(opt, &db);
|
||||
db->drop_all();
|
||||
delete db;
|
||||
};
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
|
||||
#include <iostream>
|
||||
#include <easylogging++.h>
|
||||
#include <thread>
|
||||
#include <boost/filesystem.hpp>
|
||||
|
||||
#include "utils.h"
|
||||
#include "db/Factories.h"
|
||||
|
@ -29,6 +31,16 @@ void DBTest::InitLog() {
|
|||
|
||||
void DBTest::SetUp() {
|
||||
InitLog();
|
||||
auto options = engine::OptionsFactory::Build();
|
||||
options.meta.path = "/tmp/vecwise_test";
|
||||
engine::DB::Open(options, &db_);
|
||||
}
|
||||
|
||||
void DBTest::TearDown() {
|
||||
delete db_;
|
||||
db_ = nullptr;
|
||||
auto options = engine::OptionsFactory::Build();
|
||||
boost::filesystem::remove_all("/tmp/vecwise_test");
|
||||
}
|
||||
|
||||
void MetaTest::SetUp() {
|
||||
|
|
|
@ -34,8 +34,11 @@ void ASSERT_STATS(zilliz::vecwise::engine::Status& stat);
|
|||
|
||||
class DBTest : public ::testing::Test {
|
||||
protected:
|
||||
zilliz::vecwise::engine::DB* db_;
|
||||
|
||||
void InitLog();
|
||||
virtual void SetUp() override;
|
||||
virtual void TearDown() override;
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue