[hotfix](memtracker) Fix expired DCHECK(_limit != -1); and segment_meta_mem_tracker inelegant end (#14223)
This commit is contained in:
@ -79,7 +79,8 @@ Segment::Segment(uint32_t segment_id, RowsetId rowset_id, TabletSchemaSPtr table
|
||||
|
||||
Segment::~Segment() {
|
||||
#ifndef BE_TEST
|
||||
StorageEngine::instance()->segment_meta_mem_tracker()->release(_meta_mem_usage);
|
||||
if (StorageEngine::instance())
|
||||
StorageEngine::instance()->segment_meta_mem_tracker()->release(_meta_mem_usage);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -149,7 +150,8 @@ Status Segment::_parse_footer() {
|
||||
_file_reader->path().native(), file_size, 12 + footer_length);
|
||||
}
|
||||
_meta_mem_usage += footer_length;
|
||||
StorageEngine::instance()->segment_meta_mem_tracker()->consume(footer_length);
|
||||
if (StorageEngine::instance())
|
||||
StorageEngine::instance()->segment_meta_mem_tracker()->consume(footer_length);
|
||||
|
||||
std::string footer_buf;
|
||||
footer_buf.resize(footer_length);
|
||||
@ -214,7 +216,8 @@ Status Segment::load_index() {
|
||||
DCHECK(footer.has_short_key_page_footer());
|
||||
|
||||
_meta_mem_usage += body.get_size();
|
||||
StorageEngine::instance()->segment_meta_mem_tracker()->consume(body.get_size());
|
||||
if (StorageEngine::instance())
|
||||
StorageEngine::instance()->segment_meta_mem_tracker()->consume(body.get_size());
|
||||
_sk_index_decoder.reset(new ShortKeyIndexDecoder);
|
||||
return _sk_index_decoder->parse(body, footer.short_key_page_footer());
|
||||
}
|
||||
|
||||
@ -108,7 +108,7 @@ StorageEngine::StorageEngine(const EngineOptions& options)
|
||||
_is_all_cluster_id_exist(true),
|
||||
_mem_tracker(std::make_shared<MemTracker>("StorageEngine")),
|
||||
_segcompaction_mem_tracker(std::make_shared<MemTracker>("SegCompaction")),
|
||||
_segment_meta_mem_tracker(std::make_unique<MemTracker>("SegmentMeta")),
|
||||
_segment_meta_mem_tracker(std::make_shared<MemTracker>("SegmentMeta")),
|
||||
_stop_background_threads_latch(1),
|
||||
_tablet_manager(new TabletManager(config::tablet_map_shard_size)),
|
||||
_txn_manager(new TxnManager(config::txn_map_shard_size, config::txn_shard_size)),
|
||||
@ -146,6 +146,7 @@ StorageEngine::~StorageEngine() {
|
||||
if (_tablet_meta_checkpoint_thread_pool) {
|
||||
_tablet_meta_checkpoint_thread_pool->shutdown();
|
||||
}
|
||||
_s_instance = nullptr;
|
||||
}
|
||||
|
||||
void StorageEngine::load_data_dirs(const std::vector<DataDir*>& data_dirs) {
|
||||
|
||||
@ -179,7 +179,7 @@ public:
|
||||
|
||||
Status get_compaction_status_json(std::string* result);
|
||||
|
||||
MemTracker* segment_meta_mem_tracker() { return _segment_meta_mem_tracker.get(); }
|
||||
std::shared_ptr<MemTracker> segment_meta_mem_tracker() { return _segment_meta_mem_tracker; }
|
||||
std::shared_ptr<MemTracker> segcompaction_mem_tracker() { return _segcompaction_mem_tracker; }
|
||||
|
||||
// check cumulative compaction config
|
||||
@ -329,7 +329,7 @@ private:
|
||||
std::shared_ptr<MemTracker> _segcompaction_mem_tracker;
|
||||
// This mem tracker is only for tracking memory use by segment meta data such as footer or index page.
|
||||
// The memory consumed by querying is tracked in segment iterator.
|
||||
std::unique_ptr<MemTracker> _segment_meta_mem_tracker;
|
||||
std::shared_ptr<MemTracker> _segment_meta_mem_tracker;
|
||||
|
||||
CountDownLatch _stop_background_threads_latch;
|
||||
scoped_refptr<Thread> _unused_rowset_monitor_thread;
|
||||
|
||||
@ -207,7 +207,6 @@ void MemTrackerLimiter::print_log_process_usage(const std::string& msg) {
|
||||
|
||||
std::string MemTrackerLimiter::mem_limit_exceeded(const std::string& msg,
|
||||
const std::string& limit_exceeded_errmsg) {
|
||||
DCHECK(_limit != -1);
|
||||
STOP_CHECK_THREAD_MEM_TRACKER_LIMIT();
|
||||
std::string detail = fmt::format(
|
||||
"Memory limit exceeded:<consuming tracker:<{}>, {}>, executing msg:<{}>. backend {} "
|
||||
|
||||
Reference in New Issue
Block a user