Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
oceanbase
oceanbase
提交
73d0496c
O
oceanbase
项目概览
oceanbase
/
oceanbase
1 年多 前同步成功
通知
261
Star
6084
Fork
1301
代码
文件
提交
分支
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看板
提交
73d0496c
编写于
1月 31, 2024
作者:
O
obdev
提交者:
junye
2月 03, 2024
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix alloc write row concurrently core dump for drop column.
上级
cfe71416
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
21 addition
and
10 deletion
+21
-10
src/storage/ddl/ob_complement_data_task.cpp
src/storage/ddl/ob_complement_data_task.cpp
+10
-4
src/storage/ddl/ob_complement_data_task.h
src/storage/ddl/ob_complement_data_task.h
+11
-6
未找到文件。
src/storage/ddl/ob_complement_data_task.cpp
浏览文件 @
73d0496c
...
...
@@ -707,7 +707,8 @@ int ObComplementPrepareTask::process()
}
ObComplementWriteTask
::
ObComplementWriteTask
()
:
ObITask
(
TASK_TYPE_COMPLEMENT_WRITE
),
is_inited_
(
false
),
task_id_
(
0
),
param_
(
nullptr
),
:
ObITask
(
TASK_TYPE_COMPLEMENT_WRITE
),
allocator_
(
"WriteTaskAlloc"
,
OB_MALLOC_NORMAL_BLOCK_SIZE
,
MTL_ID
()),
is_inited_
(
false
),
task_id_
(
0
),
param_
(
nullptr
),
context_
(
nullptr
),
write_row_
(),
col_ids_
(),
org_col_ids_
(),
output_projector_
()
{
...
...
@@ -715,6 +716,11 @@ ObComplementWriteTask::ObComplementWriteTask()
ObComplementWriteTask
::~
ObComplementWriteTask
()
{
col_ids_
.
reset
();
org_col_ids_
.
reset
();
output_projector_
.
reset
();
write_row_
.
reset
();
allocator_
.
reset
();
}
int
ObComplementWriteTask
::
init
(
const
int64_t
task_id
,
ObComplementDataParam
&
param
,
...
...
@@ -739,7 +745,7 @@ int ObComplementWriteTask::init(const int64_t task_id, ObComplementDataParam &pa
ret
=
OB_TABLE_NOT_EXIST
;
LOG_WARN
(
"hidden table schema not exist"
,
K
(
ret
),
K
(
param
));
}
else
if
(
OB_FAIL
(
write_row_
.
init
(
param
.
allocator_
,
hidden_table_schema
->
get_column_count
()
+
storage
::
ObMultiVersionRowkeyHelpper
::
get_extra_rowkey_col_cnt
())))
{
allocator_
,
hidden_table_schema
->
get_column_count
()
+
storage
::
ObMultiVersionRowkeyHelpper
::
get_extra_rowkey_col_cnt
())))
{
LOG_WARN
(
"Fail to init write row"
,
K
(
ret
));
}
else
{
write_row_
.
row_flag_
.
set_flag
(
ObDmlFlag
::
DF_INSERT
);
...
...
@@ -1474,7 +1480,7 @@ int ObComplementMergeTask::add_build_hidden_table_sstable()
ObLocalScan
::
ObLocalScan
()
:
is_inited_
(
false
),
tenant_id_
(
OB_INVALID_TENANT_ID
),
table_id_
(
OB_INVALID_ID
),
dest_table_id_
(
OB_INVALID_ID
),
schema_version_
(
0
),
extended_gc_
(),
snapshot_version_
(
common
::
OB_INVALID_VERSION
),
txs_
(
nullptr
),
default_row_
(),
tmp_row_
(),
row_iter_
(
nullptr
),
scan_merge_
(
nullptr
),
ctx_
(),
access_param_
(),
access_ctx_
(),
get_table_param_
(),
allocator_
(
"ObLocalScan"
),
calc_buf_
(
ObModIds
::
OB_SQL_EXPR_CALC
),
access_ctx_
(),
get_table_param_
(),
allocator_
(
"ObLocalScan"
,
OB_MALLOC_NORMAL_BLOCK_SIZE
,
MTL_ID
()
),
calc_buf_
(
ObModIds
::
OB_SQL_EXPR_CALC
),
col_params_
(),
read_info_
(),
exist_column_mapping_
(
allocator_
),
checksum_calculator_
()
{}
...
...
@@ -1933,7 +1939,7 @@ ObRemoteScan::ObRemoteScan()
row_with_reshape_
(),
res_
(),
result_
(
nullptr
),
allocator_
(
"DDLRemoteScan"
),
allocator_
(
"DDLRemoteScan"
,
OB_MALLOC_NORMAL_BLOCK_SIZE
,
MTL_ID
()
),
org_col_ids_
(),
column_names_
(),
checksum_calculator_
()
...
...
src/storage/ddl/ob_complement_data_task.h
浏览文件 @
73d0496c
...
...
@@ -43,8 +43,9 @@ public:
is_inited_
(
false
),
orig_tenant_id_
(
common
::
OB_INVALID_TENANT_ID
),
dest_tenant_id_
(
common
::
OB_INVALID_TENANT_ID
),
orig_ls_id_
(
share
::
ObLSID
::
INVALID_LS_ID
),
dest_ls_id_
(
share
::
ObLSID
::
INVALID_LS_ID
),
orig_table_id_
(
common
::
OB_INVALID_ID
),
dest_table_id_
(
common
::
OB_INVALID_ID
),
orig_tablet_id_
(
ObTabletID
::
INVALID_TABLET_ID
),
dest_tablet_id_
(
ObTabletID
::
INVALID_TABLET_ID
),
allocator_
(
"CompleteDataPar"
),
row_store_type_
(
common
::
ENCODING_ROW_STORE
),
orig_schema_version_
(
0
),
dest_schema_version_
(
0
),
snapshot_version_
(
0
),
concurrent_cnt_
(
0
),
task_id_
(
0
),
execution_id_
(
-
1
),
tablet_task_id_
(
0
),
compat_mode_
(
lib
::
Worker
::
CompatMode
::
INVALID
),
data_format_version_
(
0
)
row_store_type_
(
common
::
ENCODING_ROW_STORE
),
orig_schema_version_
(
0
),
dest_schema_version_
(
0
),
snapshot_version_
(
0
),
concurrent_cnt_
(
0
),
task_id_
(
0
),
execution_id_
(
-
1
),
tablet_task_id_
(
0
),
compat_mode_
(
lib
::
Worker
::
CompatMode
::
INVALID
),
data_format_version_
(
0
),
allocator_
(
"CompleteDataPar"
,
OB_MALLOC_NORMAL_BLOCK_SIZE
,
MTL_ID
())
{}
~
ObComplementDataParam
()
{
destroy
();
}
int
init
(
const
ObDDLBuildSingleReplicaRequestArg
&
arg
);
...
...
@@ -99,7 +100,6 @@ public:
uint64_t
dest_table_id_
;
ObTabletID
orig_tablet_id_
;
ObTabletID
dest_tablet_id_
;
common
::
ObArenaAllocator
allocator_
;
common
::
ObRowStoreType
row_store_type_
;
int64_t
orig_schema_version_
;
int64_t
dest_schema_version_
;
...
...
@@ -111,6 +111,8 @@ public:
lib
::
Worker
::
CompatMode
compat_mode_
;
int64_t
data_format_version_
;
ObSEArray
<
common
::
ObStoreRange
,
32
>
ranges_
;
private:
common
::
ObArenaAllocator
allocator_
;
};
struct
ObComplementDataContext
final
...
...
@@ -118,8 +120,9 @@ struct ObComplementDataContext final
public:
ObComplementDataContext
()
:
is_inited_
(
false
),
is_major_sstable_exist_
(
false
),
complement_data_ret_
(
common
::
OB_SUCCESS
),
allocator_
(
"CompleteDataCtx"
),
lock_
(
ObLatchIds
::
COMPLEMENT_DATA_CONTEXT_LOCK
),
concurrent_cnt_
(
0
),
data_sstable_redo_writer_
(),
index_builder_
(
nullptr
),
ddl_kv_mgr_handle_
(),
row_scanned_
(
0
),
row_inserted_
(
0
)
lock_
(
ObLatchIds
::
COMPLEMENT_DATA_CONTEXT_LOCK
),
concurrent_cnt_
(
0
),
data_sstable_redo_writer_
(),
index_builder_
(
nullptr
),
ddl_kv_mgr_handle_
(),
row_scanned_
(
0
),
row_inserted_
(
0
),
allocator_
(
"CompleteDataCtx"
,
OB_MALLOC_NORMAL_BLOCK_SIZE
,
MTL_ID
())
{}
~
ObComplementDataContext
()
{
destroy
();
}
int
init
(
const
ObComplementDataParam
&
param
,
const
ObDataStoreDesc
&
desc
);
...
...
@@ -132,7 +135,6 @@ public:
bool
is_inited_
;
bool
is_major_sstable_exist_
;
int
complement_data_ret_
;
common
::
ObArenaAllocator
allocator_
;
ObSpinLock
lock_
;
int64_t
concurrent_cnt_
;
ObDDLSSTableRedoWriter
data_sstable_redo_writer_
;
...
...
@@ -142,6 +144,8 @@ public:
int64_t
row_inserted_
;
ObArray
<
int64_t
>
report_col_checksums_
;
ObArray
<
int64_t
>
report_col_ids_
;
private:
common
::
ObArenaAllocator
allocator_
;
};
class
ObComplementPrepareTask
;
...
...
@@ -215,6 +219,7 @@ private:
private:
static
const
int64_t
RETRY_INTERVAL
=
100
*
1000
;
// 100ms
common
::
ObArenaAllocator
allocator_
;
bool
is_inited_
;
int64_t
task_id_
;
ObComplementDataParam
*
param_
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录