This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new ad68764977 [enhancement](tablet) Unify redundant 
`create_rowset_writer` methods (#15519)
ad68764977 is described below

commit ad6876497778ba5113eb9edfbae2c9b6ea3dce26
Author: plat1ko <[email protected]>
AuthorDate: Fri Dec 30 22:57:12 2022 +0800

    [enhancement](tablet) Unify redundant `create_rowset_writer` methods 
(#15519)
    
    * Remove redundant create_rowset_writer methods
    
    * Set resource id when setting FS in rowset meta
    
    * fix
    
    * fix ut
---
 be/src/http/action/pad_rowset_action.cpp      |  8 +++-
 be/src/io/fs/local_file_system.cpp            |  2 +-
 be/src/io/fs/local_file_system.h              |  2 +-
 be/src/olap/compaction.cpp                    | 16 ++++---
 be/src/olap/delta_writer.cpp                  | 11 +++--
 be/src/olap/merger.cpp                        |  1 +
 be/src/olap/push_handler.cpp                  | 18 ++++++--
 be/src/olap/rowset/beta_rowset_writer.cpp     | 11 +----
 be/src/olap/rowset/beta_rowset_writer.h       |  1 +
 be/src/olap/rowset/rowset_meta.h              | 11 +++--
 be/src/olap/rowset/rowset_writer_context.h    | 33 +++-----------
 be/src/olap/schema_change.cpp                 | 25 +++++++----
 be/src/olap/tablet.cpp                        | 65 +++++----------------------
 be/src/olap/tablet.h                          | 21 +--------
 be/test/olap/rowid_conversion_test.cpp        |  7 +--
 be/test/vec/olap/vertical_compaction_test.cpp |  7 +--
 16 files changed, 90 insertions(+), 149 deletions(-)

diff --git a/be/src/http/action/pad_rowset_action.cpp 
b/be/src/http/action/pad_rowset_action.cpp
index df2721f50b..da513750a9 100644
--- a/be/src/http/action/pad_rowset_action.cpp
+++ b/be/src/http/action/pad_rowset_action.cpp
@@ -86,8 +86,12 @@ Status PadRowsetAction::_pad_rowset(TabletSharedPtr tablet, 
const Version& versi
     }
 
     std::unique_ptr<RowsetWriter> writer;
-    RETURN_IF_ERROR(tablet->create_rowset_writer(version, VISIBLE, 
NONOVERLAPPING,
-                                                 tablet->tablet_schema(), -1, 
-1, &writer));
+    RowsetWriterContext ctx;
+    ctx.version = version;
+    ctx.rowset_state = VISIBLE;
+    ctx.segments_overlap = NONOVERLAPPING;
+    ctx.tablet_schema = tablet->tablet_schema();
+    RETURN_IF_ERROR(tablet->create_rowset_writer(ctx, &writer));
     auto rowset = writer->build();
     rowset->make_visible(version);
 
diff --git a/be/src/io/fs/local_file_system.cpp 
b/be/src/io/fs/local_file_system.cpp
index c1b062601c..051c56a1ad 100644
--- a/be/src/io/fs/local_file_system.cpp
+++ b/be/src/io/fs/local_file_system.cpp
@@ -144,7 +144,7 @@ Status LocalFileSystem::list(const Path& path, 
std::vector<Path>* files) {
 
 static FileSystemSPtr local_fs = std::make_shared<io::LocalFileSystem>("");
 
-FileSystemSPtr global_local_filesystem() {
+const FileSystemSPtr& global_local_filesystem() {
     return local_fs;
 }
 
diff --git a/be/src/io/fs/local_file_system.h b/be/src/io/fs/local_file_system.h
index 92c6944ab8..6d7803c375 100644
--- a/be/src/io/fs/local_file_system.h
+++ b/be/src/io/fs/local_file_system.h
@@ -55,7 +55,7 @@ private:
     Path absolute_path(const Path& path) const;
 };
 
-FileSystemSPtr global_local_filesystem();
+const FileSystemSPtr& global_local_filesystem();
 
 } // namespace io
 } // namespace doris
diff --git a/be/src/olap/compaction.cpp b/be/src/olap/compaction.cpp
index 50632ac71b..d7627afeee 100644
--- a/be/src/olap/compaction.cpp
+++ b/be/src/olap/compaction.cpp
@@ -22,6 +22,7 @@
 #include "olap/rowset/beta_rowset.h"
 #include "olap/rowset/rowset.h"
 #include "olap/rowset/rowset_meta.h"
+#include "olap/rowset/rowset_writer_context.h"
 #include "olap/tablet.h"
 #include "olap/task/engine_checksum_task.h"
 #include "util/time.h"
@@ -357,14 +358,17 @@ Status Compaction::do_compaction_impl(int64_t permits) {
 }
 
 Status Compaction::construct_output_rowset_writer(bool is_vertical) {
+    RowsetWriterContext ctx;
+    ctx.version = _output_version;
+    ctx.rowset_state = VISIBLE;
+    ctx.segments_overlap = NONOVERLAPPING;
+    ctx.tablet_schema = _cur_tablet_schema;
+    ctx.oldest_write_timestamp = _oldest_write_timestamp;
+    ctx.newest_write_timestamp = _newest_write_timestamp;
     if (is_vertical) {
-        return _tablet->create_vertical_rowset_writer(_output_version, 
VISIBLE, NONOVERLAPPING,
-                                                      _cur_tablet_schema, 
_oldest_write_timestamp,
-                                                      _newest_write_timestamp, 
&_output_rs_writer);
+        return _tablet->create_vertical_rowset_writer(ctx, &_output_rs_writer);
     }
-    return _tablet->create_rowset_writer(_output_version, VISIBLE, 
NONOVERLAPPING,
-                                         _cur_tablet_schema, 
_oldest_write_timestamp,
-                                         _newest_write_timestamp, 
&_output_rs_writer);
+    return _tablet->create_rowset_writer(ctx, &_output_rs_writer);
 }
 
 Status Compaction::construct_input_rowset_readers() {
diff --git a/be/src/olap/delta_writer.cpp b/be/src/olap/delta_writer.cpp
index eda2332650..0d35a4b49c 100644
--- a/be/src/olap/delta_writer.cpp
+++ b/be/src/olap/delta_writer.cpp
@@ -22,6 +22,7 @@
 #include "olap/data_dir.h"
 #include "olap/memtable.h"
 #include "olap/memtable_flush_executor.h"
+#include "olap/rowset/rowset_writer_context.h"
 #include "olap/schema.h"
 #include "olap/schema_change.h"
 #include "olap/storage_engine.h"
@@ -135,9 +136,13 @@ Status DeltaWriter::init() {
     // build tablet schema in request level
     _build_current_tablet_schema(_req.index_id, _req.ptable_schema_param,
                                  *_tablet->tablet_schema());
-
-    RETURN_NOT_OK(_tablet->create_rowset_writer(_req.txn_id, _req.load_id, 
PREPARED, OVERLAPPING,
-                                                _tablet_schema, 
&_rowset_writer));
+    RowsetWriterContext context;
+    context.txn_id = _req.txn_id;
+    context.load_id = _req.load_id;
+    context.rowset_state = PREPARED;
+    context.segments_overlap = OVERLAPPING;
+    context.tablet_schema = _tablet_schema;
+    RETURN_NOT_OK(_tablet->create_rowset_writer(context, &_rowset_writer));
     _schema.reset(new Schema(_tablet_schema));
     _reset_mem_table();
 
diff --git a/be/src/olap/merger.cpp b/be/src/olap/merger.cpp
index 9cb79fce6f..595158a7ee 100644
--- a/be/src/olap/merger.cpp
+++ b/be/src/olap/merger.cpp
@@ -22,6 +22,7 @@
 
 #include "olap/olap_define.h"
 #include "olap/row_cursor.h"
+#include "olap/storage_engine.h"
 #include "olap/tablet.h"
 #include "util/trace.h"
 #include "vec/olap/block_reader.h"
diff --git a/be/src/olap/push_handler.cpp b/be/src/olap/push_handler.cpp
index 9b2c7149ed..3e8b457663 100644
--- a/be/src/olap/push_handler.cpp
+++ b/be/src/olap/push_handler.cpp
@@ -197,8 +197,13 @@ Status PushHandler::_convert_v2(TabletSharedPtr 
cur_tablet, RowsetSharedPtr* cur
         // but it depends on thirparty implementation, so we conservatively
         // set this value to OVERLAP_UNKNOWN
         std::unique_ptr<RowsetWriter> rowset_writer;
-        res = cur_tablet->create_rowset_writer(_request.transaction_id, 
load_id, PREPARED,
-                                               OVERLAP_UNKNOWN, tablet_schema, 
&rowset_writer);
+        RowsetWriterContext context;
+        context.txn_id = _request.transaction_id;
+        context.load_id = load_id;
+        context.rowset_state = PREPARED;
+        context.segments_overlap = OVERLAP_UNKNOWN;
+        context.tablet_schema = tablet_schema;
+        res = cur_tablet->create_rowset_writer(context, &rowset_writer);
         if (!res.ok()) {
             LOG(WARNING) << "failed to init rowset writer, tablet=" << 
cur_tablet->full_name()
                          << ", txn_id=" << _request.transaction_id << ", res=" 
<< res;
@@ -350,8 +355,13 @@ Status PushHandler::_convert(TabletSharedPtr cur_tablet, 
RowsetSharedPtr* cur_ro
 
         // 2. init RowsetBuilder of cur_tablet for current push
         std::unique_ptr<RowsetWriter> rowset_writer;
-        res = cur_tablet->create_rowset_writer(_request.transaction_id, 
load_id, PREPARED,
-                                               OVERLAP_UNKNOWN, tablet_schema, 
&rowset_writer);
+        RowsetWriterContext context;
+        context.txn_id = _request.transaction_id;
+        context.load_id = load_id;
+        context.rowset_state = PREPARED;
+        context.segments_overlap = OVERLAP_UNKNOWN;
+        context.tablet_schema = tablet_schema;
+        res = cur_tablet->create_rowset_writer(context, &rowset_writer);
         if (!res.ok()) {
             LOG(WARNING) << "failed to init rowset writer, tablet=" << 
cur_tablet->full_name()
                          << ", txn_id=" << _request.transaction_id << ", res=" 
<< res;
diff --git a/be/src/olap/rowset/beta_rowset_writer.cpp 
b/be/src/olap/rowset/beta_rowset_writer.cpp
index 4544dc7bb8..73acd4e18d 100644
--- a/be/src/olap/rowset/beta_rowset_writer.cpp
+++ b/be/src/olap/rowset/beta_rowset_writer.cpp
@@ -33,7 +33,7 @@
 #include "olap/rowset/beta_rowset.h"
 #include "olap/rowset/rowset_factory.h"
 #include "olap/rowset/segment_v2/segment_writer.h"
-//#include "olap/storage_engine.h"
+#include "olap/storage_engine.h"
 #include "runtime/exec_env.h"
 #include "runtime/memory/mem_tracker_limiter.h"
 
@@ -81,14 +81,7 @@ BetaRowsetWriter::~BetaRowsetWriter() {
 Status BetaRowsetWriter::init(const RowsetWriterContext& 
rowset_writer_context) {
     _context = rowset_writer_context;
     _rowset_meta.reset(new RowsetMeta);
-    if (_context.fs == nullptr && _context.data_dir) {
-        _rowset_meta->set_fs(_context.data_dir->fs());
-    } else {
-        _rowset_meta->set_fs(_context.fs);
-    }
-    if (_context.fs != nullptr && _context.fs->resource_id().size() > 0) {
-        _rowset_meta->set_resource_id(_context.fs->resource_id());
-    }
+    _rowset_meta->set_fs(_context.fs);
     _rowset_meta->set_rowset_id(_context.rowset_id);
     _rowset_meta->set_partition_id(_context.partition_id);
     _rowset_meta->set_tablet_id(_context.tablet_id);
diff --git a/be/src/olap/rowset/beta_rowset_writer.h 
b/be/src/olap/rowset/beta_rowset_writer.h
index d291253937..50f78dcf5a 100644
--- a/be/src/olap/rowset/beta_rowset_writer.h
+++ b/be/src/olap/rowset/beta_rowset_writer.h
@@ -18,6 +18,7 @@
 #pragma once
 
 #include "olap/rowset/rowset_writer.h"
+#include "segment_v2/segment.h"
 #include "vec/olap/vgeneric_iterators.h"
 
 namespace doris {
diff --git a/be/src/olap/rowset/rowset_meta.h b/be/src/olap/rowset/rowset_meta.h
index 1a7075ef65..5c6c296022 100644
--- a/be/src/olap/rowset/rowset_meta.h
+++ b/be/src/olap/rowset/rowset_meta.h
@@ -87,10 +87,10 @@ public:
     }
 
     // This method may return nullptr.
-    io::FileSystemSPtr fs() {
+    const io::FileSystemSPtr& fs() {
         if (!_fs) {
             if (is_local()) {
-                return io::global_local_filesystem();
+                _fs = io::global_local_filesystem();
             } else {
                 _fs = io::FileSystemMap::instance()->get(resource_id());
                 LOG_IF(WARNING, !_fs) << "Cannot get file system: " << 
resource_id();
@@ -99,7 +99,12 @@ public:
         return _fs;
     }
 
-    void set_fs(io::FileSystemSPtr fs) { _fs = std::move(fs); }
+    void set_fs(io::FileSystemSPtr fs) {
+        if (fs && fs->type() != io::FileSystemType::LOCAL) {
+            _rowset_meta_pb.set_resource_id(fs->resource_id());
+        }
+        _fs = std::move(fs);
+    }
 
     const io::ResourceId& resource_id() const { return 
_rowset_meta_pb.resource_id(); }
 
diff --git a/be/src/olap/rowset/rowset_writer_context.h 
b/be/src/olap/rowset/rowset_writer_context.h
index 53ef8e8d1b..b8aec49697 100644
--- a/be/src/olap/rowset/rowset_writer_context.h
+++ b/be/src/olap/rowset/rowset_writer_context.h
@@ -18,24 +18,21 @@
 #pragma once
 
 #include "gen_cpp/olap_file.pb.h"
-#include "olap/data_dir.h"
-#include "olap/storage_engine.h"
-#include "olap/tablet.h"
+#include "io/fs/file_system.h"
 #include "olap/tablet_schema.h"
 
 namespace doris {
 
 class RowsetWriterContextBuilder;
 using RowsetWriterContextBuilderSharedPtr = 
std::shared_ptr<RowsetWriterContextBuilder>;
+class DataDir;
 
 struct RowsetWriterContext {
     RowsetWriterContext()
             : tablet_id(0),
               tablet_schema_hash(0),
               partition_id(0),
-              rowset_type(ALPHA_ROWSET),
-              fs(nullptr),
-              tablet_schema(nullptr),
+              rowset_type(BETA_ROWSET),
               rowset_state(PREPARED),
               version(Version(0, 0)),
               txn_id(0),
@@ -45,33 +42,13 @@ struct RowsetWriterContext {
         load_id.set_lo(0);
     }
 
-    static RowsetWriterContext create(const Version& version, TabletSharedPtr 
new_tablet,
-                                      RowsetTypePB new_rowset_type,
-                                      SegmentsOverlapPB segments_overlap) {
-        RowsetWriterContext context;
-        context.rowset_id = StorageEngine::instance()->next_rowset_id();
-        context.tablet_uid = new_tablet->tablet_uid();
-        context.tablet_id = new_tablet->tablet_id();
-        context.partition_id = new_tablet->partition_id();
-        context.tablet_schema_hash = new_tablet->schema_hash();
-        context.rowset_type = new_rowset_type;
-        context.rowset_dir = new_tablet->tablet_path();
-        context.tablet_schema = new_tablet->tablet_schema();
-        context.data_dir = new_tablet->data_dir();
-        context.rowset_state = VISIBLE;
-        context.version = version;
-        context.segments_overlap = segments_overlap;
-
-        return context;
-    }
-
     RowsetId rowset_id;
     int64_t tablet_id;
     int64_t tablet_schema_hash;
     int64_t partition_id;
     RowsetTypePB rowset_type;
-    io::FileSystemSPtr fs = nullptr;
-    std::string rowset_dir = "";
+    io::FileSystemSPtr fs;
+    std::string rowset_dir;
     TabletSchemaSPtr tablet_schema;
     // PREPARED/COMMITTED for pending rowset
     // VISIBLE for non-pending rowset
diff --git a/be/src/olap/schema_change.cpp b/be/src/olap/schema_change.cpp
index ca566501dc..ab27b00289 100644
--- a/be/src/olap/schema_change.cpp
+++ b/be/src/olap/schema_change.cpp
@@ -540,9 +540,14 @@ Status VSchemaChangeWithSorting::_internal_sorting(
     MultiBlockMerger merger(new_tablet);
 
     std::unique_ptr<RowsetWriter> rowset_writer;
-    RETURN_IF_ERROR(new_tablet->create_rowset_writer(
-            version, VISIBLE, segments_overlap, new_tablet->tablet_schema(), 
oldest_write_timestamp,
-            newest_write_timestamp, &rowset_writer));
+    RowsetWriterContext context;
+    context.version = version;
+    context.rowset_state = VISIBLE;
+    context.segments_overlap = segments_overlap;
+    context.tablet_schema = new_tablet->tablet_schema();
+    context.oldest_write_timestamp = oldest_write_timestamp;
+    context.newest_write_timestamp = newest_write_timestamp;
+    RETURN_IF_ERROR(new_tablet->create_rowset_writer(context, &rowset_writer));
 
     Defer defer {[&]() {
         new_tablet->data_dir()->remove_pending_ids(ROWSET_ID_PREFIX +
@@ -1036,11 +1041,15 @@ Status 
SchemaChangeHandler::_convert_historical_rowsets(const SchemaChangeParams
         // When tablet create new rowset writer, it may change rowset type, in 
this case
         // linked schema change will not be used.
         std::unique_ptr<RowsetWriter> rowset_writer;
-        Status status = new_tablet->create_rowset_writer(
-                rs_reader->version(), VISIBLE,
-                rs_reader->rowset()->rowset_meta()->segments_overlap(), 
new_tablet->tablet_schema(),
-                rs_reader->oldest_write_timestamp(), 
rs_reader->newest_write_timestamp(),
-                rs_reader->rowset()->rowset_meta()->fs(), &rowset_writer);
+        RowsetWriterContext context;
+        context.version = rs_reader->version();
+        context.rowset_state = VISIBLE;
+        context.segments_overlap = 
rs_reader->rowset()->rowset_meta()->segments_overlap();
+        context.tablet_schema = new_tablet->tablet_schema();
+        context.oldest_write_timestamp = rs_reader->oldest_write_timestamp();
+        context.newest_write_timestamp = rs_reader->newest_write_timestamp();
+        context.fs = rs_reader->rowset()->rowset_meta()->fs();
+        Status status = new_tablet->create_rowset_writer(context, 
&rowset_writer);
         if (!status.ok()) {
             res = Status::Error<ROWSET_BUILDER_INIT>();
             return process_alter_exit();
diff --git a/be/src/olap/tablet.cpp b/be/src/olap/tablet.cpp
index 0d330d2f86..d1c3ac4029 100644
--- a/be/src/olap/tablet.cpp
+++ b/be/src/olap/tablet.cpp
@@ -1581,8 +1581,12 @@ Status Tablet::create_initial_rowset(const int64_t 
req_version) {
     do {
         // there is no data in init rowset, so overlapping info is unknown.
         std::unique_ptr<RowsetWriter> rs_writer;
-        res = create_rowset_writer(version, VISIBLE, OVERLAP_UNKNOWN, 
tablet_schema(), -1, -1,
-                                   &rs_writer);
+        RowsetWriterContext context;
+        context.version = version;
+        context.rowset_state = VISIBLE;
+        context.segments_overlap = OVERLAP_UNKNOWN;
+        context.tablet_schema = tablet_schema();
+        res = create_rowset_writer(context, &rs_writer);
 
         if (!res.ok()) {
             LOG(WARNING) << "failed to init rowset writer for tablet " << 
full_name();
@@ -1612,64 +1616,14 @@ Status Tablet::create_initial_rowset(const int64_t 
req_version) {
     return res;
 }
 
-Status Tablet::create_vertical_rowset_writer(
-        const Version& version, const RowsetStatePB& rowset_state, const 
SegmentsOverlapPB& overlap,
-        TabletSchemaSPtr tablet_schema, int64_t oldest_write_timestamp,
-        int64_t newest_write_timestamp, std::unique_ptr<RowsetWriter>* 
rowset_writer) {
-    RowsetWriterContext context;
-    context.version = version;
-    context.rowset_state = rowset_state;
-    context.segments_overlap = overlap;
-    context.oldest_write_timestamp = oldest_write_timestamp;
-    context.newest_write_timestamp = newest_write_timestamp;
-    context.tablet_schema = tablet_schema;
-    context.enable_unique_key_merge_on_write = 
enable_unique_key_merge_on_write();
+Status Tablet::create_vertical_rowset_writer(RowsetWriterContext& context,
+                                             std::unique_ptr<RowsetWriter>* 
rowset_writer) {
     _init_context_common_fields(context);
     return RowsetFactory::create_rowset_writer(context, true, rowset_writer);
 }
 
-Status Tablet::create_rowset_writer(const Version& version, const 
RowsetStatePB& rowset_state,
-                                    const SegmentsOverlapPB& overlap,
-                                    TabletSchemaSPtr tablet_schema, int64_t 
oldest_write_timestamp,
-                                    int64_t newest_write_timestamp,
-                                    std::unique_ptr<RowsetWriter>* 
rowset_writer) {
-    return create_rowset_writer(version, rowset_state, overlap, tablet_schema,
-                                oldest_write_timestamp, 
newest_write_timestamp, nullptr,
-                                rowset_writer);
-}
-
-Status Tablet::create_rowset_writer(const Version& version, const 
RowsetStatePB& rowset_state,
-                                    const SegmentsOverlapPB& overlap,
-                                    TabletSchemaSPtr tablet_schema, int64_t 
oldest_write_timestamp,
-                                    int64_t newest_write_timestamp, 
io::FileSystemSPtr fs,
-                                    std::unique_ptr<RowsetWriter>* 
rowset_writer) {
-    RowsetWriterContext context;
-    context.version = version;
-    context.rowset_state = rowset_state;
-    context.segments_overlap = overlap;
-    context.oldest_write_timestamp = oldest_write_timestamp;
-    context.newest_write_timestamp = newest_write_timestamp;
-    context.tablet_schema = tablet_schema;
-    context.enable_unique_key_merge_on_write = 
enable_unique_key_merge_on_write();
-    context.fs = fs;
-    _init_context_common_fields(context);
-    return RowsetFactory::create_rowset_writer(context, false, rowset_writer);
-}
-
-Status Tablet::create_rowset_writer(const int64_t& txn_id, const PUniqueId& 
load_id,
-                                    const RowsetStatePB& rowset_state,
-                                    const SegmentsOverlapPB& overlap,
-                                    TabletSchemaSPtr tablet_schema,
+Status Tablet::create_rowset_writer(RowsetWriterContext& context,
                                     std::unique_ptr<RowsetWriter>* 
rowset_writer) {
-    RowsetWriterContext context;
-    context.txn_id = txn_id;
-    context.load_id = load_id;
-    context.rowset_state = rowset_state;
-    context.segments_overlap = overlap;
-    context.oldest_write_timestamp = -1;
-    context.newest_write_timestamp = -1;
-    context.tablet_schema = tablet_schema;
-    context.enable_unique_key_merge_on_write = 
enable_unique_key_merge_on_write();
     _init_context_common_fields(context);
     return RowsetFactory::create_rowset_writer(context, false, rowset_writer);
 }
@@ -1693,6 +1647,7 @@ void 
Tablet::_init_context_common_fields(RowsetWriterContext& context) {
         context.rowset_dir = tablet_path();
     }
     context.data_dir = data_dir();
+    context.enable_unique_key_merge_on_write = 
enable_unique_key_merge_on_write();
 }
 
 Status Tablet::create_rowset(RowsetMetaSharedPtr rowset_meta, RowsetSharedPtr* 
rowset) {
diff --git a/be/src/olap/tablet.h b/be/src/olap/tablet.h
index 38d77961bc..3adfdeee2a 100644
--- a/be/src/olap/tablet.h
+++ b/be/src/olap/tablet.h
@@ -291,27 +291,10 @@ public:
         return _tablet_meta->tablet_schema(version);
     }
 
-    Status create_rowset_writer(const Version& version, const RowsetStatePB& 
rowset_state,
-                                const SegmentsOverlapPB& overlap, 
TabletSchemaSPtr tablet_schema,
-                                int64_t oldest_write_timestamp, int64_t 
newest_write_timestamp,
+    Status create_rowset_writer(RowsetWriterContext& context,
                                 std::unique_ptr<RowsetWriter>* rowset_writer);
 
-    Status create_rowset_writer(const Version& version, const RowsetStatePB& 
rowset_state,
-                                const SegmentsOverlapPB& overlap, 
TabletSchemaSPtr tablet_schema,
-                                int64_t oldest_write_timestamp, int64_t 
newest_write_timestamp,
-                                io::FileSystemSPtr fs,
-                                std::unique_ptr<RowsetWriter>* rowset_writer);
-
-    Status create_rowset_writer(const int64_t& txn_id, const PUniqueId& 
load_id,
-                                const RowsetStatePB& rowset_state, const 
SegmentsOverlapPB& overlap,
-                                TabletSchemaSPtr tablet_schema,
-                                std::unique_ptr<RowsetWriter>* rowset_writer);
-
-    Status create_vertical_rowset_writer(const Version& version, const 
RowsetStatePB& rowset_state,
-                                         const SegmentsOverlapPB& overlap,
-                                         TabletSchemaSPtr tablet_schema,
-                                         int64_t oldest_write_timestamp,
-                                         int64_t newest_write_timestamp,
+    Status create_vertical_rowset_writer(RowsetWriterContext& context,
                                          std::unique_ptr<RowsetWriter>* 
rowset_writer);
 
     Status create_rowset(RowsetMetaSharedPtr rowset_meta, RowsetSharedPtr* 
rowset);
diff --git a/be/test/olap/rowid_conversion_test.cpp 
b/be/test/olap/rowid_conversion_test.cpp
index 3d0852fd22..7d62d9f213 100644
--- a/be/test/olap/rowid_conversion_test.cpp
+++ b/be/test/olap/rowid_conversion_test.cpp
@@ -32,6 +32,7 @@
 #include "olap/rowset/rowset_writer.h"
 #include "olap/rowset/rowset_writer_context.h"
 #include "olap/schema.h"
+#include "olap/storage_engine.h"
 #include "olap/tablet_schema.h"
 #include "olap/tablet_schema_helper.h"
 #include "util/file_utils.h"
@@ -54,8 +55,6 @@ protected:
         }
         EXPECT_TRUE(FileUtils::create_dir(absolute_dir).ok());
         EXPECT_TRUE(FileUtils::create_dir(absolute_dir + "/tablet_path").ok());
-        _data_dir = std::make_unique<DataDir>(absolute_dir);
-        _data_dir->update_capacity();
         doris::EngineOptions options;
         k_engine = new StorageEngine(options);
         StorageEngine::_s_instance = k_engine;
@@ -129,10 +128,9 @@ protected:
         rowset_id.init(inc_id);
         rowset_writer_context->rowset_id = rowset_id;
         rowset_writer_context->rowset_type = BETA_ROWSET;
-        rowset_writer_context->data_dir = _data_dir.get();
         rowset_writer_context->rowset_state = VISIBLE;
         rowset_writer_context->tablet_schema = tablet_schema;
-        rowset_writer_context->rowset_dir = "tablet_path";
+        rowset_writer_context->rowset_dir = absolute_dir + "/tablet_path";
         rowset_writer_context->version = Version(inc_id, inc_id);
         rowset_writer_context->segments_overlap = overlap;
         rowset_writer_context->max_rows_per_segment = max_rows_per_segment;
@@ -462,7 +460,6 @@ protected:
 private:
     const std::string kTestDir = "/ut_dir/rowid_conversion_test";
     string absolute_dir;
-    std::unique_ptr<DataDir> _data_dir;
 };
 
 TEST_F(TestRowIdConversion, Basic) {
diff --git a/be/test/vec/olap/vertical_compaction_test.cpp 
b/be/test/vec/olap/vertical_compaction_test.cpp
index 09d7d4656d..67df8dacd9 100644
--- a/be/test/vec/olap/vertical_compaction_test.cpp
+++ b/be/test/vec/olap/vertical_compaction_test.cpp
@@ -29,6 +29,7 @@
 #include "olap/rowset/rowset_writer.h"
 #include "olap/rowset/rowset_writer_context.h"
 #include "olap/schema.h"
+#include "olap/storage_engine.h"
 #include "olap/tablet_schema.h"
 #include "olap/tablet_schema_helper.h"
 #include "util/file_utils.h"
@@ -54,8 +55,6 @@ protected:
         }
         EXPECT_TRUE(FileUtils::create_dir(absolute_dir).ok());
         EXPECT_TRUE(FileUtils::create_dir(absolute_dir + "/tablet_path").ok());
-        _data_dir = std::make_unique<DataDir>(absolute_dir);
-        _data_dir->update_capacity();
         doris::EngineOptions options;
         k_engine = new StorageEngine(options);
         StorageEngine::_s_instance = k_engine;
@@ -163,10 +162,9 @@ protected:
         rowset_id.init(inc_id);
         rowset_writer_context->rowset_id = rowset_id;
         rowset_writer_context->rowset_type = BETA_ROWSET;
-        rowset_writer_context->data_dir = _data_dir.get();
         rowset_writer_context->rowset_state = VISIBLE;
         rowset_writer_context->tablet_schema = tablet_schema;
-        rowset_writer_context->rowset_dir = "tablet_path";
+        rowset_writer_context->rowset_dir = absolute_dir + "/tablet_path";
         rowset_writer_context->version = Version(inc_id, inc_id);
         rowset_writer_context->segments_overlap = overlap;
         rowset_writer_context->max_rows_per_segment = max_rows_per_segment;
@@ -363,7 +361,6 @@ protected:
 private:
     const std::string kTestDir = "/ut_dir/vertical_compaction_test";
     string absolute_dir;
-    std::unique_ptr<DataDir> _data_dir;
 };
 
 TEST_F(VerticalCompactionTest, TestRowSourcesBuffer) {


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

Reply via email to