@@ -146,23 +146,26 @@ Status BetaRowset::get_segments_size(std::vector<size_t>* segments_size) {
146
146
return Status::OK ();
147
147
}
148
148
149
- Status BetaRowset::load_segments (std::vector<segment_v2::SegmentSharedPtr>* segments) {
150
- return load_segments (0 , num_segments (), segments);
149
+ Status BetaRowset::load_segments (std::vector<segment_v2::SegmentSharedPtr>* segments,
150
+ bool disable_file_cache) {
151
+ return load_segments (0 , num_segments (), segments, disable_file_cache);
151
152
}
152
153
153
154
Status BetaRowset::load_segments (int64_t seg_id_begin, int64_t seg_id_end,
154
- std::vector<segment_v2::SegmentSharedPtr>* segments) {
155
+ std::vector<segment_v2::SegmentSharedPtr>* segments,
156
+ bool disable_file_cache) {
155
157
int64_t seg_id = seg_id_begin;
156
158
while (seg_id < seg_id_end) {
157
159
std::shared_ptr<segment_v2::Segment> segment;
158
- RETURN_IF_ERROR (load_segment (seg_id, &segment));
160
+ RETURN_IF_ERROR (load_segment (seg_id, &segment, disable_file_cache ));
159
161
segments->push_back (std::move (segment));
160
162
seg_id++;
161
163
}
162
164
return Status::OK ();
163
165
}
164
166
165
- Status BetaRowset::load_segment (int64_t seg_id, segment_v2::SegmentSharedPtr* segment) {
167
+ Status BetaRowset::load_segment (int64_t seg_id, segment_v2::SegmentSharedPtr* segment,
168
+ bool disable_file_cache) {
166
169
auto fs = _rowset_meta->fs ();
167
170
if (!fs) {
168
171
return Status::Error<INIT_FAILED>(" get fs failed" );
@@ -171,11 +174,13 @@ Status BetaRowset::load_segment(int64_t seg_id, segment_v2::SegmentSharedPtr* se
171
174
DCHECK (seg_id >= 0 );
172
175
auto seg_path = DORIS_TRY (segment_path (seg_id));
173
176
io::FileReaderOptions reader_options {
174
- .cache_type = config::enable_file_cache ? io::FileCachePolicy::FILE_BLOCK_CACHE
175
- : io::FileCachePolicy::NO_CACHE,
177
+ .cache_type = !disable_file_cache && config::enable_file_cache
178
+ ? io::FileCachePolicy::FILE_BLOCK_CACHE
179
+ : io::FileCachePolicy::NO_CACHE,
176
180
.is_doris_table = true ,
177
181
.file_size = _rowset_meta->segment_file_size (seg_id),
178
182
};
183
+
179
184
auto s = segment_v2::Segment::open (fs, seg_path, seg_id, rowset_id (), _schema, reader_options,
180
185
segment);
181
186
if (!s.ok ()) {
0 commit comments