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


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new 7d901da874f Pick "[enhencement](RowsetWriter) Don't delete files when 
beta rowset writer destructed #25578" (#25746)
7d901da874f is described below

commit 7d901da874f4cdc89252d95534298ac38f51621a
Author: AlexYue <[email protected]>
AuthorDate: Mon Oct 23 17:53:59 2023 +0800

    Pick "[enhencement](RowsetWriter) Don't delete files when beta rowset 
writer destructed #25578" (#25746)
---
 be/src/olap/rowset/beta_rowset_writer.cpp          | 8 ++++----
 be/src/olap/rowset/vertical_beta_rowset_writer.cpp | 9 ++++-----
 2 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/be/src/olap/rowset/beta_rowset_writer.cpp 
b/be/src/olap/rowset/beta_rowset_writer.cpp
index f048a02ffe1..5379ed65f1e 100644
--- a/be/src/olap/rowset/beta_rowset_writer.cpp
+++ b/be/src/olap/rowset/beta_rowset_writer.cpp
@@ -20,6 +20,7 @@
 #include <assert.h>
 // IWYU pragma: no_include <bthread/errno.h>
 #include <errno.h> // IWYU pragma: keep
+#include <fmt/format.h>
 #include <stdio.h>
 
 #include <ctime> // time
@@ -33,7 +34,6 @@
 #include "common/config.h"
 #include "common/logging.h"
 #include "gutil/integral_types.h"
-#include "gutil/strings/substitute.h"
 #include "io/fs/file_reader.h"
 #include "io/fs/file_reader_options.h"
 #include "io/fs/file_system.h"
@@ -87,8 +87,8 @@ BetaRowsetWriter::~BetaRowsetWriter() {
     // TODO(lingbin): Should wrapper exception logic, no need to know file ops 
directly.
     if (!_already_built) {       // abnormal exit, remove all files generated
         _segment_writer.reset(); // ensure all files are closed
-        auto fs = _rowset_meta->fs();
-        if (!fs) {
+        const auto& fs = _rowset_meta->fs();
+        if (!fs || !_rowset_meta->is_local()) { // Remote fs will delete them 
asynchronously
             return;
         }
         auto max_segment_id = std::max(_num_segment.load(), 
_next_segment_id.load());
@@ -99,7 +99,7 @@ BetaRowsetWriter::~BetaRowsetWriter() {
             // will be cleaned up by the GC background. So here we only print 
the error
             // message when we encounter an error.
             WARN_IF_ERROR(fs->delete_file(seg_path),
-                          strings::Substitute("Failed to delete file=$0", 
seg_path));
+                          fmt::format("Failed to delete file={}", seg_path));
         }
     }
 }
diff --git a/be/src/olap/rowset/vertical_beta_rowset_writer.cpp 
b/be/src/olap/rowset/vertical_beta_rowset_writer.cpp
index 4ae2ee017f6..10cef8e1675 100644
--- a/be/src/olap/rowset/vertical_beta_rowset_writer.cpp
+++ b/be/src/olap/rowset/vertical_beta_rowset_writer.cpp
@@ -17,6 +17,7 @@
 
 #include "olap/rowset/vertical_beta_rowset_writer.h"
 
+#include <fmt/format.h>
 #include <gen_cpp/olap_file.pb.h>
 
 #include <algorithm>
@@ -29,7 +30,6 @@
 // IWYU pragma: no_include <opentelemetry/common/threadlocal.h>
 #include "common/compiler_util.h" // IWYU pragma: keep
 #include "common/logging.h"
-#include "gutil/strings/substitute.h"
 #include "io/fs/file_reader_writer_fwd.h"
 #include "io/fs/file_system.h"
 #include "io/fs/file_writer.h"
@@ -45,8 +45,8 @@ using namespace ErrorCode;
 
 VerticalBetaRowsetWriter::~VerticalBetaRowsetWriter() {
     if (!_already_built) {
-        auto fs = _rowset_meta->fs();
-        if (!fs) {
+        const auto& fs = _rowset_meta->fs();
+        if (!fs || !_rowset_meta->is_local()) { // Remote fs will delete them 
asynchronously
             return;
         }
         for (auto& segment_writer : _segment_writers) {
@@ -57,8 +57,7 @@ VerticalBetaRowsetWriter::~VerticalBetaRowsetWriter() {
             // Even if an error is encountered, these files that have not been 
cleaned up
             // will be cleaned up by the GC background. So here we only print 
the error
             // message when we encounter an error.
-            WARN_IF_ERROR(fs->delete_file(path),
-                          strings::Substitute("Failed to delete file=$0", 
path));
+            WARN_IF_ERROR(fs->delete_file(path), fmt::format("Failed to delete 
file={}", path));
         }
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to