Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
milvus
milvus
提交
4428d566
M
milvus
项目概览
milvus
/
milvus
11 个月 前同步成功
通知
261
Star
22476
Fork
2472
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
milvus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4428d566
编写于
5月 07, 2019
作者:
X
Xu Peng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor(db): trait for engine and dbimpl
Former-commit-id: c42d9f4d7168b4d8e374ddb5ed0499ea1394a306
上级
b36a5247
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
77 addition
and
17 deletion
+77
-17
cpp/src/db/DB.cpp
cpp/src/db/DB.cpp
+29
-0
cpp/src/db/DBImpl.cpp
cpp/src/db/DBImpl.cpp
+4
-14
cpp/src/db/DBImpl.h
cpp/src/db/DBImpl.h
+5
-0
cpp/src/db/Factories.cpp
cpp/src/db/Factories.cpp
+31
-0
cpp/src/db/Factories.h
cpp/src/db/Factories.h
+7
-1
cpp/unittest/db/utils.cpp
cpp/unittest/db/utils.cpp
+1
-2
未找到文件。
cpp/src/db/DB.cpp
0 → 100644
浏览文件 @
4428d566
/*******************************************************************************
* Copyright 上海赜睿信息科技有限公司(Zilliz) - All Rights Reserved
* Unauthorized copying of this file, via any medium is strictly prohibited.
* Proprietary and confidential.
******************************************************************************/
#include "DBImpl.h"
#include "DBMetaImpl.h"
#include "Env.h"
/* #include "FaissExecutionEngine.h" */
/* #include "Traits.h" */
#include "Factories.h"
namespace
zilliz
{
namespace
vecwise
{
namespace
engine
{
DB
::~
DB
()
{}
void
DB
::
Open
(
const
Options
&
options
,
DB
**
dbptr
)
{
*
dbptr
=
nullptr
;
/* *dbptr = new DBImpl<FaissExecutionEngine<IVFIndexTrait>>(options); */
*
dbptr
=
DBFactory
::
Build
(
options
);
return
;
}
}
// namespace engine
}
// namespace vecwise
}
// namespace zilliz
cpp/src/db/DBImpl.cpp
浏览文件 @
4428d566
...
...
@@ -3,6 +3,8 @@
* Unauthorized copying of this file, via any medium is strictly prohibited.
* Proprietary and confidential.
******************************************************************************/
#ifndef DBIMPL_CPP__
#define DBIMPL_CPP__
#include <assert.h>
#include <chrono>
...
...
@@ -16,8 +18,6 @@
#include "DBImpl.h"
#include "DBMetaImpl.h"
#include "Env.h"
#include "FaissExecutionEngine.h"
#include "Traits.h"
namespace
zilliz
{
namespace
vecwise
{
...
...
@@ -408,18 +408,8 @@ DBImpl<EngineT>::~DBImpl() {
_env
->
Stop
();
}
/*
* DB
*/
DB
::~
DB
()
{}
void
DB
::
Open
(
const
Options
&
options
,
DB
**
dbptr
)
{
*
dbptr
=
nullptr
;
*
dbptr
=
new
DBImpl
<
FaissExecutionEngine
<
IVFIndexTrait
>>
(
options
);
return
;
}
}
// namespace engine
}
// namespace vecwise
}
// namespace zilliz
#endif
cpp/src/db/DBImpl.h
浏览文件 @
4428d566
...
...
@@ -12,6 +12,8 @@
#include "DB.h"
#include "MemManager.h"
#include "Types.h"
#include "FaissExecutionEngine.h"
#include "Traits.h"
namespace
zilliz
{
namespace
vecwise
{
...
...
@@ -90,6 +92,9 @@ private:
};
// DBImpl
}
// namespace engine
}
// namespace vecwise
}
// namespace zilliz
#include "DBImpl.cpp"
cpp/src/db/Factories.cpp
浏览文件 @
4428d566
...
...
@@ -6,8 +6,15 @@
#include <stdlib.h>
#include <time.h>
#include <sstream>
#include <iostream>
#include <vector>
#include <assert.h>
#include <easylogging++.h>
#include "Factories.h"
#include "DBImpl.h"
#include "FaissExecutionEngine.h"
#include "Traits.h"
namespace
zilliz
{
...
...
@@ -39,6 +46,30 @@ std::shared_ptr<meta::DBMetaImpl> DBMetaImplFactory::Build() {
return
std
::
shared_ptr
<
meta
::
DBMetaImpl
>
(
new
meta
::
DBMetaImpl
(
options
));
}
std
::
shared_ptr
<
DB
>
DBFactory
::
Build
(
const
std
::
string
&
db_type
)
{
auto
options
=
OptionsFactory
::
Build
();
auto
db
=
DBFactory
::
Build
(
options
,
db_type
);
return
std
::
shared_ptr
<
DB
>
(
db
);
}
DB
*
DBFactory
::
Build
(
const
Options
&
options
,
const
std
::
string
&
db_type
)
{
std
::
stringstream
ss
(
db_type
);
std
::
string
token
;
std
::
vector
<
std
::
string
>
tokens
;
while
(
std
::
getline
(
ss
,
token
,
','
))
{
tokens
.
push_back
(
token
);
}
assert
(
tokens
.
size
()
==
2
);
assert
(
tokens
[
0
]
==
"Faiss"
);
if
(
tokens
[
1
]
==
"IVF"
)
{
return
new
DBImpl
<
FaissExecutionEngine
<
IVFIndexTrait
>>
(
options
);
}
else
if
(
tokens
[
1
]
==
"IDMap"
)
{
return
new
DBImpl
<
FaissExecutionEngine
<
IDMapIndexTrait
>>
(
options
);
}
return
nullptr
;
}
}
// namespace engine
}
// namespace vecwise
}
// namespace zilliz
cpp/src/db/Factories.h
浏览文件 @
4428d566
...
...
@@ -8,8 +8,9 @@
#include <string>
#include <memory>
#include "
db/
DB.h"
#include "DB.h"
#include "DBMetaImpl.h"
#include "Options.h"
namespace
zilliz
{
namespace
vecwise
{
...
...
@@ -27,6 +28,11 @@ struct DBMetaImplFactory {
static
std
::
shared_ptr
<
meta
::
DBMetaImpl
>
Build
();
};
struct
DBFactory
{
static
std
::
shared_ptr
<
DB
>
Build
(
const
std
::
string
&
db_type
=
"Faiss,IVF"
);
static
DB
*
Build
(
const
Options
&
,
const
std
::
string
&
db_type
=
"Faiss,IVF"
);
};
}
// namespace engine
}
// namespace vecwise
}
// namespace zilliz
cpp/unittest/db/utils.cpp
浏览文件 @
4428d566
...
...
@@ -33,12 +33,11 @@ void DBTest::SetUp() {
InitLog
();
auto
options
=
engine
::
OptionsFactory
::
Build
();
options
.
meta
.
path
=
"/tmp/vecwise_test"
;
engine
::
DB
::
Open
(
options
,
&
db_
);
db_
=
engine
::
DBFactory
::
Build
(
options
,
"Faiss,IDMap"
);
}
void
DBTest
::
TearDown
()
{
delete
db_
;
db_
=
nullptr
;
auto
options
=
engine
::
OptionsFactory
::
Build
();
boost
::
filesystem
::
remove_all
(
"/tmp/vecwise_test"
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录