Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
indiff7643
Terarkdb
提交
a83dc497
T
Terarkdb
项目概览
indiff7643
/
Terarkdb
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Terarkdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a83dc497
编写于
4月 22, 2020
作者:
Z
ZhaoMing
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Refactor for PickCompositeCompaction
上级
04a5b483
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
14 addition
and
6 deletion
+14
-6
db/compaction_picker.cc
db/compaction_picker.cc
+14
-6
未找到文件。
db/compaction_picker.cc
浏览文件 @
a83dc497
...
...
@@ -1822,7 +1822,7 @@ Compaction* CompactionPicker::PickCompositeCompaction(
size
+=
find
->
second
.
size
;
used
+=
find
->
second
.
used
;
}
p
+=
2.0
*
double
(
size
-
std
::
min
(
used
,
size
))
/
size
;
p
*=
(
1
+
double
(
size
-
std
::
min
(
used
,
size
))
/
size
)
;
if
(
p
<=
2.0
)
{
continue
;
}
...
...
@@ -1845,7 +1845,7 @@ Compaction* CompactionPicker::PickCompositeCompaction(
size_t
pick_size
=
size_t
(
MaxFileSizeForLevel
(
mutable_cf_options
,
std
::
max
(
1
,
input
.
level
),
ioptions_
.
compaction_style
)
*
2
);
4
);
auto
estimate_size
=
[](
const
MapSstElement
&
element
)
{
size_t
sum
=
0
;
for
(
auto
&
l
:
element
.
link
)
{
...
...
@@ -2829,10 +2829,6 @@ Compaction* LevelCompactionBuilder::PickLazyCompaction(
if
(
vstorage_
->
LevelFiles
(
i
).
empty
())
{
continue
;
}
if
(
sorted_runs
[
i
].
being_compacted
||
sorted_runs
[
i
+
1
].
being_compacted
)
{
sorted_runs
[
i
+
1
].
skip_composite
=
true
;
continue
;
}
double
fixed_size
=
level_size
;
if
(
i
<
bottommost_level
)
{
fixed_size
=
std
::
min
(
...
...
@@ -2840,6 +2836,12 @@ Compaction* LevelCompactionBuilder::PickLazyCompaction(
(
q_pair
.
first
+
1
));
}
if
(
sorted_runs
[
i
].
size
>
fixed_size
)
{
if
(
sorted_runs
[
i
].
being_compacted
||
sorted_runs
[
i
+
1
].
being_compacted
)
{
sorted_runs
[
i
].
skip_composite
=
true
;
sorted_runs
[
i
+
1
].
skip_composite
=
true
;
continue
;
}
uint64_t
pick_size
=
target_file_size_base
;
double
diff_size
=
double
(
sorted_runs
[
i
].
size
)
-
fixed_size
+
target_file_size_base
/
2
;
...
...
@@ -2864,6 +2866,12 @@ Compaction* LevelCompactionBuilder::PickLazyCompaction(
(
q_pair
.
second
+
1
));
}
if
(
sorted_runs
[
i
].
compensated_file_size
>
fixed_size
)
{
if
(
sorted_runs
[
i
].
being_compacted
||
sorted_runs
[
i
+
1
].
being_compacted
)
{
sorted_runs
[
i
].
skip_composite
=
true
;
sorted_runs
[
i
+
1
].
skip_composite
=
true
;
continue
;
}
auto
s
=
pick_map_compaction
(
i
,
target_file_size_base
,
q_pair
.
second
);
if
(
!
s
.
ok
())
{
ROCKS_LOG_BUFFER
(
log_buffer_
,
"[%s] PickCompaction map error %s."
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录