Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
milvus
提交
956f774c
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,发现更多精彩内容 >>
提交
956f774c
编写于
6月 05, 2019
作者:
X
Xu Peng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(db): temp fix for files to search
Former-commit-id: f45a0e22708c9e9fc388f3fbe6a40c3e0094dd77
上级
e049c7fb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
81 addition
and
38 deletion
+81
-38
cpp/src/db/DBMetaImpl.cpp
cpp/src/db/DBMetaImpl.cpp
+81
-38
未找到文件。
cpp/src/db/DBMetaImpl.cpp
浏览文件 @
956f774c
...
...
@@ -49,6 +49,7 @@ inline auto StoragePrototype(const std::string &path) {
using
ConnectorT
=
decltype
(
StoragePrototype
(
""
));
static
std
::
unique_ptr
<
ConnectorT
>
ConnectorPtr
;
using
ConditionT
=
decltype
(
c
(
&
TableFileSchema
::
id
)
==
1UL
);
std
::
string
DBMetaImpl
::
GetTablePath
(
const
std
::
string
&
table_id
)
{
return
options_
.
path
+
"/tables/"
+
table_id
;
...
...
@@ -334,51 +335,93 @@ Status DBMetaImpl::FilesToSearch(const std::string &table_id,
const
DatesT
&
partition
,
DatePartionedTableFilesSchema
&
files
)
{
files
.
clear
();
DatesT
today
=
{
Meta
::
GetDate
()};
const
DatesT
&
dates
=
(
partition
.
empty
()
==
true
)
?
today
:
partition
;
try
{
server
::
Metrics
::
GetInstance
().
MetaAccessTotalIncrement
();
auto
start_time
=
METRICS_NOW_TIME
;
auto
selected
=
ConnectorPtr
->
select
(
columns
(
&
TableFileSchema
::
id
,
&
TableFileSchema
::
table_
id
,
&
TableFileSchema
::
fi
le_id
,
&
TableFileSchema
::
file_type
,
&
TableFileSchema
::
siz
e
,
&
TableFileSchema
::
date
)
,
where
(
c
(
&
TableFileSchema
::
table_id
)
==
table_id
and
in
(
&
TableFileSchema
::
date
,
dates
)
and
(
c
(
&
TableFileSchema
::
file_type
)
==
(
int
)
TableFileSchema
::
RAW
or
c
(
&
TableFileSchema
::
file_type
)
==
(
int
)
TableFileSchema
::
TO_INDEX
or
c
(
&
TableFileSchema
::
file_type
)
==
(
int
)
TableFileSchema
::
INDEX
)));
auto
end_time
=
METRICS_NOW_TIME
;
auto
total_time
=
METRICS_MICROSECONDS
(
start_time
,
end_time
);
server
::
Metrics
::
GetInstance
().
MetaAccessDurationSecondsHistogramObserve
(
total_time
);
TableSchema
table_schema
;
table_schema
.
table_id
=
table_id
;
auto
status
=
DescribeTable
(
table_schema
);
if
(
!
status
.
ok
())
{
return
status
;
}
if
(
partition
.
empty
())
{
auto
selected
=
ConnectorPtr
->
select
(
columns
(
&
TableFileSchema
::
id
,
&
TableFileSchema
::
tab
le_id
,
&
TableFileSchema
::
file_id
,
&
TableFileSchema
::
file_typ
e
,
&
TableFileSchema
::
size
,
&
TableFileSchema
::
date
),
where
(
c
(
&
TableFileSchema
::
table_id
)
==
table_id
and
(
c
(
&
TableFileSchema
::
file_type
)
==
(
int
)
TableFileSchema
::
RAW
or
c
(
&
TableFileSchema
::
file_type
)
==
(
int
)
TableFileSchema
::
TO_INDEX
or
c
(
&
TableFileSchema
::
file_type
)
==
(
int
)
TableFileSchema
::
INDEX
)));
auto
end_time
=
METRICS_NOW_TIME
;
auto
total_time
=
METRICS_MICROSECONDS
(
start_time
,
end_time
);
server
::
Metrics
::
GetInstance
().
MetaAccessDurationSecondsHistogramObserve
(
total_time
);
TableSchema
table_schema
;
table_schema
.
table_id
=
table_id
;
auto
status
=
DescribeTable
(
table_schema
);
if
(
!
status
.
ok
())
{
return
status
;
}
TableFileSchema
table_file
;
TableFileSchema
table_file
;
for
(
auto
&
file
:
selected
)
{
table_file
.
id
=
std
::
get
<
0
>
(
file
);
table_file
.
table_id
=
std
::
get
<
1
>
(
file
);
table_file
.
file_id
=
std
::
get
<
2
>
(
file
);
table_file
.
file_type
=
std
::
get
<
3
>
(
file
);
table_file
.
size
=
std
::
get
<
4
>
(
file
);
table_file
.
date
=
std
::
get
<
5
>
(
file
);
table_file
.
dimension
=
table_schema
.
dimension
;
GetTableFilePath
(
table_file
);
auto
dateItr
=
files
.
find
(
table_file
.
date
);
if
(
dateItr
==
files
.
end
())
{
files
[
table_file
.
date
]
=
TableFilesSchema
();
}
files
[
table_file
.
date
].
push_back
(
table_file
);
}
}
else
{
auto
selected
=
ConnectorPtr
->
select
(
columns
(
&
TableFileSchema
::
id
,
&
TableFileSchema
::
table_id
,
&
TableFileSchema
::
file_id
,
&
TableFileSchema
::
file_type
,
&
TableFileSchema
::
size
,
&
TableFileSchema
::
date
),
where
(
c
(
&
TableFileSchema
::
table_id
)
==
table_id
and
in
(
&
TableFileSchema
::
date
,
partition
)
and
(
c
(
&
TableFileSchema
::
file_type
)
==
(
int
)
TableFileSchema
::
RAW
or
c
(
&
TableFileSchema
::
file_type
)
==
(
int
)
TableFileSchema
::
TO_INDEX
or
c
(
&
TableFileSchema
::
file_type
)
==
(
int
)
TableFileSchema
::
INDEX
)));
auto
end_time
=
METRICS_NOW_TIME
;
auto
total_time
=
METRICS_MICROSECONDS
(
start_time
,
end_time
);
server
::
Metrics
::
GetInstance
().
MetaAccessDurationSecondsHistogramObserve
(
total_time
);
TableSchema
table_schema
;
table_schema
.
table_id
=
table_id
;
auto
status
=
DescribeTable
(
table_schema
);
if
(
!
status
.
ok
())
{
return
status
;
}
for
(
auto
&
file
:
selected
)
{
table_file
.
id
=
std
::
get
<
0
>
(
file
);
table_file
.
table_id
=
std
::
get
<
1
>
(
file
);
table_file
.
file_id
=
std
::
get
<
2
>
(
file
);
table_file
.
file_type
=
std
::
get
<
3
>
(
file
);
table_file
.
size
=
std
::
get
<
4
>
(
file
);
table_file
.
date
=
std
::
get
<
5
>
(
file
);
table_file
.
dimension
=
table_schema
.
dimension
;
GetTableFilePath
(
table_file
);
auto
dateItr
=
files
.
find
(
table_file
.
date
);
if
(
dateItr
==
files
.
end
())
{
files
[
table_file
.
date
]
=
TableFilesSchema
();
TableFileSchema
table_file
;
for
(
auto
&
file
:
selected
)
{
table_file
.
id
=
std
::
get
<
0
>
(
file
);
table_file
.
table_id
=
std
::
get
<
1
>
(
file
);
table_file
.
file_id
=
std
::
get
<
2
>
(
file
);
table_file
.
file_type
=
std
::
get
<
3
>
(
file
);
table_file
.
size
=
std
::
get
<
4
>
(
file
);
table_file
.
date
=
std
::
get
<
5
>
(
file
);
table_file
.
dimension
=
table_schema
.
dimension
;
GetTableFilePath
(
table_file
);
auto
dateItr
=
files
.
find
(
table_file
.
date
);
if
(
dateItr
==
files
.
end
())
{
files
[
table_file
.
date
]
=
TableFilesSchema
();
}
files
[
table_file
.
date
].
push_back
(
table_file
);
}
files
[
table_file
.
date
].
push_back
(
table_file
);
}
}
catch
(
std
::
exception
&
e
)
{
LOG
(
DEBUG
)
<<
e
.
what
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录