Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Metz
oceanbase
提交
e6efecce
O
oceanbase
项目概览
Metz
/
oceanbase
与 Fork 源项目一致
Fork自
oceanbase / oceanbase
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
oceanbase
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e6efecce
编写于
8月 15, 2022
作者:
O
obdev
提交者:
wangzelin.wzl
8月 15, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[CP] Fix page nums error.
上级
c7bbde7d
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
25 addition
and
41 deletion
+25
-41
src/storage/blocksstable/ob_tmp_file_cache.cpp
src/storage/blocksstable/ob_tmp_file_cache.cpp
+6
-6
src/storage/blocksstable/ob_tmp_file_cache.h
src/storage/blocksstable/ob_tmp_file_cache.h
+0
-1
src/storage/blocksstable/ob_tmp_file_store.cpp
src/storage/blocksstable/ob_tmp_file_store.cpp
+13
-17
src/storage/blocksstable/ob_tmp_file_store.h
src/storage/blocksstable/ob_tmp_file_store.h
+6
-17
未找到文件。
src/storage/blocksstable/ob_tmp_file_cache.cpp
浏览文件 @
e6efecce
...
@@ -614,7 +614,6 @@ ObTmpTenantMemBlockManager::ObTmpTenantMemBlockManager()
...
@@ -614,7 +614,6 @@ ObTmpTenantMemBlockManager::ObTmpTenantMemBlockManager()
:
write_handles_
(),
:
write_handles_
(),
t_mblk_map_
(),
t_mblk_map_
(),
dir_to_blk_map_
(),
dir_to_blk_map_
(),
mblk_page_nums_
(
OB_FILE_SYSTEM
.
get_macro_block_size
()
/
ObTmpMacroBlock
::
get_default_page_size
()
-
1
),
free_page_nums_
(
0
),
free_page_nums_
(
0
),
blk_nums_threshold_
(
0
),
blk_nums_threshold_
(
0
),
block_cache_
(
NULL
),
block_cache_
(
NULL
),
...
@@ -739,7 +738,7 @@ int ObTmpTenantMemBlockManager::free_macro_block(const int64_t block_id)
...
@@ -739,7 +738,7 @@ int ObTmpTenantMemBlockManager::free_macro_block(const int64_t block_id)
}
else
if
(
OB_FAIL
(
t_mblk_map_
.
erase_refactored
(
block_id
)))
{
}
else
if
(
OB_FAIL
(
t_mblk_map_
.
erase_refactored
(
block_id
)))
{
STORAGE_LOG
(
WARN
,
"fail to erase tmp macro block"
,
K
(
ret
));
STORAGE_LOG
(
WARN
,
"fail to erase tmp macro block"
,
K
(
ret
));
}
else
{
}
else
{
free_page_nums_
-=
mblk_page_nums_
;
free_page_nums_
-=
ObTmpFilePageBuddy
::
MAX_PAGE_NUMS
;
}
}
return
ret
;
return
ret
;
}
}
...
@@ -796,7 +795,7 @@ int ObTmpTenantMemBlockManager::free_extent(const int64_t free_page_nums, const
...
@@ -796,7 +795,7 @@ int ObTmpTenantMemBlockManager::free_extent(const int64_t free_page_nums, const
if
(
OB_UNLIKELY
(
!
is_inited_
))
{
if
(
OB_UNLIKELY
(
!
is_inited_
))
{
ret
=
OB_NOT_INIT
;
ret
=
OB_NOT_INIT
;
STORAGE_LOG
(
WARN
,
"ObTmpBlockCache has not been inited"
,
K
(
ret
));
STORAGE_LOG
(
WARN
,
"ObTmpBlockCache has not been inited"
,
K
(
ret
));
}
else
if
(
free_page_nums
<
0
||
free_page_nums
>
mblk_page_nums_
||
NULL
==
t_mblk
)
{
}
else
if
(
free_page_nums
<
0
||
free_page_nums
>
ObTmpFilePageBuddy
::
MAX_PAGE_NUMS
||
NULL
==
t_mblk
)
{
ret
=
OB_INVALID_ARGUMENT
;
ret
=
OB_INVALID_ARGUMENT
;
STORAGE_LOG
(
WARN
,
"invalid argument"
,
K
(
ret
),
K
(
free_page_nums
),
KPC
(
t_mblk
));
STORAGE_LOG
(
WARN
,
"invalid argument"
,
K
(
ret
),
K
(
free_page_nums
),
KPC
(
t_mblk
));
}
else
if
(
OB_FAIL
(
refresh_dir_to_blk_map
(
t_mblk
->
get_dir_id
(),
t_mblk
)))
{
}
else
if
(
OB_FAIL
(
refresh_dir_to_blk_map
(
t_mblk
->
get_dir_id
(),
t_mblk
)))
{
...
@@ -834,7 +833,8 @@ int ObTmpTenantMemBlockManager::get_macro_block(const int64_t dir_id, const uint
...
@@ -834,7 +833,8 @@ int ObTmpTenantMemBlockManager::get_macro_block(const int64_t dir_id, const uint
if
(
OB_UNLIKELY
(
t_mblk_map_
.
size
()
==
0
))
{
if
(
OB_UNLIKELY
(
t_mblk_map_
.
size
()
==
0
))
{
// nothing to do.
// nothing to do.
}
else
if
(
get_tenant_mem_block_num
()
<=
count
||
}
else
if
(
get_tenant_mem_block_num
()
<=
count
||
blk_nums_threshold_
>
(
free_page_nums_
*
1.0
)
/
(
t_mblk_map_
.
size
()
*
mblk_page_nums_
))
{
blk_nums_threshold_
>
(
free_page_nums_
*
1.0
)
/
(
t_mblk_map_
.
size
()
*
ObTmpFilePageBuddy
::
MAX_PAGE_NUMS
))
{
int64_t
wash_nums
=
1
;
int64_t
wash_nums
=
1
;
if
(
OB_FAIL
(
wash
(
tenant_id
,
std
::
max
(
wash_nums
,
count
-
get_tenant_mem_block_num
()
+
1
),
free_blocks
)))
{
if
(
OB_FAIL
(
wash
(
tenant_id
,
std
::
max
(
wash_nums
,
count
-
get_tenant_mem_block_num
()
+
1
),
free_blocks
)))
{
STORAGE_LOG
(
WARN
,
"cannot wash a tmp macro block"
,
K
(
ret
),
K
(
dir_id
),
K
(
tenant_id
));
STORAGE_LOG
(
WARN
,
"cannot wash a tmp macro block"
,
K
(
ret
),
K
(
dir_id
),
K
(
tenant_id
));
...
@@ -906,7 +906,7 @@ int ObTmpTenantMemBlockManager::add_macro_block(const uint64_t tenant_id, ObTmpM
...
@@ -906,7 +906,7 @@ int ObTmpTenantMemBlockManager::add_macro_block(const uint64_t tenant_id, ObTmpM
}
else
if
(
OB_FAIL
(
t_mblk_map_
.
set_refactored
(
t_mblk
->
get_block_id
(),
t_mblk
)))
{
}
else
if
(
OB_FAIL
(
t_mblk_map_
.
set_refactored
(
t_mblk
->
get_block_id
(),
t_mblk
)))
{
STORAGE_LOG
(
WARN
,
"fail to set tmp macro block map"
,
K
(
ret
),
K
(
t_mblk
));
STORAGE_LOG
(
WARN
,
"fail to set tmp macro block map"
,
K
(
ret
),
K
(
t_mblk
));
}
else
{
}
else
{
free_page_nums_
+=
mblk_page_nums_
;
free_page_nums_
+=
ObTmpFilePageBuddy
::
MAX_PAGE_NUMS
;
}
}
return
ret
;
return
ret
;
}
}
...
@@ -983,7 +983,7 @@ int ObTmpTenantMemBlockManager::wash_with_no_wait(const uint64_t tenant_id, ObTm
...
@@ -983,7 +983,7 @@ int ObTmpTenantMemBlockManager::wash_with_no_wait(const uint64_t tenant_id, ObTm
info
.
tenant_id_
=
tenant_id
;
info
.
tenant_id_
=
tenant_id
;
info
.
io_desc_
=
wash_block
->
get_io_desc
();
info
.
io_desc_
=
wash_block
->
get_io_desc
();
info
.
buf_
=
wash_block
->
get_buffer
();
info
.
buf_
=
wash_block
->
get_buffer
();
info
.
size_
=
mblk_page_nums_
*
ObTmpMacroBlock
::
get_default_page_size
();
info
.
size_
=
ObTmpFilePageBuddy
::
MAX_PAGE_NUMS
*
ObTmpMacroBlock
::
get_default_page_size
();
ObMacroBlockHandle
&
mb_handle
=
wash_block
->
get_macro_block_handle
();
ObMacroBlockHandle
&
mb_handle
=
wash_block
->
get_macro_block_handle
();
ObTmpBlockCacheKey
key
(
wash_block
->
get_block_id
(),
tenant_id
);
ObTmpBlockCacheKey
key
(
wash_block
->
get_block_id
(),
tenant_id
);
mb_handle
.
set_file
(
file_handle_
.
get_storage_file
());
mb_handle
.
set_file
(
file_handle_
.
get_storage_file
());
...
...
src/storage/blocksstable/ob_tmp_file_cache.h
浏览文件 @
e6efecce
...
@@ -310,7 +310,6 @@ private:
...
@@ -310,7 +310,6 @@ private:
common
::
ObSEArray
<
ObMacroBlockHandle
*
,
1
>
write_handles_
;
common
::
ObSEArray
<
ObMacroBlockHandle
*
,
1
>
write_handles_
;
TmpMacroBlockMap
t_mblk_map_
;
// <block id, tmp macro block>
TmpMacroBlockMap
t_mblk_map_
;
// <block id, tmp macro block>
Map
dir_to_blk_map_
;
// <dir id, block id>
Map
dir_to_blk_map_
;
// <dir id, block id>
int64_t
mblk_page_nums_
;
int64_t
free_page_nums_
;
int64_t
free_page_nums_
;
double
blk_nums_threshold_
;
// free_page_nums / total_page_nums
double
blk_nums_threshold_
;
// free_page_nums / total_page_nums
ObTmpBlockCache
*
block_cache_
;
ObTmpBlockCache
*
block_cache_
;
...
...
src/storage/blocksstable/ob_tmp_file_store.cpp
浏览文件 @
e6efecce
...
@@ -290,10 +290,10 @@ void ObTmpFilePageBuddy::free(const int32_t start_page_id, const int32_t page_nu
...
@@ -290,10 +290,10 @@ void ObTmpFilePageBuddy::free(const int32_t start_page_id, const int32_t page_nu
ObTmpFileArea
*
ObTmpFilePageBuddy
::
find_buddy
(
const
int32_t
page_nums
,
const
int32_t
start_page_id
)
ObTmpFileArea
*
ObTmpFilePageBuddy
::
find_buddy
(
const
int32_t
page_nums
,
const
int32_t
start_page_id
)
{
{
ObTmpFileArea
*
tmp
=
NULL
;
ObTmpFileArea
*
tmp
=
NULL
;
if
(
get_max_page_nums
()
<
page_nums
||
page_nums
<=
0
||
start_page_id
<
0
||
start_page_id
>=
get_max_page_nums
()
)
{
if
(
MAX_PAGE_NUMS
<
page_nums
||
page_nums
<=
0
||
start_page_id
<
0
||
start_page_id
>=
MAX_PAGE_NUMS
)
{
STORAGE_LOG
(
WARN
,
"invalid argument"
,
K
(
page_nums
),
K
(
start_page_id
));
STORAGE_LOG
(
WARN
,
"invalid argument"
,
K
(
page_nums
),
K
(
start_page_id
));
}
else
if
(
get_max_page_nums
()
==
page_nums
)
{
}
else
if
(
MAX_PAGE_NUMS
==
page_nums
)
{
// no buddy, so, nothing to do.
// no buddy, so, nothing to do.
}
else
{
}
else
{
tmp
=
free_area_
[
static_cast
<
int32_t
>
(
std
::
log
(
page_nums
)
/
std
::
log
(
2
))];
tmp
=
free_area_
[
static_cast
<
int32_t
>
(
std
::
log
(
page_nums
)
/
std
::
log
(
2
))];
...
@@ -332,7 +332,7 @@ ObTmpMacroBlock::ObTmpMacroBlock()
...
@@ -332,7 +332,7 @@ ObTmpMacroBlock::ObTmpMacroBlock()
dir_id_
(
-
1
),
dir_id_
(
-
1
),
tenant_id_
(
0
),
tenant_id_
(
0
),
page_buddy_
(),
page_buddy_
(),
free_page_nums_
(
0
),
free_page_nums_
(
ObTmpFilePageBuddy
::
MAX_PAGE_NUMS
),
buffer_
(
NULL
),
buffer_
(
NULL
),
handle_
(),
handle_
(),
using_extents_
(),
using_extents_
(),
...
@@ -360,7 +360,6 @@ int ObTmpMacroBlock::init(
...
@@ -360,7 +360,6 @@ int ObTmpMacroBlock::init(
block_id_
=
block_id
;
block_id_
=
block_id
;
dir_id_
=
dir_id
;
dir_id_
=
dir_id
;
tenant_id_
=
tenant_id
;
tenant_id_
=
tenant_id
;
free_page_nums_
=
OB_TMP_FILE_STORE
.
get_mblk_page_nums
();
is_disked_
=
false
;
is_disked_
=
false
;
is_washing_
=
false
;
is_washing_
=
false
;
is_inited_
=
true
;
is_inited_
=
true
;
...
@@ -464,7 +463,7 @@ int ObTmpMacroBlock::alloc_all_pages(ObTmpFileExtent& extent)
...
@@ -464,7 +463,7 @@ int ObTmpMacroBlock::alloc_all_pages(ObTmpFileExtent& extent)
}
else
{
}
else
{
extent
.
set_block_id
(
get_block_id
());
extent
.
set_block_id
(
get_block_id
());
extent
.
set_start_page_id
(
0
);
extent
.
set_start_page_id
(
0
);
extent
.
set_page_nums
(
O
B_TMP_FILE_STORE
.
get_mblk_page_nums
()
);
extent
.
set_page_nums
(
O
bTmpFilePageBuddy
::
MAX_PAGE_NUMS
);
extent
.
alloced
();
extent
.
alloced
();
free_page_nums_
-=
extent
.
get_page_nums
();
free_page_nums_
-=
extent
.
get_page_nums
();
if
(
OB_FAIL
(
using_extents_
.
push_back
(
&
extent
)))
{
if
(
OB_FAIL
(
using_extents_
.
push_back
(
&
extent
)))
{
...
@@ -538,11 +537,7 @@ void ObTmpMacroBlock::set_io_desc(const common::ObIODesc& io_desc)
...
@@ -538,11 +537,7 @@ void ObTmpMacroBlock::set_io_desc(const common::ObIODesc& io_desc)
io_desc_
=
io_desc
;
io_desc_
=
io_desc
;
}
}
ObTmpTenantMacroBlockManager
::
ObTmpTenantMacroBlockManager
()
ObTmpTenantMacroBlockManager
::
ObTmpTenantMacroBlockManager
()
:
allocator_
(),
blocks_
(),
is_inited_
(
false
)
:
mblk_page_nums_
(
OB_FILE_SYSTEM
.
get_macro_block_size
()
/
ObTmpMacroBlock
::
get_default_page_size
()
-
1
),
allocator_
(),
blocks_
(),
is_inited_
(
false
)
{}
{}
ObTmpTenantMacroBlockManager
::~
ObTmpTenantMacroBlockManager
()
ObTmpTenantMacroBlockManager
::~
ObTmpTenantMacroBlockManager
()
...
@@ -673,11 +668,11 @@ void ObTmpTenantMacroBlockManager::print_block_usage()
...
@@ -673,11 +668,11 @@ void ObTmpTenantMacroBlockManager::print_block_usage()
}
}
double
disk_fragment_ratio
=
0
;
double
disk_fragment_ratio
=
0
;
if
(
0
!=
disk_count
)
{
if
(
0
!=
disk_count
)
{
disk_fragment_ratio
=
disk_fragment
*
1.0
/
(
disk_count
*
mblk_page_nums_
);
disk_fragment_ratio
=
disk_fragment
*
1.0
/
(
disk_count
*
ObTmpFilePageBuddy
::
MAX_PAGE_NUMS
);
}
}
double
mem_fragment_ratio
=
0
;
double
mem_fragment_ratio
=
0
;
if
(
0
!=
mem_count
)
{
if
(
0
!=
mem_count
)
{
mem_fragment_ratio
=
mem_fragment
*
1.0
/
(
mem_count
*
mblk_page_nums_
);
mem_fragment_ratio
=
mem_fragment
*
1.0
/
(
mem_count
*
ObTmpFilePageBuddy
::
MAX_PAGE_NUMS
);
}
}
STORAGE_LOG
(
INFO
,
STORAGE_LOG
(
INFO
,
"the block usage for temporary files"
,
"the block usage for temporary files"
,
...
@@ -775,9 +770,10 @@ int ObTmpTenantFileStore::alloc(
...
@@ -775,9 +770,10 @@ int ObTmpTenantFileStore::alloc(
int64_t
alloc_size
=
size
;
int64_t
alloc_size
=
size
;
int64_t
block_size
=
tmp_block_manager_
.
get_block_size
();
int64_t
block_size
=
tmp_block_manager_
.
get_block_size
();
// In buddy allocation, if free space in one block isn't powers of 2, need upper align.
// In buddy allocation, if free space in one block isn't powers of 2, need upper align.
int64_t
max_cont_size_per_block
=
int64_t
max_order
=
std
::
ceil
(
std
::
log
(
ObTmpFilePageBuddy
::
MAX_PAGE_NUMS
)
/
std
::
log
(
2
));
(
tmp_block_manager_
.
get_mblk_page_nums
()
+
1
)
/
2
*
ObTmpMacroBlock
::
get_default_page_size
();
int64_t
origin_max_cont_page_nums
=
std
::
pow
(
2
,
max_order
-
1
);
ObTmpMacroBlock
*
t_mblk
=
NULL
;
int64_t
max_cont_size_per_block
=
origin_max_cont_page_nums
*
ObTmpMacroBlock
::
get_default_page_size
();
ObTmpMacroBlock
*
t_mblk
=
NULL
;
if
(
OB_UNLIKELY
(
!
is_inited_
))
{
if
(
OB_UNLIKELY
(
!
is_inited_
))
{
ret
=
OB_NOT_INIT
;
ret
=
OB_NOT_INIT
;
STORAGE_LOG
(
WARN
,
"ObTmpTenantFileStore has not been inited"
,
K
(
ret
));
STORAGE_LOG
(
WARN
,
"ObTmpTenantFileStore has not been inited"
,
K
(
ret
));
...
@@ -807,7 +803,7 @@ int ObTmpTenantFileStore::alloc(
...
@@ -807,7 +803,7 @@ int ObTmpTenantFileStore::alloc(
}
else
{
}
else
{
if
(
alloc_size
<
block_size
)
{
if
(
alloc_size
<
block_size
)
{
int64_t
nums
=
std
::
ceil
(
alloc_size
*
1.0
/
ObTmpMacroBlock
::
get_default_page_size
());
int64_t
nums
=
std
::
ceil
(
alloc_size
*
1.0
/
ObTmpMacroBlock
::
get_default_page_size
());
if
(
OB_FAIL
(
free_extent
(
t_mblk
->
get_block_id
(),
nums
,
tmp_block_manager_
.
get_mblk_page_nums
()
-
nums
)))
{
if
(
OB_FAIL
(
free_extent
(
t_mblk
->
get_block_id
(),
nums
,
ObTmpFilePageBuddy
::
MAX_PAGE_NUMS
-
nums
)))
{
STORAGE_LOG
(
WARN
,
"fail to free pages"
,
K
(
ret
),
K
(
t_mblk
->
get_block_id
()));
STORAGE_LOG
(
WARN
,
"fail to free pages"
,
K
(
ret
),
K
(
t_mblk
->
get_block_id
()));
}
else
{
}
else
{
extent
.
set_page_nums
(
nums
);
extent
.
set_page_nums
(
nums
);
...
...
src/storage/blocksstable/ob_tmp_file_store.h
浏览文件 @
e6efecce
...
@@ -54,7 +54,7 @@ public:
...
@@ -54,7 +54,7 @@ public:
int
init
(
common
::
ObIAllocator
&
allocator
);
int
init
(
common
::
ObIAllocator
&
allocator
);
void
destroy
();
void
destroy
();
int
alloc_all_pages
();
int
alloc_all_pages
();
int
alloc
(
const
int32_t
page_nums
,
int32_t
&
start_page_id
,
int32_t
&
alloced_page_nums
);
int
alloc
(
const
int32_t
page_nums
,
int32_t
&
start_page_id
,
int32_t
&
alloced_page_nums
);
void
free
(
const
int32_t
start_page_id
,
const
int32_t
page_nums
);
void
free
(
const
int32_t
start_page_id
,
const
int32_t
page_nums
);
OB_INLINE
int64_t
get_max_cont_page_nums
()
const
OB_INLINE
int64_t
get_max_cont_page_nums
()
const
{
{
...
@@ -72,10 +72,8 @@ public:
...
@@ -72,10 +72,8 @@ public:
private:
private:
void
free_align
(
const
int32_t
start_page_id
,
const
int32_t
page_nums
,
ObTmpFileArea
*&
area
);
void
free_align
(
const
int32_t
start_page_id
,
const
int32_t
page_nums
,
ObTmpFileArea
*&
area
);
ObTmpFileArea
*
find_buddy
(
const
int32_t
page_nums
,
const
int32_t
start_page_id
);
ObTmpFileArea
*
find_buddy
(
const
int32_t
page_nums
,
const
int32_t
start_page_id
);
static
int
get_max_page_nums
()
{
private:
return
std
::
pow
(
2
,
ObTmpFilePageBuddy
::
MAX_ORDER
)
-
1
;
}
static
const
int
MIN_ORDER
=
2
;
static
const
int
MIN_ORDER
=
2
;
static
const
int
MAX_ORDER
=
8
;
static
const
int
MAX_ORDER
=
8
;
ObTmpFileArea
*
free_area_
[
ObTmpFilePageBuddy
::
MAX_ORDER
];
ObTmpFileArea
*
free_area_
[
ObTmpFilePageBuddy
::
MAX_ORDER
];
...
@@ -236,13 +234,9 @@ public:
...
@@ -236,13 +234,9 @@ public:
int
alloc_macro_block
(
const
int64_t
dir_id
,
const
uint64_t
tenant_id
,
ObTmpMacroBlock
*&
t_mblk
);
int
alloc_macro_block
(
const
int64_t
dir_id
,
const
uint64_t
tenant_id
,
ObTmpMacroBlock
*&
t_mblk
);
int
free_macro_block
(
const
int64_t
block_id
);
int
free_macro_block
(
const
int64_t
block_id
);
int
get_macro_block
(
const
int64_t
block_id
,
ObTmpMacroBlock
*&
t_mblk
);
int
get_macro_block
(
const
int64_t
block_id
,
ObTmpMacroBlock
*&
t_mblk
);
OB_INLINE
int64_t
get_mblk_page_nums
()
const
{
return
mblk_page_nums_
;
}
OB_INLINE
int64_t
get_block_size
()
const
OB_INLINE
int64_t
get_block_size
()
const
{
{
return
mblk_page_nums_
*
ObTmpMacroBlock
::
get_default_page_size
();
return
ObTmpFilePageBuddy
::
MAX_PAGE_NUMS
*
ObTmpMacroBlock
::
get_default_page_size
();
}
}
int
get_disk_macro_block_list
(
common
::
ObIArray
<
MacroBlockId
>&
macro_id_list
);
int
get_disk_macro_block_list
(
common
::
ObIArray
<
MacroBlockId
>&
macro_id_list
);
void
print_block_usage
();
void
print_block_usage
();
...
@@ -253,7 +247,6 @@ private:
...
@@ -253,7 +247,6 @@ private:
private:
private:
static
const
uint64_t
MBLK_HASH_BUCKET_NUM
=
10243L
;
static
const
uint64_t
MBLK_HASH_BUCKET_NUM
=
10243L
;
typedef
common
::
hash
::
ObHashMap
<
int64_t
,
ObTmpMacroBlock
*
,
common
::
hash
::
SpinReadWriteDefendMode
>
TmpMacroBlockMap
;
typedef
common
::
hash
::
ObHashMap
<
int64_t
,
ObTmpMacroBlock
*
,
common
::
hash
::
SpinReadWriteDefendMode
>
TmpMacroBlockMap
;
int64_t
mblk_page_nums_
;
common
::
ObIAllocator
*
allocator_
;
common
::
ObIAllocator
*
allocator_
;
TmpMacroBlockMap
blocks_
;
// all of block meta.
TmpMacroBlockMap
blocks_
;
// all of block meta.
static
int64_t
next_blk_id_
;
static
int64_t
next_blk_id_
;
...
@@ -326,13 +319,9 @@ public:
...
@@ -326,13 +319,9 @@ public:
int
get_macro_block_list
(
common
::
ObIArray
<
TenantTmpBlockCntPair
>&
tmp_block_cnt_pairs
);
int
get_macro_block_list
(
common
::
ObIArray
<
TenantTmpBlockCntPair
>&
tmp_block_cnt_pairs
);
int
get_all_tenant_id
(
common
::
ObIArray
<
uint64_t
>
&
tenant_ids
);
int
get_all_tenant_id
(
common
::
ObIArray
<
uint64_t
>
&
tenant_ids
);
OB_INLINE
int64_t
get_mblk_page_nums
()
const
static
int64_t
get_block_size
()
{
return
OB_FILE_SYSTEM
.
get_macro_block_size
()
/
ObTmpMacroBlock
::
get_default_page_size
()
-
4
;
}
OB_INLINE
int64_t
get_block_size
()
const
{
{
return
O
B_FILE_SYSTEM
.
get_macro_block_size
()
-
4
*
ObTmpMacroBlock
::
get_default_page_size
();
return
O
bTmpFilePageBuddy
::
MAX_PAGE_NUMS
*
ObTmpMacroBlock
::
get_default_page_size
();
}
}
private:
private:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录