Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
milvus
提交
ad5f5df3
milvus
项目概览
BaiXuePrincess
/
milvus
与 Fork 源项目一致
从无法访问的项目Fork
通知
7
Star
4
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
milvus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ad5f5df3
编写于
7月 09, 2019
作者:
Z
zhiru
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update
Former-commit-id: ab57b8ba38244233aaeb3bab669660c4cf6af827
上级
f6a1cc3c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
80 addition
and
80 deletion
+80
-80
cpp/unittest/db/mem_test.cpp
cpp/unittest/db/mem_test.cpp
+80
-80
未找到文件。
cpp/unittest/db/mem_test.cpp
浏览文件 @
ad5f5df3
...
...
@@ -289,84 +289,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<float> xb;
//
BuildVectors(nb, xb);
//
//
int64_t qb = 5;
//
std::vector<float> 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
<
float
>
xb
;
BuildVectors
(
nb
,
xb
);
int64_t
qb
=
5
;
std
::
vector
<
float
>
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
);
};
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录