Skip to content

Commit d770dc0

Browse files
felixwluodataroaring
authored andcommitted
save
1 parent 82c04b1 commit d770dc0

File tree

2 files changed

+17
-10
lines changed

2 files changed

+17
-10
lines changed

be/src/runtime/load_stream_writer.cpp

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,15 @@ Status LoadStreamWriter::init() {
9595
{ return Status::InternalError("fault injection"); });
9696
RETURN_IF_ERROR(_rowset_builder->init());
9797
_rowset_writer = _rowset_builder->rowset_writer();
98+
99+
auto tablet_res = ExecEnv::get_tablet(_req.tablet_id);
100+
if (tablet_res.has_value()) {
101+
auto tablet = std::dynamic_pointer_cast<Tablet>(tablet_res.value());
102+
if (tablet && tablet->data_dir()) {
103+
_data_dir = tablet->data_dir();
104+
}
105+
}
106+
98107
_is_init = true;
99108
return Status::OK();
100109
}
@@ -109,16 +118,12 @@ Status LoadStreamWriter::append_data(uint32_t segid, uint64_t offset, butil::IOB
109118
return Status::Corruption("append_data failed, LoadStreamWriter is not inited");
110119
}
111120

112-
auto tablet_res = ExecEnv::get_tablet(_req.tablet_id);
113-
if (tablet_res.has_value()) {
114-
auto tablet = std::dynamic_pointer_cast<Tablet>(tablet_res.value());
115-
if (tablet && tablet->data_dir()) {
116-
int64_t incoming_data_size = static_cast<int64_t>(buf.size());
117-
if (tablet->data_dir()->reach_capacity_limit(incoming_data_size)) {
118-
return Status::Error<ErrorCode::DISK_REACH_CAPACITY_LIMIT>(
119-
"disk {} exceed capacity limit when writing stream data, tablet_id={}",
120-
tablet->data_dir()->path_hash(), _req.tablet_id);
121-
}
121+
if (_data_dir) {
122+
int64_t incoming_data_size = static_cast<int64_t>(buf.size());
123+
if (_data_dir->reach_capacity_limit(incoming_data_size)) {
124+
return Status::Error<ErrorCode::DISK_REACH_CAPACITY_LIMIT>(
125+
"disk {} exceed capacity limit when writing stream data, tablet_id={}",
126+
_data_dir->path_hash(), _req.tablet_id);
122127
}
123128
}
124129

be/src/runtime/load_stream_writer.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class SlotDescriptor;
3838
class OlapTableSchemaParam;
3939
class RowsetWriter;
4040
class RuntimeProfile;
41+
class DataDir;
4142
struct SegmentStatistics;
4243
using SegmentStatisticsSharedPtr = std::shared_ptr<SegmentStatistics>;
4344
class BaseRowsetBuilder;
@@ -89,6 +90,7 @@ class LoadStreamWriter {
8990
std::vector<io::FileWriterPtr> _segment_file_writers;
9091
std::vector<io::FileWriterPtr> _inverted_file_writers;
9192
std::shared_ptr<ResourceContext> _resource_ctx;
93+
DataDir* _data_dir = nullptr;
9294
};
9395

9496
using LoadStreamWriterSharedPtr = std::shared_ptr<LoadStreamWriter>;

0 commit comments

Comments
 (0)