You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by kx...@apache.org on 2023/10/22 16:58:17 UTC
[doris] 30/31: Revert "[fix](be) Make DorisCallOnce's function exception-safe (#25579)"
This is an automated email from the ASF dual-hosted git repository.
kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git
commit b3dab2d88d55dc6382751ef4e1b5f401efb3c854
Author: Kang <kx...@gmail.com>
AuthorDate: Mon Oct 23 00:50:50 2023 +0800
Revert "[fix](be) Make DorisCallOnce's function exception-safe (#25579)"
This reverts commit b8f1f7520723ca489680e94c7f263ccd81cf05a9.
---
be/src/olap/rowset/segment_v2/segment.cpp | 34 ++++------------------
be/src/olap/rowset/segment_v2/segment.h | 4 ---
be/src/olap/rowset/segment_v2/segment_iterator.cpp | 15 ++--------
be/src/olap/rowset/segment_v2/segment_iterator.h | 2 +-
be/src/util/once.h | 3 +-
5 files changed, 10 insertions(+), 48 deletions(-)
diff --git a/be/src/olap/rowset/segment_v2/segment.cpp b/be/src/olap/rowset/segment_v2/segment.cpp
index 5d5a49034c2..991518347c9 100644
--- a/be/src/olap/rowset/segment_v2/segment.cpp
+++ b/be/src/olap/rowset/segment_v2/segment.cpp
@@ -253,26 +253,12 @@ Status Segment::_load_pk_bloom_filter() {
DCHECK(_tablet_schema->keys_type() == UNIQUE_KEYS);
DCHECK(_pk_index_meta != nullptr);
DCHECK(_pk_index_reader != nullptr);
- auto status = [this]() {
- return _load_pk_bf_once.call([this] {
- RETURN_IF_ERROR(_pk_index_reader->parse_bf(_file_reader, *_pk_index_meta));
- _meta_mem_usage += _pk_index_reader->get_bf_memory_size();
- _segment_meta_mem_tracker->consume(_pk_index_reader->get_bf_memory_size());
- return Status::OK();
- });
- }();
- if (!status.ok()) {
- remove_from_segment_cache();
- }
- return status;
-}
-
-void Segment::remove_from_segment_cache() const {
- if (config::disable_segment_cache) {
- return;
- }
- SegmentCache::CacheKey cache_key(_rowset_id, _segment_id);
- SegmentLoader::instance()->erase_segment(cache_key);
+ return _load_pk_bf_once.call([this] {
+ RETURN_IF_ERROR(_pk_index_reader->parse_bf(_file_reader, *_pk_index_meta));
+ _meta_mem_usage += _pk_index_reader->get_bf_memory_size();
+ _segment_meta_mem_tracker->consume(_pk_index_reader->get_bf_memory_size());
+ return Status::OK();
+ });
}
Status Segment::load_pk_index_and_bf() {
@@ -281,14 +267,6 @@ Status Segment::load_pk_index_and_bf() {
return Status::OK();
}
Status Segment::load_index() {
- auto status = [this]() { return _load_index_impl(); }();
- if (!status.ok()) {
- remove_from_segment_cache();
- }
- return status;
-}
-
-Status Segment::_load_index_impl() {
return _load_index_once.call([this] {
if (_tablet_schema->keys_type() == UNIQUE_KEYS && _pk_index_meta != nullptr) {
_pk_index_reader.reset(new PrimaryKeyIndexReader());
diff --git a/be/src/olap/rowset/segment_v2/segment.h b/be/src/olap/rowset/segment_v2/segment.h
index 34b41843aa1..38f5a4acbf7 100644
--- a/be/src/olap/rowset/segment_v2/segment.h
+++ b/be/src/olap/rowset/segment_v2/segment.h
@@ -129,8 +129,6 @@ public:
int64_t meta_mem_usage() const { return _meta_mem_usage; }
- void remove_from_segment_cache() const;
-
private:
DISALLOW_COPY_AND_ASSIGN(Segment);
Segment(uint32_t segment_id, RowsetId rowset_id, TabletSchemaSPtr tablet_schema);
@@ -140,8 +138,6 @@ private:
Status _create_column_readers(const SegmentFooterPB& footer);
Status _load_pk_bloom_filter();
- Status _load_index_impl();
-
private:
friend class SegmentIterator;
io::FileReaderSPtr _file_reader;
diff --git a/be/src/olap/rowset/segment_v2/segment_iterator.cpp b/be/src/olap/rowset/segment_v2/segment_iterator.cpp
index 9cc94adf47f..548de6a15dd 100644
--- a/be/src/olap/rowset/segment_v2/segment_iterator.cpp
+++ b/be/src/olap/rowset/segment_v2/segment_iterator.cpp
@@ -212,14 +212,6 @@ SegmentIterator::SegmentIterator(std::shared_ptr<Segment> segment, SchemaSPtr sc
_pool(new ObjectPool) {}
Status SegmentIterator::init(const StorageReadOptions& opts) {
- auto status = _init_impl(opts);
- if (!status.ok() && !config::disable_segment_cache) {
- _segment->remove_from_segment_cache();
- }
- return status;
-}
-
-Status SegmentIterator::_init_impl(const StorageReadOptions& opts) {
// get file handle from file descriptor of segment
if (_inited) {
return Status::OK();
@@ -1779,11 +1771,8 @@ Status SegmentIterator::_read_columns_by_rowids(std::vector<ColumnId>& read_colu
}
Status SegmentIterator::next_batch(vectorized::Block* block) {
- auto status = [&]() { RETURN_IF_CATCH_EXCEPTION({ return _next_batch_internal(block); }); }();
- if (!status.ok()) {
- _segment->remove_from_segment_cache();
- }
- return status;
+ RETURN_IF_CATCH_EXCEPTION({ return _next_batch_internal(block); });
+ return Status::OK();
}
Status SegmentIterator::_next_batch_internal(vectorized::Block* block) {
diff --git a/be/src/olap/rowset/segment_v2/segment_iterator.h b/be/src/olap/rowset/segment_v2/segment_iterator.h
index d53ad9d62b0..a44d0b6ebae 100644
--- a/be/src/olap/rowset/segment_v2/segment_iterator.h
+++ b/be/src/olap/rowset/segment_v2/segment_iterator.h
@@ -152,7 +152,7 @@ private:
}
[[nodiscard]] Status _lazy_init();
- [[nodiscard]] Status _init_impl(const StorageReadOptions& opts);
+
[[nodiscard]] Status _init_return_column_iterators();
[[nodiscard]] Status _init_bitmap_index_iterators();
[[nodiscard]] Status _init_inverted_index_iterators();
diff --git a/be/src/util/once.h b/be/src/util/once.h
index 371fb7daea6..7753dc18b23 100644
--- a/be/src/util/once.h
+++ b/be/src/util/once.h
@@ -22,7 +22,6 @@
#include <atomic>
-#include "common/exception.h"
#include "olap/olap_common.h"
#include "util/lock.h"
@@ -61,7 +60,7 @@ public:
std::lock_guard l(_mutex);
if (_has_called.load(std::memory_order_acquire)) break;
- _status = [&]() { RETURN_IF_CATCH_EXCEPTION({ return fn(); }); }();
+ _status = fn();
_has_called.store(true, std::memory_order_release);
} while (false);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org