Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
milvus
提交
b1f6e7e8
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,发现更多精彩内容 >>
提交
b1f6e7e8
编写于
8月 09, 2019
作者:
G
groot
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
handle exception in merge file
Former-commit-id: 687e64645af47e42f030a456a0c7c9921748198e
上级
5fedc4a2
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
19 addition
and
1 deletion
+19
-1
cpp/src/db/DBImpl.cpp
cpp/src/db/DBImpl.cpp
+19
-1
未找到文件。
cpp/src/db/DBImpl.cpp
浏览文件 @
b1f6e7e8
...
...
@@ -363,6 +363,7 @@ Status DBImpl::MergeFiles(const std::string& table_id, const meta::DateT& date,
const
meta
::
TableFilesSchema
&
files
)
{
ENGINE_LOG_DEBUG
<<
"Merge files for table "
<<
table_id
;
//step 1: create table file
meta
::
TableFileSchema
table_file
;
table_file
.
table_id_
=
table_id
;
table_file
.
date_
=
date
;
...
...
@@ -374,6 +375,7 @@ Status DBImpl::MergeFiles(const std::string& table_id, const meta::DateT& date,
return
status
;
}
//step 2: merge files
ExecutionEnginePtr
index
=
EngineFactory
::
Build
(
table_file
.
dimension_
,
table_file
.
location_
,
(
EngineType
)
table_file
.
engine_type_
);
...
...
@@ -397,9 +399,25 @@ Status DBImpl::MergeFiles(const std::string& table_id, const meta::DateT& date,
if
(
index_size
>=
options_
.
index_trigger_size
)
break
;
}
//step 3: serialize to disk
try
{
index
->
Serialize
();
}
catch
(
std
::
exception
&
ex
)
{
//typical error: out of disk space or permition denied
std
::
string
msg
=
"Serialize merged index encounter exception"
+
std
::
string
(
ex
.
what
());
ENGINE_LOG_ERROR
<<
msg
;
table_file
.
file_type_
=
meta
::
TableFileSchema
::
TO_DELETE
;
status
=
meta_ptr_
->
UpdateTableFile
(
table_file
);
ENGINE_LOG_DEBUG
<<
"Failed to update file to index, mark file: "
<<
table_file
.
file_id_
<<
" to to_delete"
;
std
::
cout
<<
"ERROR: failed to persist merged index file: "
<<
table_file
.
location_
<<
", possible out of disk space"
<<
std
::
endl
;
return
Status
::
Error
(
msg
);
}
//step 4: update table files state
if
(
index_size
>=
options_
.
index_trigger_size
)
{
table_file
.
file_type_
=
meta
::
TableFileSchema
::
TO_INDEX
;
}
else
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录