make sure that all data or meta written on the macro block is flushed before write create_tablet_slog
This commit is contained in:
@ -956,11 +956,6 @@ int ObLocalDevice::pwrite(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (OB_SUCC(ret)) {
|
|
||||||
if (OB_FAIL(this->fsync_block())) {
|
|
||||||
SHARE_LOG(WARN, "fsync fail", K(ret), K(write_size), K(offset), K(size), KP(buf));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -39,6 +39,8 @@ int ObTabletSlogHelper::write_create_tablet_slog(
|
|||||||
if (OB_UNLIKELY(!tablet_handle.is_valid())) {
|
if (OB_UNLIKELY(!tablet_handle.is_valid())) {
|
||||||
ret = OB_INVALID_ARGUMENT;
|
ret = OB_INVALID_ARGUMENT;
|
||||||
LOG_WARN("invalid args", K(ret), K(tablet_handle));
|
LOG_WARN("invalid args", K(ret), K(tablet_handle));
|
||||||
|
} else if (OB_FAIL(THE_IO_DEVICE->fsync_block())) { // make sure that all data or meta written on the macro block is flushed
|
||||||
|
LOG_WARN("fail to fsync_block", K(ret));
|
||||||
} else {
|
} else {
|
||||||
ObCreateTabletLog slog_entry(tablet_handle.get_obj());
|
ObCreateTabletLog slog_entry(tablet_handle.get_obj());
|
||||||
ObStorageLogParam log_param;
|
ObStorageLogParam log_param;
|
||||||
@ -95,6 +97,8 @@ int ObTabletSlogHelper::write_create_tablet_slog(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (OB_FAIL(ret)) {
|
if (OB_FAIL(ret)) {
|
||||||
|
} else if (OB_FAIL(THE_IO_DEVICE->fsync_block())) { // make sure that all data or meta written on the macro block is flushed
|
||||||
|
LOG_WARN("fail to fsync_block", K(ret));
|
||||||
} else if (OB_FAIL(MTL(ObStorageLogger*)->write_log(param_array))) {
|
} else if (OB_FAIL(MTL(ObStorageLogger*)->write_log(param_array))) {
|
||||||
LOG_WARN("fail to write slog for batch creating tablet", K(ret), K(param_array));
|
LOG_WARN("fail to write slog for batch creating tablet", K(ret), K(param_array));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user