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]