Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
milvus
提交
e4b9a62e
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,发现更多精彩内容 >>
提交
e4b9a62e
编写于
4月 14, 2019
作者:
X
Xu Peng
提交者:
xj.lin
4月 16, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(cpp/db): add background handling
Former-commit-id: c10f382912f3cfbeb45cedc0e17d355f9e2b0bc6
上级
0352db40
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
45 addition
and
1 deletion
+45
-1
cpp/src/db/db_impl.cpp
cpp/src/db/db_impl.cpp
+32
-1
cpp/src/db/db_impl.h
cpp/src/db/db_impl.h
+13
-0
未找到文件。
cpp/src/db/db_impl.cpp
浏览文件 @
e4b9a62e
...
...
@@ -6,7 +6,9 @@ namespace vecengine {
DBImpl
::
DBImpl
(
const
Options
&
options_
,
const
std
::
string
&
name_
)
:
_dbname
(
name_
),
_env
(
options_
.
env
),
_options
(
options_
)
{
_options
(
options_
),
_bg_work_finish_signal
(
_mutex
),
_bg_compaction_scheduled
(
false
)
{
}
Status
DBImpl
::
add_group
(
const
GroupOptions
&
options_
,
...
...
@@ -17,6 +19,35 @@ Status DBImpl::add_group(const GroupOptions& options_,
}
void
DBImpl
::
try_schedule_compaction
()
{
if
(
_bg_compaction_scheduled
)
return
;
if
(
!
_bg_error
.
ok
())
return
;
_bg_compaction_scheduled
=
true
;
_env
->
schedule
(
&
DBImpl
::
BGWork
,
this
);
}
void
DBImpl
::
BGWork
(
void
*
db_
)
{
reinterpret_cast
<
DBImpl
*>
(
db_
)
->
background_call
();
}
void
DBImpl
::
background_call
()
{
std
::
lock_guard
<
std
::
mutex
>
lock
(
_mutex
);
assert
(
_bg_compaction_scheduled
);
if
(
!
_bg_error
.
ok
())
return
;
background_compaction
();
}
void
DBImpl
::
background_compaction
()
{
}
void
DBImpl
::
compact_memory
()
{
}
/*
* DB
*/
...
...
cpp/src/db/db_impl.h
浏览文件 @
e4b9a62e
#ifndef VECENGINE_DB_IMPL_H_
#define VECENGINE_DB_IMPL_H_
#include <mutex>
#include <condition_variable>
#include "db.h"
namespace
vecengine
{
...
...
@@ -15,9 +17,15 @@ public:
const
std
::
string
&
group_id_
,
std
::
string
&
gid_
)
override
;
void
try_schedule_compaction
();
virtual
~
DBImpl
();
private:
static
void
BGWork
(
void
*
db
);
void
background_call
();
void
background_compaction
();
Status
meta_add_group
(
const
std
::
string
&
group_id_
);
Status
meta_add_group_file
(
const
std
::
string
&
group_id_
);
...
...
@@ -25,6 +33,11 @@ private:
Env
*
const
_env
;
const
Options
_options
;
std
::
mutex
_mutex
;
std
::
condition_variable
_bg_work_finish_signal
;
bool
_bg_compaction_scheduled
;
Status
_bg_error
;
};
// DBImpl
}
// namespace vecengine
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录