Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
milvus
提交
c6d38f0a
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,发现更多精彩内容 >>
提交
c6d38f0a
编写于
7月 09, 2019
作者:
P
peng.xu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(db): impl build index
Former-commit-id: 3fd41e5fa861957e108a4d077a152dc0c30f2691
上级
710ae19d
变更
7
显示空白变更内容
内联
并排
Showing
7 changed file
with
50 addition
and
5 deletion
+50
-5
cpp/src/db/DBImpl.cpp
cpp/src/db/DBImpl.cpp
+16
-4
cpp/src/db/DBImpl.h
cpp/src/db/DBImpl.h
+1
-1
cpp/src/db/DBMetaImpl.cpp
cpp/src/db/DBMetaImpl.cpp
+22
-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/MySQLMetaImpl.cpp
cpp/src/db/MySQLMetaImpl.cpp
+5
-0
cpp/src/db/MySQLMetaImpl.h
cpp/src/db/MySQLMetaImpl.h
+2
-0
未找到文件。
cpp/src/db/DBImpl.cpp
浏览文件 @
c6d38f0a
...
@@ -408,10 +408,10 @@ void DBImpl::BackgroundCompaction(std::set<std::string> table_ids) {
...
@@ -408,10 +408,10 @@ void DBImpl::BackgroundCompaction(std::set<std::string> table_ids) {
meta_ptr_
->
CleanUpFilesWithTTL
(
ttl
);
meta_ptr_
->
CleanUpFilesWithTTL
(
ttl
);
}
}
void
DBImpl
::
StartBuildIndexTask
()
{
void
DBImpl
::
StartBuildIndexTask
(
bool
force
)
{
static
uint64_t
index_clock_tick
=
0
;
static
uint64_t
index_clock_tick
=
0
;
index_clock_tick
++
;
index_clock_tick
++
;
if
(
index_clock_tick
%
INDEX_ACTION_INTERVAL
!=
0
)
{
if
(
!
force
&&
(
index_clock_tick
%
INDEX_ACTION_INTERVAL
!=
0
)
)
{
return
;
return
;
}
}
...
@@ -431,8 +431,20 @@ void DBImpl::StartBuildIndexTask() {
...
@@ -431,8 +431,20 @@ void DBImpl::StartBuildIndexTask() {
}
}
Status
DBImpl
::
BuildIndex
(
const
std
::
string
&
table_id
)
{
Status
DBImpl
::
BuildIndex
(
const
std
::
string
&
table_id
)
{
bool
has
=
false
;
meta_ptr_
->
HasNonIndexFiles
(
table_id
,
has
);
int
times
=
1
;
while
(
has
)
{
ENGINE_LOG_DEBUG
<<
"Non index files detected! Will build index "
<<
times
;
meta_ptr_
->
UpdateTableFilesToIndex
(
table_id
);
meta_ptr_
->
UpdateTableFilesToIndex
(
table_id
);
return
BuildIndexByTable
(
table_id
);
StartBuildIndexTask
(
true
);
std
::
this_thread
::
sleep_for
(
std
::
chrono
::
milliseconds
(
std
::
min
(
10
*
1000
,
times
*
100
)));
meta_ptr_
->
HasNonIndexFiles
(
table_id
,
has
);
times
++
;
}
return
Status
::
OK
();
/* return BuildIndexByTable(table_id); */
}
}
Status
DBImpl
::
BuildIndex
(
const
meta
::
TableFileSchema
&
file
)
{
Status
DBImpl
::
BuildIndex
(
const
meta
::
TableFileSchema
&
file
)
{
...
...
cpp/src/db/DBImpl.h
浏览文件 @
c6d38f0a
...
@@ -109,7 +109,7 @@ class DBImpl : public DB {
...
@@ -109,7 +109,7 @@ class DBImpl : public DB {
Status
BackgroundMergeFiles
(
const
std
::
string
&
table_id
);
Status
BackgroundMergeFiles
(
const
std
::
string
&
table_id
);
void
BackgroundCompaction
(
std
::
set
<
std
::
string
>
table_ids
);
void
BackgroundCompaction
(
std
::
set
<
std
::
string
>
table_ids
);
void
StartBuildIndexTask
();
void
StartBuildIndexTask
(
bool
force
=
false
);
void
BackgroundBuildIndex
();
void
BackgroundBuildIndex
();
Status
Status
...
...
cpp/src/db/DBMetaImpl.cpp
浏览文件 @
c6d38f0a
...
@@ -316,6 +316,28 @@ Status DBMetaImpl::DescribeTable(TableSchema &table_schema) {
...
@@ -316,6 +316,28 @@ Status DBMetaImpl::DescribeTable(TableSchema &table_schema) {
return
Status
::
OK
();
return
Status
::
OK
();
}
}
Status
DBMetaImpl
::
HasNonIndexFiles
(
const
std
::
string
&
table_id
,
bool
&
has
)
{
has
=
false
;
try
{
auto
selected
=
ConnectorPtr
->
select
(
columns
(
&
TableFileSchema
::
id_
),
where
((
c
(
&
TableFileSchema
::
file_type_
)
==
(
int
)
TableFileSchema
::
RAW
or
c
(
&
TableFileSchema
::
file_type_
)
==
(
int
)
TableFileSchema
::
TO_INDEX
)
and
c
(
&
TableFileSchema
::
table_id_
)
==
table_id
));
if
(
selected
.
size
()
>=
1
)
{
has
=
true
;
}
else
{
has
=
false
;
}
}
catch
(
std
::
exception
&
e
)
{
return
HandleException
(
"Encounter exception when check non index files"
,
e
);
}
return
Status
::
OK
();
}
Status
DBMetaImpl
::
HasTable
(
const
std
::
string
&
table_id
,
bool
&
has_or_not
)
{
Status
DBMetaImpl
::
HasTable
(
const
std
::
string
&
table_id
,
bool
&
has_or_not
)
{
has_or_not
=
false
;
has_or_not
=
false
;
...
...
cpp/src/db/DBMetaImpl.h
浏览文件 @
c6d38f0a
...
@@ -35,6 +35,8 @@ public:
...
@@ -35,6 +35,8 @@ public:
const
std
::
vector
<
size_t
>&
ids
,
const
std
::
vector
<
size_t
>&
ids
,
TableFilesSchema
&
table_files
)
override
;
TableFilesSchema
&
table_files
)
override
;
virtual
Status
HasNonIndexFiles
(
const
std
::
string
&
table_id
,
bool
&
has
)
override
;
virtual
Status
UpdateTableFilesToIndex
(
const
std
::
string
&
table_id
)
override
;
virtual
Status
UpdateTableFilesToIndex
(
const
std
::
string
&
table_id
)
override
;
virtual
Status
UpdateTableFile
(
TableFileSchema
&
file_schema
)
override
;
virtual
Status
UpdateTableFile
(
TableFileSchema
&
file_schema
)
override
;
...
...
cpp/src/db/Meta.h
浏览文件 @
c6d38f0a
...
@@ -58,6 +58,8 @@ public:
...
@@ -58,6 +58,8 @@ public:
virtual
Status
FilesToIndex
(
TableFilesSchema
&
)
=
0
;
virtual
Status
FilesToIndex
(
TableFilesSchema
&
)
=
0
;
virtual
Status
HasNonIndexFiles
(
const
std
::
string
&
table_id
,
bool
&
has
)
=
0
;
virtual
Status
CleanUp
()
=
0
;
virtual
Status
CleanUp
()
=
0
;
virtual
Status
CleanUpFilesWithTTL
(
uint16_t
)
=
0
;
virtual
Status
CleanUpFilesWithTTL
(
uint16_t
)
=
0
;
...
...
cpp/src/db/MySQLMetaImpl.cpp
浏览文件 @
c6d38f0a
...
@@ -436,6 +436,11 @@ namespace meta {
...
@@ -436,6 +436,11 @@ namespace meta {
return
Status
::
OK
();
return
Status
::
OK
();
}
}
Status
MySQLMetaImpl
::
HasNonIndexFiles
(
const
std
::
string
&
table_id
,
bool
&
has
)
{
// TODO
return
Status
::
OK
();
}
Status
MySQLMetaImpl
::
DeleteTable
(
const
std
::
string
&
table_id
)
{
Status
MySQLMetaImpl
::
DeleteTable
(
const
std
::
string
&
table_id
)
{
// std::lock_guard<std::recursive_mutex> lock(mysql_mutex);
// std::lock_guard<std::recursive_mutex> lock(mysql_mutex);
...
...
cpp/src/db/MySQLMetaImpl.h
浏览文件 @
c6d38f0a
...
@@ -40,6 +40,8 @@ namespace meta {
...
@@ -40,6 +40,8 @@ namespace meta {
const
std
::
vector
<
size_t
>&
ids
,
const
std
::
vector
<
size_t
>&
ids
,
TableFilesSchema
&
table_files
)
override
;
TableFilesSchema
&
table_files
)
override
;
virtual
Status
HasNonIndexFiles
(
const
std
::
string
&
table_id
,
bool
&
has
)
override
;
virtual
Status
UpdateTableFile
(
TableFileSchema
&
file_schema
)
override
;
virtual
Status
UpdateTableFile
(
TableFileSchema
&
file_schema
)
override
;
virtual
Status
UpdateTableFilesToIndex
(
const
std
::
string
&
table_id
)
override
;
virtual
Status
UpdateTableFilesToIndex
(
const
std
::
string
&
table_id
)
override
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录