Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
milvus
提交
303d600e
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,发现更多精彩内容 >>
提交
303d600e
编写于
7月 09, 2019
作者:
P
peng.xu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(db): add build index api in db
Former-commit-id: dbd6da51e3c5fd666d7062798c0483c0f7fa7ffb
上级
06002a84
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
54 addition
and
0 deletion
+54
-0
cpp/src/db/DB.h
cpp/src/db/DB.h
+2
-0
cpp/src/db/DBImpl.cpp
cpp/src/db/DBImpl.cpp
+25
-0
cpp/src/db/DBImpl.h
cpp/src/db/DBImpl.h
+6
-0
cpp/src/db/DBMetaImpl.cpp
cpp/src/db/DBMetaImpl.cpp
+17
-0
cpp/src/db/DBMetaImpl.h
cpp/src/db/DBMetaImpl.h
+2
-0
cpp/src/db/Meta.h
cpp/src/db/Meta.h
+2
-0
未找到文件。
cpp/src/db/DB.h
浏览文件 @
303d600e
...
...
@@ -44,6 +44,8 @@ public:
virtual
Status
Size
(
uint64_t
&
result
)
=
0
;
virtual
Status
BuildIndex
(
const
std
::
string
&
table_id
)
=
0
;
virtual
Status
DropAll
()
=
0
;
DB
()
=
default
;
...
...
cpp/src/db/DBImpl.cpp
浏览文件 @
303d600e
...
...
@@ -430,6 +430,11 @@ void DBImpl::StartBuildIndexTask() {
}
}
Status
DBImpl
::
BuildIndex
(
const
std
::
string
&
table_id
)
{
meta_ptr_
->
UpdateTableFilesToIndex
(
table_id
);
return
BuildIndexByTable
(
table_id
);
}
Status
DBImpl
::
BuildIndex
(
const
meta
::
TableFileSchema
&
file
)
{
ExecutionEnginePtr
to_index
=
EngineFactory
::
Build
(
file
.
dimension_
,
file
.
location_
,
(
EngineType
)
file
.
engine_type_
);
if
(
to_index
==
nullptr
)
{
...
...
@@ -491,7 +496,27 @@ Status DBImpl::BuildIndex(const meta::TableFileSchema& file) {
return
Status
::
OK
();
}
Status
DBImpl
::
BuildIndexByTable
(
const
std
::
string
&
table_id
)
{
std
::
unique_ptr
<
std
::
mutex
>
lock
(
build_index_mutex_
);
meta
::
TableFilesSchema
to_index_files
;
meta_ptr_
->
FilesToIndex
(
to_index_files
);
Status
status
;
for
(
auto
&
file
:
to_index_files
)
{
status
=
BuildIndex
(
file
);
if
(
!
status
.
ok
())
{
ENGINE_LOG_ERROR
<<
"Building index for "
<<
file
.
id_
<<
" failed: "
<<
status
.
ToString
();
return
status
;
}
ENGINE_LOG_DEBUG
<<
"Sync building index for "
<<
file
.
id_
<<
" passed"
;
}
return
status
;
}
void
DBImpl
::
BackgroundBuildIndex
()
{
std
::
unique_ptr
<
std
::
mutex
>
lock
(
build_index_mutex_
);
meta
::
TableFilesSchema
to_index_files
;
meta_ptr_
->
FilesToIndex
(
to_index_files
);
Status
status
;
...
...
cpp/src/db/DBImpl.h
浏览文件 @
303d600e
...
...
@@ -82,6 +82,8 @@ class DBImpl : public DB {
Status
Size
(
uint64_t
&
result
)
override
;
Status
BuildIndex
(
const
std
::
string
&
table_id
)
override
;
~
DBImpl
()
override
;
private:
...
...
@@ -110,6 +112,8 @@ class DBImpl : public DB {
void
StartBuildIndexTask
();
void
BackgroundBuildIndex
();
Status
BuildIndexByTable
(
const
std
::
string
&
table_id
)
{
Status
BuildIndex
(
const
meta
::
TableFileSchema
&
);
...
...
@@ -132,6 +136,8 @@ class DBImpl : public DB {
server
::
ThreadPool
index_thread_pool_
;
std
::
list
<
std
::
future
<
void
>>
index_thread_results_
;
std
::
mutex
build_index_mutex_
;
};
// DBImpl
...
...
cpp/src/db/DBMetaImpl.cpp
浏览文件 @
303d600e
...
...
@@ -791,6 +791,23 @@ Status DBMetaImpl::UpdateTableFile(TableFileSchema &file_schema) {
return
Status
::
OK
();
}
Status
DBMetaImpl
::
UpdateTableFilesToIndex
(
const
std
::
string
&
table_id
)
{
try
{
ConnectorPtr
->
update_all
(
set
(
c
(
&
TableFileSchema
::
file_type_
)
=
(
int
)
TableFileSchema
::
TO_INDEX
),
where
(
c
(
&
TableFileSchema
::
table_id_
)
==
table_id
and
c
(
&
TableFileSchema
::
file_type_
)
==
(
int
)
TableFileSchema
::
RAW
));
}
catch
(
std
::
exception
&
e
)
{
return
HandleException
(
"Encounter exception when update table files to to_index"
,
e
);
}
return
Status
::
OK
();
}
Status
DBMetaImpl
::
UpdateTableFiles
(
TableFilesSchema
&
files
)
{
try
{
MetricCollector
metric
;
...
...
cpp/src/db/DBMetaImpl.h
浏览文件 @
303d600e
...
...
@@ -35,6 +35,8 @@ public:
const
std
::
vector
<
size_t
>&
ids
,
TableFilesSchema
&
table_files
)
override
;
virtual
Status
UpdateTableFilesToIndex
(
const
std
::
string
&
table_id
)
override
;
virtual
Status
UpdateTableFile
(
TableFileSchema
&
file_schema
)
override
;
virtual
Status
UpdateTableFiles
(
TableFilesSchema
&
files
)
override
;
...
...
cpp/src/db/Meta.h
浏览文件 @
303d600e
...
...
@@ -39,6 +39,8 @@ public:
const
std
::
vector
<
size_t
>&
ids
,
TableFilesSchema
&
table_files
)
=
0
;
virtual
Status
UpdateTableFilesToIndex
(
const
std
::
string
&
table_id
)
=
0
;
virtual
Status
UpdateTableFile
(
TableFileSchema
&
file_schema
)
=
0
;
virtual
Status
UpdateTableFiles
(
TableFilesSchema
&
files
)
=
0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录