Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lihongda1002
oceanbase
提交
f13a7956
O
oceanbase
项目概览
lihongda1002
/
oceanbase
与 Fork 源项目一致
Fork自
oceanbase / oceanbase
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
oceanbase
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
f13a7956
编写于
11月 06, 2022
作者:
G
godyangfight
提交者:
wangzelin.wzl
11月 06, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix migration dest copy macro block inner retry return 4070
上级
e7a71c9f
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
60 addition
and
13 deletion
+60
-13
src/storage/high_availability/ob_physical_copy_task.cpp
src/storage/high_availability/ob_physical_copy_task.cpp
+30
-12
src/storage/high_availability/ob_physical_copy_task.h
src/storage/high_availability/ob_physical_copy_task.h
+2
-1
tools/deploy/init_for_ce.sql
tools/deploy/init_for_ce.sql
+28
-0
未找到文件。
src/storage/high_availability/ob_physical_copy_task.cpp
浏览文件 @
f13a7956
...
...
@@ -135,8 +135,7 @@ ObPhysicalCopyTask::ObPhysicalCopyTask()
copy_ctx_
(
nullptr
),
finish_task_
(
nullptr
),
copy_table_key_
(),
copy_macro_range_info_
(),
index_block_rebuilder_
()
copy_macro_range_info_
()
{
}
...
...
@@ -157,8 +156,6 @@ int ObPhysicalCopyTask::init(
LOG_WARN
(
"physical copy task get invalid argument"
,
K
(
ret
),
KPC
(
copy_ctx
),
KPC
(
finish_task
));
}
else
if
(
OB_FAIL
(
build_macro_block_copy_info_
(
finish_task
)))
{
LOG_WARN
(
"failed to build macro block copy info"
,
K
(
ret
),
KPC
(
copy_ctx
));
}
else
if
(
OB_FAIL
(
index_block_rebuilder_
.
init
(
*
copy_ctx
->
sstable_index_builder_
)))
{
LOG_WARN
(
"failed to init index rebuilder"
,
K
(
ret
),
KPC
(
copy_ctx
));
}
else
{
copy_ctx_
=
copy_ctx
;
finish_task_
=
finish_task
;
...
...
@@ -211,8 +208,6 @@ int ObPhysicalCopyTask::process()
ret
=
OB_ERR_SYS
;
LOG_ERROR
(
"list count not match"
,
K
(
ret
),
KPC
(
copy_macro_range_info_
),
K
(
copied_ctx
.
get_macro_block_count
()),
K
(
copied_ctx
));
}
else
if
(
OB_FAIL
(
index_block_rebuilder_
.
close
()))
{
LOG_WARN
(
"failed to close index block builder"
,
K
(
ret
),
K
(
copied_ctx
));
}
}
LOG_INFO
(
"physical copy task finish"
,
K
(
ret
),
KPC
(
copy_macro_range_info_
),
KPC
(
copy_ctx_
));
...
...
@@ -244,7 +239,7 @@ int ObPhysicalCopyTask::fetch_macro_block_with_retry_(
if
(
retry_times
>
0
)
{
LOG_INFO
(
"retry get major block"
,
K
(
retry_times
));
}
if
(
OB_FAIL
(
fetch_macro_block_
(
copied_ctx
)))
{
if
(
OB_FAIL
(
fetch_macro_block_
(
retry_times
,
copied_ctx
)))
{
STORAGE_LOG
(
WARN
,
"failed to fetch major block"
,
K
(
ret
),
K
(
retry_times
));
}
...
...
@@ -264,20 +259,25 @@ int ObPhysicalCopyTask::fetch_macro_block_with_retry_(
}
int
ObPhysicalCopyTask
::
fetch_macro_block_
(
const
int64_t
retry_times
,
ObMacroBlocksWriteCtx
&
copied_ctx
)
{
int
ret
=
OB_SUCCESS
;
ObStorageHAMacroBlockWriter
*
writer
=
NULL
;
ObICopyMacroBlockReader
*
reader
=
NULL
;
ObIndexBlockRebuilder
index_block_rebuilder
;
if
(
!
is_inited_
)
{
ret
=
OB_NOT_INIT
;
LOG_WARN
(
"physical copy physical task do not init"
,
K
(
ret
));
}
else
{
LOG_INFO
(
"init reader"
,
K
(
copy_table_key_
));
if
(
OB_FAIL
(
get_macro_block_reader_
(
reader
)))
{
if
(
OB_FAIL
(
index_block_rebuilder
.
init
(
*
copy_ctx_
->
sstable_index_builder_
)))
{
LOG_WARN
(
"failed to init index block rebuilder"
,
K
(
ret
),
K
(
copy_table_key_
));
}
else
if
(
OB_FAIL
(
get_macro_block_reader_
(
reader
)))
{
LOG_WARN
(
"fail to get macro block reader"
,
K
(
ret
));
}
else
if
(
OB_FAIL
(
get_macro_block_writer_
(
reader
,
writer
)))
{
}
else
if
(
OB_FAIL
(
get_macro_block_writer_
(
reader
,
&
index_block_rebuilder
,
writer
)))
{
LOG_WARN
(
"failed to get macro block writer"
,
K
(
ret
),
K
(
copy_table_key_
));
}
else
if
(
OB_FAIL
(
writer
->
process
(
copied_ctx
)))
{
LOG_WARN
(
"failed to process writer"
,
K
(
ret
),
K
(
copy_table_key_
));
...
...
@@ -287,6 +287,23 @@ int ObPhysicalCopyTask::fetch_macro_block_(
K
(
copied_ctx
.
get_macro_block_count
()),
K
(
copied_ctx
));
}
#ifdef ERRSIM
if
(
OB_SUCC
(
ret
))
{
ret
=
E
(
EventTable
::
EN_MIGRATE_FETCH_MACRO_BLOCK
)
OB_SUCCESS
;
if
(
OB_FAIL
(
ret
))
{
if
(
retry_times
==
0
)
{
}
else
{
ret
=
OB_SUCCESS
;
}
STORAGE_LOG
(
ERROR
,
"fake EN_MIGRATE_FETCH_MACRO_BLOCK"
,
K
(
ret
));
}
}
#endif
if
(
FAILEDx
(
index_block_rebuilder
.
close
()))
{
LOG_WARN
(
"failed to close index block builder"
,
K
(
ret
),
K
(
copied_ctx
));
}
if
(
NULL
!=
reader
)
{
free_macro_block_reader_
(
reader
);
}
...
...
@@ -406,6 +423,7 @@ int ObPhysicalCopyTask::get_macro_block_restore_reader_(
int
ObPhysicalCopyTask
::
get_macro_block_writer_
(
ObICopyMacroBlockReader
*
reader
,
ObIndexBlockRebuilder
*
index_block_rebuilder
,
ObStorageHAMacroBlockWriter
*&
writer
)
{
int
ret
=
OB_SUCCESS
;
...
...
@@ -413,16 +431,16 @@ int ObPhysicalCopyTask::get_macro_block_writer_(
if
(
!
is_inited_
)
{
ret
=
OB_NOT_INIT
;
LOG_WARN
(
"physical copy task do not init"
,
K
(
ret
));
}
else
if
(
OB_ISNULL
(
reader
))
{
}
else
if
(
OB_ISNULL
(
reader
)
||
OB_ISNULL
(
index_block_rebuilder
)
)
{
ret
=
OB_INVALID_ARGUMENT
;
LOG_WARN
(
"macro block writer get invalid argument"
,
K
(
ret
),
KP
(
reader
));
LOG_WARN
(
"macro block writer get invalid argument"
,
K
(
ret
),
KP
(
reader
)
,
KP
(
index_block_rebuilder
)
);
}
else
{
void
*
buf
=
mtl_malloc
(
sizeof
(
ObStorageHAMacroBlockWriter
),
"MacroObWriter"
);
if
(
OB_ISNULL
(
buf
))
{
ret
=
OB_ALLOCATE_MEMORY_FAILED
;
LOG_WARN
(
"failed to alloc memory"
,
K
(
ret
),
KP
(
buf
));
}
else
if
(
FALSE_IT
(
writer
=
new
(
buf
)
ObStorageHAMacroBlockWriter
()))
{
}
else
if
(
OB_FAIL
(
writer
->
init
(
copy_ctx_
->
tenant_id_
,
reader
,
&
index_block_rebuilder_
)))
{
}
else
if
(
OB_FAIL
(
writer
->
init
(
copy_ctx_
->
tenant_id_
,
reader
,
index_block_rebuilder
)))
{
STORAGE_LOG
(
WARN
,
"failed to init ob reader"
,
K
(
ret
),
KPC
(
copy_ctx_
));
}
...
...
src/storage/high_availability/ob_physical_copy_task.h
浏览文件 @
f13a7956
...
...
@@ -99,6 +99,7 @@ private:
int
fetch_macro_block_with_retry_
(
ObMacroBlocksWriteCtx
&
copied_ctx
);
int
fetch_macro_block_
(
const
int64_t
retry_times
,
ObMacroBlocksWriteCtx
&
copied_ctx
);
int
build_macro_block_copy_info_
(
ObPhysicalCopyFinishTask
*
finish_task
);
int
get_macro_block_reader_
(
...
...
@@ -111,6 +112,7 @@ private:
ObICopyMacroBlockReader
*&
reader
);
int
get_macro_block_writer_
(
ObICopyMacroBlockReader
*
reader
,
ObIndexBlockRebuilder
*
index_block_rebuilder
,
ObStorageHAMacroBlockWriter
*&
writer
);
void
free_macro_block_reader_
(
ObICopyMacroBlockReader
*&
reader
);
void
free_macro_block_writer_
(
ObStorageHAMacroBlockWriter
*&
writer
);
...
...
@@ -126,7 +128,6 @@ private:
ObPhysicalCopyFinishTask
*
finish_task_
;
ObITable
::
TableKey
copy_table_key_
;
const
ObCopyMacroRangeInfo
*
copy_macro_range_info_
;
ObIndexBlockRebuilder
index_block_rebuilder_
;
DISALLOW_COPY_AND_ASSIGN
(
ObPhysicalCopyTask
);
};
...
...
tools/deploy/init_for_ce.sql
0 → 100644
浏览文件 @
f13a7956
system
sleep
5
;
alter
system
set
balancer_idle_time
=
'10s'
;
create
user
if
not
exists
'admin'
IDENTIFIED
BY
'admin'
;
use
oceanbase
;
create
database
if
not
exists
test
;
use
test
;
grant
all
on
*
.
*
to
'admin'
WITH
GRANT
OPTION
;
alter
system
set
enable_syslog_wf
=
false
;
set
@@
session
.
ob_query_timeout
=
200000000
;
source
init_create_tenant_routines
.
sql
;
call
adjust_sys_resource
();
call
create_tenant_by_memory_resource
(
'mysql'
,
'mysql'
);
set
@@
session
.
ob_query_timeout
=
10000000
;
system
sleep
5
;
alter
tenant
sys
set
variables
recyclebin
=
'on'
;
alter
tenant
sys
set
variables
ob_enable_truncate_flashback
=
'on'
;
alter
tenant
mysql
set
variables
ob_tcp_invited_nodes
=
'%'
;
alter
tenant
mysql
set
variables
recyclebin
=
'on'
;
alter
tenant
mysql
set
variables
ob_enable_truncate_flashback
=
'on'
;
alter
system
set
ob_compaction_schedule_interval
=
'10s'
tenant
all
;
alter
system
set
merger_check_interval
=
'10s'
tenant
all
;
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录