From 8a1af93518b086536f8f38afff45253df8507b44 Mon Sep 17 00:00:00 2001 From: zhiru Date: Tue, 9 Jul 2019 21:13:55 +0800 Subject: [PATCH] update Former-commit-id: 3bda5a0b65c0ddf4bce76685e708ea90c951ad8f --- cpp/unittest/db/mem_test.cpp | 160 +++++++++++++++++------------------ 1 file changed, 80 insertions(+), 80 deletions(-) diff --git a/cpp/unittest/db/mem_test.cpp b/cpp/unittest/db/mem_test.cpp index f0e79d4d..860a6653 100644 --- a/cpp/unittest/db/mem_test.cpp +++ b/cpp/unittest/db/mem_test.cpp @@ -288,84 +288,84 @@ TEST_F(NewMemManagerTest, INSERT_TEST) { } -//TEST_F(NewMemManagerTest, CONCURRENT_INSERT_SEARCH_TEST) { -// -// auto options = engine::OptionsFactory::Build(); -// options.meta.path = "/tmp/milvus_test"; -// options.meta.backend_uri = "sqlite://:@:/"; -// auto db_ = engine::DBFactory::Build(options); -// -// engine::meta::TableSchema table_info = BuildTableSchema(); -// engine::Status stat = db_->CreateTable(table_info); -// -// engine::meta::TableSchema table_info_get; -// table_info_get.table_id_ = TABLE_NAME; -// stat = db_->DescribeTable(table_info_get); -// ASSERT_STATS(stat); -// ASSERT_EQ(table_info_get.dimension_, TABLE_DIM); -// -// engine::IDNumbers vector_ids; -// engine::IDNumbers target_ids; -// -// int64_t nb = 409600; -// std::vector xb; -// BuildVectors(nb, xb); -// -// int64_t qb = 5; -// std::vector qxb; -// BuildVectors(qb, qxb); -// -// std::thread search([&]() { -// engine::QueryResults results; -// int k = 10; -// std::this_thread::sleep_for(std::chrono::seconds(5)); -// -// INIT_TIMER; -// std::stringstream ss; -// uint64_t count = 0; -// uint64_t prev_count = 0; -// -// for (auto j = 0; j < 10; ++j) { -// ss.str(""); -// db_->Size(count); -// prev_count = count; -// -// START_TIMER; -// stat = db_->Query(TABLE_NAME, k, qb, qxb.data(), results); -// ss << "Search " << j << " With Size " << count / engine::meta::M << " M"; -// STOP_TIMER(ss.str()); -// -// ASSERT_STATS(stat); -// for (auto k = 0; k < qb; ++k) { -// ASSERT_EQ(results[k][0].first, target_ids[k]); -// ss.str(""); -// ss << "Result [" << k << "]:"; -// for (auto result : results[k]) { -// ss << result.first << " "; -// } -// /* LOG(DEBUG) << ss.str(); */ -// } -// ASSERT_TRUE(count >= prev_count); -// std::this_thread::sleep_for(std::chrono::seconds(2)); -// } -// }); -// -// int loop = 20; -// -// for (auto i = 0; i < loop; ++i) { -// if (i == 0) { -// db_->InsertVectors(TABLE_NAME, qb, qxb.data(), target_ids); -// ASSERT_EQ(target_ids.size(), qb); -// } else { -// db_->InsertVectors(TABLE_NAME, nb, xb.data(), vector_ids); -// } -// std::this_thread::sleep_for(std::chrono::microseconds(1)); -// } -// -// search.join(); -// -// delete db_; -// boost::filesystem::remove_all(options.meta.path); -// -//}; +TEST_F(NewMemManagerTest, CONCURRENT_INSERT_SEARCH_TEST) { + + auto options = engine::OptionsFactory::Build(); + options.meta.path = "/tmp/milvus_test"; + options.meta.backend_uri = "sqlite://:@:/"; + auto db_ = engine::DBFactory::Build(options); + + engine::meta::TableSchema table_info = BuildTableSchema(); + engine::Status stat = db_->CreateTable(table_info); + + engine::meta::TableSchema table_info_get; + table_info_get.table_id_ = TABLE_NAME; + stat = db_->DescribeTable(table_info_get); + ASSERT_STATS(stat); + ASSERT_EQ(table_info_get.dimension_, TABLE_DIM); + + engine::IDNumbers vector_ids; + engine::IDNumbers target_ids; + + int64_t nb = 409600; + std::vector xb; + BuildVectors(nb, xb); + + int64_t qb = 5; + std::vector qxb; + BuildVectors(qb, qxb); + + std::thread search([&]() { + engine::QueryResults results; + int k = 10; + std::this_thread::sleep_for(std::chrono::seconds(2)); + + INIT_TIMER; + std::stringstream ss; + uint64_t count = 0; + uint64_t prev_count = 0; + + for (auto j = 0; j < 10; ++j) { + ss.str(""); + db_->Size(count); + prev_count = count; + + START_TIMER; + stat = db_->Query(TABLE_NAME, k, qb, qxb.data(), results); + ss << "Search " << j << " With Size " << count / engine::meta::M << " M"; + STOP_TIMER(ss.str()); + + ASSERT_STATS(stat); + for (auto k = 0; k < qb; ++k) { + ASSERT_EQ(results[k][0].first, target_ids[k]); + ss.str(""); + ss << "Result [" << k << "]:"; + for (auto result : results[k]) { + ss << result.first << " "; + } + /* LOG(DEBUG) << ss.str(); */ + } + ASSERT_TRUE(count >= prev_count); + std::this_thread::sleep_for(std::chrono::seconds(1)); + } + }); + + int loop = 20; + + for (auto i = 0; i < loop; ++i) { + if (i == 0) { + db_->InsertVectors(TABLE_NAME, qb, qxb.data(), target_ids); + ASSERT_EQ(target_ids.size(), qb); + } else { + db_->InsertVectors(TABLE_NAME, nb, xb.data(), vector_ids); + } + std::this_thread::sleep_for(std::chrono::microseconds(1)); + } + + search.join(); + + delete db_; + boost::filesystem::remove_all(options.meta.path); + +}; -- GitLab