(doris) branch master updated: [chore](Azure) Print Azure request failed message (#36794)

2024-06-25 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

plat1ko 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 728923a5866 [chore](Azure) Print Azure request failed message (#36794)
728923a5866 is described below

commit 728923a5866357ddbd91b9d8ddef8eb198cb6e30
Author: AlexYue 
AuthorDate: Wed Jun 26 13:57:39 2024 +0800

[chore](Azure) Print Azure request failed message (#36794)

Print azure's failed request's http code along with more details.
---
 be/src/io/fs/azure_obj_storage_client.cpp | 21 ++---
 be/src/io/fs/s3_file_writer.cpp   | 16 ++--
 2 files changed, 28 insertions(+), 9 deletions(-)

diff --git a/be/src/io/fs/azure_obj_storage_client.cpp 
b/be/src/io/fs/azure_obj_storage_client.cpp
index 4bd0d1b7009..231113350f2 100644
--- a/be/src/io/fs/azure_obj_storage_client.cpp
+++ b/be/src/io/fs/azure_obj_storage_client.cpp
@@ -22,6 +22,7 @@
 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -60,8 +61,10 @@ ObjectStorageResponse do_azure_client_call(Func f, const 
ObjectStoragePathOption
 try {
 f();
 } catch (Azure::Core::RequestFailedException& e) {
-auto msg = fmt::format("Azure request failed because {}, error msg {}, 
path msg {}",
-   e.what(), e.Message, 
wrap_object_storage_path_msg(opts));
+auto msg = fmt::format(
+"Azure request failed because {}, error msg {}, http code {}, 
path msg {}",
+e.what(), e.Message, static_cast(e.StatusCode),
+wrap_object_storage_path_msg(opts));
 LOG_WARNING(msg);
 return {.status = 
convert_to_obj_response(Status::InternalError(std::move(msg))),
 .http_code = static_cast(e.StatusCode),
@@ -99,10 +102,12 @@ ObjectStorageUploadResponse 
AzureObjStorageClient::upload_part(const ObjectStora
 Azure::Core::IO::MemoryBodyStream memory_body(
 reinterpret_cast(stream.data()), 
stream.size());
 // The blockId must be base64 encoded
-auto resp = client.StageBlock(base64_encode_part_num(part_num), 
memory_body);
+client.StageBlock(base64_encode_part_num(part_num), memory_body);
 } catch (Azure::Core::RequestFailedException& e) {
-auto msg = fmt::format("Azure request failed because {}, error msg {}, 
path msg {}",
-   e.what(), e.Message, 
wrap_object_storage_path_msg(opts));
+auto msg = fmt::format(
+"Azure request failed because {}, error msg {}, http code {}, 
path msg {}",
+e.what(), e.Message, static_cast(e.StatusCode),
+wrap_object_storage_path_msg(opts));
 LOG_WARNING(msg);
 // clang-format off
 return {
@@ -142,8 +147,10 @@ ObjectStorageHeadResponse 
AzureObjStorageClient::head_object(const ObjectStorage
  .request_id = std::move(e.RequestId)},
 };
 }
-auto msg = fmt::format("Failed to head azure blob due to {}, path msg 
{}", e.Message,
-   wrap_object_storage_path_msg(opts));
+auto msg = fmt::format(
+"Azure request failed because {}, error msg {}, http code {}, 
path msg {}",
+e.what(), e.Message, static_cast(e.StatusCode),
+wrap_object_storage_path_msg(opts));
 return ObjectStorageHeadResponse {
 .resp = {.status = convert_to_obj_response(
  Status::InternalError(std::move(msg))),
diff --git a/be/src/io/fs/s3_file_writer.cpp b/be/src/io/fs/s3_file_writer.cpp
index 9af34ea8ca8..20c616ef90a 100644
--- a/be/src/io/fs/s3_file_writer.cpp
+++ b/be/src/io/fs/s3_file_writer.cpp
@@ -290,15 +290,21 @@ Status S3FileWriter::appendv(const Slice* data, size_t 
data_cnt) {
 
 void S3FileWriter::_upload_one_part(int64_t part_num, UploadFileBuffer& buf) {
 if (buf.is_cancelled()) {
+LOG_INFO("file {} skip part {} because previous failure {}",
+ _obj_storage_path_opts.path.native(), part_num, _st);
 return;
 }
 const auto& client = _obj_client->get();
 if (nullptr == client) {
+LOG_WARNING("failed at key: {}, load part {} bacause of invalid obj 
client",
+_obj_storage_path_opts.key, part_num);
 buf.set_status(Status::InternalError("invalid obj storage 
client"));
 return;
 }
 auto resp = client->upload_part(_obj_storage_path_opts, 
buf.get_string_view_data(), part_num);
 if (resp.resp.status.code != ErrorCode::OK) {
+LOG_INFO("failed at key: {}, load part {}, st {}", 
_obj_storage_path_opts.key, part_num,
+ resp.resp.stat

(doris) branch master updated: [feature](Cloud) Introduce obj storage client interface to recycler (#35447)

2024-06-03 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

plat1ko 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 45661f941e8 [feature](Cloud) Introduce obj storage client interface to 
recycler (#35447)
45661f941e8 is described below

commit 45661f941e80265039429b26bf8bb6ef8ec410d5
Author: AlexYue 
AuthorDate: Mon Jun 3 20:12:14 2024 +0800

[feature](Cloud) Introduce obj storage client interface to recycler (#35447)

Extract basic interface to suite different kinds of ObjectStorage.
---
 be/src/common/status.h |  18 +-
 be/src/io/fs/err_utils.cpp |   7 +
 be/src/io/fs/obj_storage_client.h  |  24 +-
 be/src/io/fs/s3_file_reader.cpp|   5 +-
 be/src/io/fs/s3_file_system.cpp|  73 ++--
 be/src/io/fs/s3_file_writer.cpp|  16 +-
 be/src/io/fs/s3_obj_storage_client.cpp | 112 --
 be/src/io/fs/s3_obj_storage_client.h   |   7 +-
 be/test/io/fs/s3_file_writer_test.cpp  |  17 +-
 cloud/src/recycler/obj_store_accessor.h|  57 +++
 cloud/src/recycler/s3_accessor.cpp | 389 -
 cloud/src/recycler/s3_accessor.h   |   6 +-
 cloud/src/recycler/s3_obj_client.cpp   | 371 
 .../src/recycler/s3_obj_client.h   |  48 ++-
 cloud/test/s3_accessor_test.cpp|  18 +
 15 files changed, 715 insertions(+), 453 deletions(-)

diff --git a/be/src/common/status.h b/be/src/common/status.h
index 137a268b5aa..34e13749165 100644
--- a/be/src/common/status.h
+++ b/be/src/common/status.h
@@ -25,6 +25,14 @@
 
 namespace doris {
 
+namespace io {
+struct ObjectStorageStatus;
+}
+
+class Status;
+
+extern io::ObjectStorageStatus convert_to_obj_response(Status st);
+
 class PStatus;
 
 namespace ErrorCode {
@@ -352,11 +360,11 @@ public:
 Status() : _code(ErrorCode::OK), _err_msg(nullptr) {}
 
 // used to convert Exception to Status
-Status(int code, std::string msg, std::string stack) : _code(code) {
+Status(int code, std::string msg, std::string stack = "") : _code(code) {
 _err_msg = std::make_unique();
-_err_msg->_msg = msg;
+_err_msg->_msg = std::move(msg);
 #ifdef ENABLE_STACKTRACE
-_err_msg->_stack = stack;
+_err_msg->_stack = std::move(stack);
 #endif
 }
 
@@ -529,6 +537,10 @@ public:
 
 std::string_view msg() const { return _err_msg ? _err_msg->_msg : 
std::string_view(""); }
 
+std::pair retrieve_error_msg() { return {_code, 
std::move(_err_msg->_msg)}; }
+
+friend io::ObjectStorageStatus convert_to_obj_response(Status st);
+
 private:
 int _code;
 struct ErrMsg {
diff --git a/be/src/io/fs/err_utils.cpp b/be/src/io/fs/err_utils.cpp
index 8552c647cdd..6552d454824 100644
--- a/be/src/io/fs/err_utils.cpp
+++ b/be/src/io/fs/err_utils.cpp
@@ -27,10 +27,17 @@
 
 #include "common/status.h"
 #include "io/fs/hdfs.h"
+#include "io/fs/obj_storage_client.h"
 
 namespace doris {
 using namespace ErrorCode;
 
+io::ObjectStorageStatus convert_to_obj_response(Status st) {
+int code = st._code;
+std::string msg = st._err_msg == nullptr ? "" : 
std::move(st._err_msg->_msg);
+return io::ObjectStorageStatus {.code = code, .msg = std::move(msg)};
+}
+
 namespace io {
 
 std::string errno_to_str() {
diff --git a/be/src/io/fs/obj_storage_client.h 
b/be/src/io/fs/obj_storage_client.h
index 40e0ff9a8fe..3ab0a8e2dea 100644
--- a/be/src/io/fs/obj_storage_client.h
+++ b/be/src/io/fs/obj_storage_client.h
@@ -46,14 +46,26 @@ struct ObjectStoragePathOptions {
 
 struct ObjectCompleteMultiParts {};
 
+struct ObjectStorageStatus {
+int code = 0;
+std::string msg = std::string();
+};
+
+// We only store error code along with err_msg instead of Status to unify BE 
and recycler's error handle logic
 struct ObjectStorageResponse {
-Status status = Status::OK();
+ObjectStorageStatus status {};
+int http_code {200};
+std::string request_id = std::string();
+};
+
+struct ObjectStorageUploadResponse {
+ObjectStorageResponse resp {};
 std::optional upload_id = std::nullopt;
 std::optional etag = std::nullopt;
 };
 
 struct ObjectStorageHeadResponse {
-Status status = Status::OK();
+ObjectStorageResponse resp {};
 long long file_size {0};
 };
 
@@ -62,7 +74,8 @@ public:
 virtual ~ObjStorageClient() = default;
 // Create a multi-part upload request. On AWS-compatible systems, it will 
return an upload ID, but not on Azure.
 // The input parameters should include the bucket and key for the object 
storage.
-virtual ObjectStorageResponse create_multipart_upload(const 
ObjectStoragePathOptions& opts)

(doris) branch master updated (43d0f191d93 -> 10ad1c73d9b)

2024-06-05 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

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


from 43d0f191d93 [opt](mtmv) Materialized view partition track supports 
date_trunc and optimize the fail reason (#35562)
 add 10ad1c73d9b [enhance](BE) Avoid memcpy in `OlapMeta::iterate`  (#35850)

No new revisions were added by this update.

Summary of changes:
 be/src/http/action/restore_tablet_action.cpp |  2 +-
 be/src/olap/data_dir.cpp | 23 ++---
 be/src/olap/olap_meta.cpp| 23 +++--
 be/src/olap/olap_meta.h  | 13 +++-
 be/src/olap/rowset/rowset_meta.cpp   | 15 -
 be/src/olap/rowset/rowset_meta.h |  4 +--
 be/src/olap/rowset/rowset_meta_manager.cpp   | 48 +---
 be/src/olap/rowset/rowset_meta_manager.h |  4 +--
 be/src/olap/storage_engine.cpp   | 12 +++
 be/src/olap/tablet.cpp   |  4 +--
 be/src/olap/tablet_manager.cpp   |  3 +-
 be/src/olap/tablet_manager.h |  3 +-
 be/src/olap/tablet_meta.cpp  |  4 +--
 be/src/olap/tablet_meta.h|  2 +-
 be/src/olap/tablet_meta_manager.cpp  | 30 -
 be/src/olap/tablet_meta_manager.h| 25 ---
 be/src/olap/utils.h  |  8 ++---
 be/test/olap/olap_meta_test.cpp  |  2 +-
 be/test/olap/tablet_meta_manager_test.cpp|  4 +--
 19 files changed, 113 insertions(+), 116 deletions(-)


-
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org



(doris) branch master updated: [enhance](S3) Don't use aws's multithread utility in S3 FS to suite newer C++ compiler (#38539)

2024-07-30 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

plat1ko 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 bb433c73257 [enhance](S3) Don't use aws's multithread utility in S3 FS 
to suite newer C++ compiler (#38539)
bb433c73257 is described below

commit bb433c73257bca314ce29f5cfa47d4a184fef0eb
Author: AlexYue 
AuthorDate: Wed Jul 31 13:23:28 2024 +0800

[enhance](S3) Don't use aws's multithread utility in S3 FS to suite newer 
C++ compiler (#38539)
---
 be/src/common/config.cpp |  3 ++-
 be/src/common/config.h   |  3 ++-
 be/src/io/fs/s3_file_system.cpp  | 23 ++-
 be/src/runtime/exec_env.h|  2 ++
 be/src/runtime/exec_env_init.cpp |  6 ++
 5 files changed, 22 insertions(+), 15 deletions(-)

diff --git a/be/src/common/config.cpp b/be/src/common/config.cpp
index f984621ec85..d0a2a5fa7e3 100644
--- a/be/src/common/config.cpp
+++ b/be/src/common/config.cpp
@@ -938,7 +938,8 @@ DEFINE_mInt32(cold_data_compaction_interval_sec, "1800");
 
 DEFINE_String(tmp_file_dir, "tmp");
 
-DEFINE_Int32(s3_transfer_executor_pool_size, "2");
+DEFINE_Int32(min_s3_file_system_thread_num, "16");
+DEFINE_Int32(max_s3_file_system_thread_num, "64");
 
 DEFINE_Bool(enable_time_lut, "true");
 DEFINE_mBool(enable_simdjson_reader, "true");
diff --git a/be/src/common/config.h b/be/src/common/config.h
index fcfce74e7be..e117c824329 100644
--- a/be/src/common/config.h
+++ b/be/src/common/config.h
@@ -995,7 +995,8 @@ DECLARE_mInt32(confirm_unused_remote_files_interval_sec);
 DECLARE_Int32(cold_data_compaction_thread_num);
 DECLARE_mInt32(cold_data_compaction_interval_sec);
 
-DECLARE_Int32(s3_transfer_executor_pool_size);
+DECLARE_Int32(min_s3_file_system_thread_num);
+DECLARE_Int32(max_s3_file_system_thread_num);
 
 DECLARE_Bool(enable_time_lut);
 DECLARE_mBool(enable_simdjson_reader);
diff --git a/be/src/io/fs/s3_file_system.cpp b/be/src/io/fs/s3_file_system.cpp
index 93f36429485..3905c4ddb1e 100644
--- a/be/src/io/fs/s3_file_system.cpp
+++ b/be/src/io/fs/s3_file_system.cpp
@@ -18,9 +18,8 @@
 #include "io/fs/s3_file_system.h"
 
 #include 
-#include 
 
-#include 
+#include 
 
 #include "common/compiler_util.h" // IWYU pragma: keep
 // IWYU pragma: no_include 
@@ -32,7 +31,6 @@
 #include  // IWYU pragma: keep
 #include 
 #include 
-#include 
 
 #include "common/config.h"
 #include "common/logging.h"
@@ -46,7 +44,7 @@
 #include "io/fs/s3_file_reader.h"
 #include "io/fs/s3_file_writer.h"
 #include "io/fs/s3_obj_storage_client.h"
-#include "util/bvar_helper.h"
+#include "runtime/exec_env.h"
 #include "util/s3_uri.h"
 #include "util/s3_util.h"
 
@@ -69,13 +67,6 @@ Result get_key(const Path& full_path) {
 return uri.get_key();
 }
 
-// TODO(plat1ko): AwsTransferManager will be deprecated
-std::shared_ptr& 
default_executor() {
-static auto executor = 
Aws::MakeShared(
-"default", config::s3_transfer_executor_pool_size);
-return executor;
-}
-
 } // namespace
 
 ObjClientHolder::ObjClientHolder(S3ClientConf conf) : _conf(std::move(conf)) {}
@@ -383,13 +374,19 @@ Status S3FileSystem::batch_upload_impl(const 
std::vector& local_files,
 return Status::OK();
 };
 
+Status s = Status::OK();
 std::vector> futures;
 for (int i = 0; i < local_files.size(); ++i) {
 auto task = std::make_shared>(upload_task);
 futures.emplace_back(task->get_future());
-default_executor()->Submit([t = std::move(task), idx = i]() mutable { 
(*t)(idx); });
+auto st = 
ExecEnv::GetInstance()->s3_file_system_thread_pool()->submit_func(
+[t = std::move(task), idx = i]() mutable { (*t)(idx); });
+// We shouldn't return immediately since the previous submitted tasks 
might still be running in the thread pool
+if (!st.ok()) {
+s = st;
+break;
+}
 }
-Status s = Status::OK();
 for (auto&& f : futures) {
 auto cur_s = f.get();
 if (!cur_s.ok()) {
diff --git a/be/src/runtime/exec_env.h b/be/src/runtime/exec_env.h
index 89e5593c84b..65cf70bf568 100644
--- a/be/src/runtime/exec_env.h
+++ b/be/src/runtime/exec_env.h
@@ -204,6 +204,7 @@ public:
 ThreadPool* join_node_thread_pool() { return _join_node_thread_pool.get(); 
}
 ThreadPool* lazy_release_obj_pool() { return _lazy_release_obj_pool.get(); 
}
 ThreadPool* non_block_close_thread_pool();
+ThreadPool* s3_file_system_thread_pool() { return 
_s3_file_system_thread_pool.get(); }
 
 Status init_pipeline_task_scheduler();
 void init_file_cache_factory();
@@ -381,6 +382,7 @@ private:
 // Pool t

(doris) branch master updated: [enhance](Vault) Refresh default storage vault info when doing instance check in FE (#36104)

2024-06-12 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

plat1ko 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 c24891069b1 [enhance](Vault) Refresh default storage vault info when 
doing instance check in FE (#36104)
c24891069b1 is described below

commit c24891069b19747167ea445b49879539d43a130b
Author: AlexYue 
AuthorDate: Wed Jun 12 20:57:25 2024 +0800

[enhance](Vault) Refresh default storage vault info when doing instance 
check in FE (#36104)
---
 .../org/apache/doris/cloud/catalog/CloudInstanceStatusChecker.java   | 5 +
 1 file changed, 5 insertions(+)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/cloud/catalog/CloudInstanceStatusChecker.java
 
b/fe/fe-core/src/main/java/org/apache/doris/cloud/catalog/CloudInstanceStatusChecker.java
index 2fcb5c57cd2..9342c705e9d 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/cloud/catalog/CloudInstanceStatusChecker.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/cloud/catalog/CloudInstanceStatusChecker.java
@@ -17,9 +17,11 @@
 
 package org.apache.doris.cloud.catalog;
 
+import org.apache.doris.catalog.Env;
 import org.apache.doris.cloud.proto.Cloud;
 import org.apache.doris.cloud.system.CloudSystemInfoService;
 import org.apache.doris.common.Config;
+import org.apache.doris.common.Pair;
 import org.apache.doris.common.util.MasterDaemon;
 
 import org.apache.logging.log4j.LogManager;
@@ -47,6 +49,9 @@ public class CloudInstanceStatusChecker extends MasterDaemon {
 + "cloud_unique_id={}, response={}", 
Config.cloud_unique_id, response);
 } else {
 
cloudSystemInfoService.setInstanceStatus(response.getInstance().getStatus());
+
Env.getCurrentEnv().getStorageVaultMgr().setDefaultStorageVault(
+
Pair.of(response.getInstance().getDefaultStorageVaultName(),
+
response.getInstance().getDefaultStorageVaultId()));
 }
 } catch (Exception e) {
 LOG.warn("get instance from ms exception", e);


-
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org



(doris) branch master updated: Fix use-after-free during graceful shutdown (#33457)

2024-04-16 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

plat1ko 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 6d441baf70c Fix use-after-free during graceful shutdown (#33457)
6d441baf70c is described below

commit 6d441baf70c0c2f5968e36209c67221c9964daaf
Author: plat1ko 
AuthorDate: Tue Apr 16 22:50:13 2024 +0800

Fix use-after-free during graceful shutdown (#33457)
---
 be/src/olap/olap_server.cpp  | 27 ---
 be/src/olap/storage_engine.h |  3 +++
 2 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/be/src/olap/olap_server.cpp b/be/src/olap/olap_server.cpp
index aaa1e1dd7ac..73bd0e37f81 100644
--- a/be/src/olap/olap_server.cpp
+++ b/be/src/olap/olap_server.cpp
@@ -1304,9 +1304,6 @@ void StorageEngine::do_remove_unused_remote_files() {
 }
 
 void StorageEngine::_cold_data_compaction_producer_callback() {
-std::unordered_set tablet_submitted;
-std::mutex tablet_submitted_mtx;
-
 while (!_stop_background_threads_latch.wait_for(
 std::chrono::seconds(config::cold_data_compaction_interval_sec))) {
 if (config::disable_auto_compaction ||
@@ -1316,8 +1313,8 @@ void 
StorageEngine::_cold_data_compaction_producer_callback() {
 
 std::unordered_set copied_tablet_submitted;
 {
-std::lock_guard lock(tablet_submitted_mtx);
-copied_tablet_submitted = tablet_submitted;
+std::lock_guard lock(_cold_compaction_tablet_submitted_mtx);
+copied_tablet_submitted = _cold_compaction_tablet_submitted;
 }
 int n = config::cold_data_compaction_thread_num - 
copied_tablet_submitted.size();
 if (n <= 0) {
@@ -1326,7 +1323,7 @@ void 
StorageEngine::_cold_data_compaction_producer_callback() {
 auto tablets = 
_tablet_manager->get_all_tablet([&copied_tablet_submitted](Tablet* t) {
 return t->tablet_meta()->cooldown_meta_id().initialized() && 
t->is_used() &&
t->tablet_state() == TABLET_RUNNING &&
-   !copied_tablet_submitted.count(t->tablet_id()) &&
+   !copied_tablet_submitted.contains(t->tablet_id()) &&

!t->tablet_meta()->tablet_schema()->disable_auto_compaction();
 });
 std::vector> tablet_to_compact;
@@ -1351,7 +1348,7 @@ void 
StorageEngine::_cold_data_compaction_producer_callback() {
 // else, need to follow
 {
 std::lock_guard lock(_running_cooldown_mutex);
-if (_running_cooldown_tablets.count(t->table_id())) {
+if (_running_cooldown_tablets.contains(t->table_id())) {
 // already in cooldown queue
 continue;
 }
@@ -1374,12 +1371,12 @@ void 
StorageEngine::_cold_data_compaction_producer_callback() {
 [&, t = std::move(tablet), this]() {
 auto compaction = 
std::make_shared(*this, t);
 {
-std::lock_guard lock(tablet_submitted_mtx);
-tablet_submitted.insert(t->tablet_id());
+std::lock_guard 
lock(_cold_compaction_tablet_submitted_mtx);
+
_cold_compaction_tablet_submitted.insert(t->tablet_id());
 }
 Defer defer {[&] {
-std::lock_guard lock(tablet_submitted_mtx);
-tablet_submitted.erase(t->tablet_id());
+std::lock_guard 
lock(_cold_compaction_tablet_submitted_mtx);
+
_cold_compaction_tablet_submitted.erase(t->tablet_id());
 }};
 std::unique_lock 
cold_compaction_lock(t->get_cold_compaction_lock(),
   
std::try_to_lock);
@@ -1412,13 +1409,13 @@ void 
StorageEngine::_cold_data_compaction_producer_callback() {
   
t = std::move(

   tablet)]() {
 {
-std::lock_guard lock(tablet_submitted_mtx);
-tablet_submitted.insert(t->tablet_id());
+std::lock_guard 
lock(_cold_compaction_tablet_submitted_mtx);
+_cold_compaction_tablet_submitted.insert(t->tablet_id());
 }
 auto st = t->cooldown();
 {
-std::lock_guard lock(tablet_submitted_mtx);
-tablet_submitted.erase(t->tablet_id());
+std::lock_guar

(doris) branch master updated: [enhance](cloud_p0) morecases for cloud_p0 (#32652)

2024-04-03 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

plat1ko 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 031a4c039a6 [enhance](cloud_p0) morecases for cloud_p0 (#32652)
031a4c039a6 is described below

commit 031a4c039a6d7ca10fa4f8b393d6dc95a908f09a
Author: Yongqiang YANG <98214048+dataroar...@users.noreply.github.com>
AuthorDate: Thu Apr 4 00:52:47 2024 +0800

[enhance](cloud_p0) morecases for cloud_p0 (#32652)
---
 .../pipeline/cloud_p0/conf/regression-conf-custom.groovy  | 8 +---
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git 
a/regression-test/pipeline/cloud_p0/conf/regression-conf-custom.groovy 
b/regression-test/pipeline/cloud_p0/conf/regression-conf-custom.groovy
index 501d5c74e9b..ec3c2fd8719 100644
--- a/regression-test/pipeline/cloud_p0/conf/regression-conf-custom.groovy
+++ b/regression-test/pipeline/cloud_p0/conf/regression-conf-custom.groovy
@@ -16,23 +16,20 @@
 // under the License.
 
 testGroups = "p0"
+
 // exclude groups and exclude suites is more prior than include groups and 
include suites.
 // keep them in lexico order(add/remove cases between the sentinals and sort):
 // * sort lines in vim: select lines and then type :sort
 // * sort lines in vscode: https://ulfschneider.io/2023-09-01-sort-in-vscode/
 excludeSuites = "000_the_start_sentinel_do_not_touch," + // keep this line as 
the first line
-"set_and_unset_variable," +
 "set_replica_status," + // not a case for cloud mode, no need to run
 "test_be_inject_publish_txn_fail," + // not a case for cloud mode, no need 
to run
 "test_bitmap_filter," +
 "test_compaction_uniq_cluster_keys_with_delete," +
 "test_compaction_uniq_keys_cluster_key," +
-"test_disable_move_memtable," +
 "test_dump_image," +
 "test_index_failure_injection," +
 "test_information_schema_external," +
-"test_insert_move_memtable," +
-"test_materialized_view_move_memtable," +
 "test_pk_uk_case_cluster," +
 "test_point_query_cluster_key," +
 "test_profile," +
@@ -42,14 +39,11 @@ excludeSuites = "000_the_start_sentinel_do_not_touch," + // 
keep this line as th
 "test_set_partition_version," +
 "test_show_transaction," + // not supported yet
 "test_spark_load," +
-"test_stream_load_move_memtable," +
-"test_stream_load_new_move_memtable," +
 "test_array_index1," +
 "test_array_index2," +
 "test_index_lowercase_fault_injection," +
 "zzz_the_end_sentinel_do_not_touch" // keep this line as the last line
 
-
 excludeDirectories = "000_the_start_sentinel_do_not_touch," + // keep this 
line as the first line
 "cloud/multi_cluster," + // run in specific regression pipeline
 "workload_manager_p1," +


-
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org



(doris) branch master updated: [enhance](Cloud) Add case to test if vault is forbid for cloud mode without vault (#34006)

2024-04-24 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

plat1ko 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 3aa89110bc6 [enhance](Cloud) Add case to test if vault is forbid for 
cloud mode without vault (#34006)
3aa89110bc6 is described below

commit 3aa89110bc6e459b81ead622a9ff794e8073ac2f
Author: AlexYue 
AuthorDate: Thu Apr 25 14:17:48 2024 +0800

[enhance](Cloud) Add case to test if vault is forbid for cloud mode without 
vault (#34006)
---
 .../doris/analysis/ShowStorageVaultStmt.java   | 12 ++
 regression-test/suites/vaults/forbid/forbid.groovy | 50 ++
 2 files changed, 62 insertions(+)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowStorageVaultStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowStorageVaultStmt.java
index e4af07e43b1..ddf25292846 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowStorageVaultStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowStorageVaultStmt.java
@@ -19,9 +19,12 @@ package org.apache.doris.analysis;
 
 import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.StorageVault;
+import org.apache.doris.cloud.catalog.CloudEnv;
 import org.apache.doris.common.AnalysisException;
+import org.apache.doris.common.Config;
 import org.apache.doris.common.ErrorCode;
 import org.apache.doris.common.ErrorReport;
+import org.apache.doris.common.FeConstants;
 import org.apache.doris.common.UserException;
 import org.apache.doris.mysql.privilege.PrivPredicate;
 import org.apache.doris.qe.ConnectContext;
@@ -41,6 +44,15 @@ public class ShowStorageVaultStmt extends ShowStmt {
 
 @Override
 public void analyze(Analyzer analyzer) throws AnalysisException, 
UserException {
+if (Config.isNotCloudMode()) {
+throw new AnalysisException("Storage Vault is only supported for 
cloud mode");
+}
+if (!FeConstants.runningUnitTest) {
+// In legacy cloud mode, some s3 back-ended storage does need to 
use storage vault.
+if (!((CloudEnv) Env.getCurrentEnv()).getEnableStorageVault()) {
+throw new AnalysisException("Your cloud instance doesn't 
support storage vault");
+}
+}
 super.analyze(analyzer);
 // check auth
 if 
(!Env.getCurrentEnv().getAccessManager().checkGlobalPriv(ConnectContext.get(), 
PrivPredicate.ADMIN)) {
diff --git a/regression-test/suites/vaults/forbid/forbid.groovy 
b/regression-test/suites/vaults/forbid/forbid.groovy
new file mode 100644
index 000..15fba18fc6d
--- /dev/null
+++ b/regression-test/suites/vaults/forbid/forbid.groovy
@@ -0,0 +1,50 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("forbid_vault") {
+if (enableStoragevault()) {
+logger.info("skip forbid storage vault case because storage vault 
enabled")
+return
+}
+
+if (!isCloudMode()) {
+logger.info("skip forbid storage vault case because not cloud mode")
+return
+}
+
+expectExceptionLike({
+sql """
+set not_exist as default storage vault
+"""
+}, "Your cloud instance doesn't support storage vault")
+
+expectExceptionLike({
+sql """
+CREATE STORAGE VAULT IF NOT EXISTS hdfs_vault
+PROPERTIES (
+"type"="hdfs",
+"fs.defaultFS"="hdfs://127.0.0.1:8020"
+);
+"""
+}, "Your cloud instance doesn't support storage vault")
+
+expectExceptionLike({
+sql """
+show storage vault
+"""
+}, "Your cloud instance doesn't support storage vault")
+}
\ No newline at end of file


-
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org



(doris) branch master updated: decrypt sk (#34174)

2024-04-26 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

plat1ko 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 dc09fab881f decrypt sk (#34174)
dc09fab881f is described below

commit dc09fab881fd2d6145cd768ba351510ff19e6caf
Author: AlexYue 
AuthorDate: Fri Apr 26 20:31:57 2024 +0800

decrypt sk (#34174)
---
 be/src/util/s3_util.h| 4 ++--
 cloud/src/meta-service/meta_service_resource.cpp | 8 
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/be/src/util/s3_util.h b/be/src/util/s3_util.h
index 62d8b4f1d64..46226b79359 100644
--- a/be/src/util/s3_util.h
+++ b/be/src/util/s3_util.h
@@ -132,8 +132,8 @@ struct S3Conf {
 cloud::ObjectStoreInfoPB::Provider provider;
 
 std::string to_string() const {
-return fmt::format("(bucket={}, prefix={}, client_conf={})", bucket, 
prefix,
-   client_conf.to_string());
+return fmt::format("(bucket={}, prefix={}, client_conf={}, 
sse_enabled={})", bucket, prefix,
+   client_conf.to_string(), sse_enabled);
 }
 };
 
diff --git a/cloud/src/meta-service/meta_service_resource.cpp 
b/cloud/src/meta-service/meta_service_resource.cpp
index 1dd04617cc4..0adb3f0ac7e 100644
--- a/cloud/src/meta-service/meta_service_resource.cpp
+++ b/cloud/src/meta-service/meta_service_resource.cpp
@@ -277,6 +277,14 @@ void 
MetaServiceImpl::get_obj_store_info(google::protobuf::RpcController* contro
 storage_vault_start.push_back('\x00'); // Update to next smallest 
key for iteration
 } while (it->more());
 }
+for (auto& vault : *response->mutable_storage_vault()) {
+if (vault.has_obj_info()) {
+if (auto ret = decrypt_and_update_ak_sk(*vault.mutable_obj_info(), 
code, msg);
+ret != 0) {
+return;
+}
+}
+}
 
 response->mutable_obj_info()->CopyFrom(instance.obj_info());
 if (instance.has_default_storage_vault_id()) {


-
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org



(doris) branch master updated: [enhance](Cloud) Unify add storage vault http action (#34119)

2024-04-26 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

plat1ko 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 4b58fc95097 [enhance](Cloud) Unify add storage vault http action 
(#34119)
4b58fc95097 is described below

commit 4b58fc95097f853e66c919065f63d14756549899
Author: AlexYue 
AuthorDate: Fri Apr 26 20:32:42 2024 +0800

[enhance](Cloud) Unify add storage vault http action (#34119)
---
 cloud/src/meta-service/meta_service_http.cpp | 8 +++-
 cloud/src/meta-service/meta_service_resource.cpp | 3 +++
 gensrc/proto/cloud.proto | 1 +
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/cloud/src/meta-service/meta_service_http.cpp 
b/cloud/src/meta-service/meta_service_http.cpp
index 80ae08ef251..4542e05e486 100644
--- a/cloud/src/meta-service/meta_service_http.cpp
+++ b/cloud/src/meta-service/meta_service_http.cpp
@@ -209,7 +209,10 @@ static HttpResponse 
process_alter_obj_store_info(MetaServiceImpl* service, brpc:
 static std::unordered_map operations {
 {"add_obj_info", AlterObjStoreInfoRequest::ADD_OBJ_INFO},
 {"legacy_update_ak_sk", 
AlterObjStoreInfoRequest::LEGACY_UPDATE_AK_SK},
-{"drop_hdfs_vault", AlterObjStoreInfoRequest::DROP_HDFS_INFO}};
+{"drop_s3_vault", AlterObjStoreInfoRequest::DROP_S3_VAULT},
+{"add_s3_vault", AlterObjStoreInfoRequest::ADD_S3_VAULT},
+{"drop_hdfs_vault", AlterObjStoreInfoRequest::DROP_HDFS_INFO},
+{"add_hdfs_vault", AlterObjStoreInfoRequest::ADD_HDFS_INFO}};
 
 auto& path = ctrl->http_request().unresolved_path();
 auto it = operations.find(remove_version_prefix(path));
@@ -444,6 +447,9 @@ void 
MetaServiceImpl::http(::google::protobuf::RpcController* controller,
 {"v1/legacy_update_ak_sk", process_alter_obj_store_info},
 {"v1/update_ak_sk", process_update_ak_sk},
 {"show_storage_vaults", process_get_obj_store_info},
+{"add_hdfs_vault", process_alter_obj_store_info},
+{"add_s3_vault", process_alter_obj_store_info},
+{"drop_s3_vault", process_alter_obj_store_info},
 {"drop_hdfs_vault", process_alter_obj_store_info},
 // for tools
 {"decode_key", process_decode_key},
diff --git a/cloud/src/meta-service/meta_service_resource.cpp 
b/cloud/src/meta-service/meta_service_resource.cpp
index 0adb3f0ac7e..eefd01eb254 100644
--- a/cloud/src/meta-service/meta_service_resource.cpp
+++ b/cloud/src/meta-service/meta_service_resource.cpp
@@ -537,6 +537,7 @@ void 
MetaServiceImpl::alter_obj_store_info(google::protobuf::RpcController* cont
 switch (request->op()) {
 case AlterObjStoreInfoRequest::ADD_OBJ_INFO:
 case AlterObjStoreInfoRequest::ADD_S3_VAULT:
+case AlterObjStoreInfoRequest::DROP_S3_VAULT:
 case AlterObjStoreInfoRequest::LEGACY_UPDATE_AK_SK:
 case AlterObjStoreInfoRequest::UPDATE_AK_SK: {
 if (!request->has_obj() && (!request->has_vault() || 
!request->vault().has_obj_info())) {
@@ -824,6 +825,8 @@ void 
MetaServiceImpl::alter_obj_store_info(google::protobuf::RpcController* cont
 instance.clear_default_storage_vault_name();
 break;
 }
+case AlterObjStoreInfoRequest::DROP_S3_VAULT:
+[[fallthrough]];
 default: {
 code = MetaServiceCode::INVALID_ARGUMENT;
 ss << "invalid request op, op=" << request->op();
diff --git a/gensrc/proto/cloud.proto b/gensrc/proto/cloud.proto
index f132e2eab4d..ba9017a5ecc 100644
--- a/gensrc/proto/cloud.proto
+++ b/gensrc/proto/cloud.proto
@@ -775,6 +775,7 @@ message AlterObjStoreInfoRequest {
 DROP_HDFS_INFO = 101;
 ADD_BUILT_IN_VAULT = 102;
 ADD_S3_VAULT = 103;
+DROP_S3_VAULT = 104;
 
 SET_DEFAULT_VAULT = 200;
 UNSET_DEFAULT_VAULT = 201;


-
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org



(doris) branch master updated: [chore](InjectPoint) Log when entering injection point #34286

2024-04-29 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

plat1ko 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 cb8f9e81291 [chore](InjectPoint) Log when entering injection point 
#34286
cb8f9e81291 is described below

commit cb8f9e812913d4176da48a98730a2c6f28f97c44
Author: AlexYue 
AuthorDate: Mon Apr 29 23:19:30 2024 +0800

[chore](InjectPoint) Log when entering injection point #34286
---
 be/src/cloud/cloud_meta_mgr.cpp  |  2 +-
 be/src/common/sync_point.h   | 12 ++--
 be/src/http/action/config_action.cpp |  2 +-
 be/src/io/fs/hdfs_file_writer.cpp| 10 +-
 4 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/be/src/cloud/cloud_meta_mgr.cpp b/be/src/cloud/cloud_meta_mgr.cpp
index 32f99228088..506c57672d9 100644
--- a/be/src/cloud/cloud_meta_mgr.cpp
+++ b/be/src/cloud/cloud_meta_mgr.cpp
@@ -131,7 +131,7 @@ bvar::LatencyRecorder 
g_cloud_commit_txn_resp_redirect_latency("cloud_table_stat
 class MetaServiceProxy {
 public:
 static Status get_client(std::shared_ptr* stub) {
-SYNC_POINT_RETURN_WITH_VALUE("MetaServiceProxy::get_client", 
Status::OK(), stub);
+TEST_SYNC_POINT_RETURN_WITH_VALUE("MetaServiceProxy::get_client", 
Status::OK(), stub);
 return get_pooled_client(stub);
 }
 
diff --git a/be/src/common/sync_point.h b/be/src/common/sync_point.h
index 9cddce96e4c..81764a09ee9 100644
--- a/be/src/common/sync_point.h
+++ b/be/src/common/sync_point.h
@@ -228,12 +228,12 @@ auto try_any_cast_ret(std::vector& any) {
 namespace doris::config {
 extern bool enable_injection_point;
 }
-# define TEST_INJECTION_POINT(x) if (doris::config::enable_injection_point) { 
SYNC_POINT(x); }
-# define TEST_IDX_INJECTION_POINT(x, index) if 
(doris::config::enable_injection_point) { IDX_SYNC_POINT(x, index); }
-# define TEST_INJECTION_POINT_CALLBACK(x, ...) if 
(doris::config::enable_injection_point) { SYNC_POINT_CALLBACK(x, __VA_ARGS__); }
-# define TEST_INJECTION_POINT_SINGLETON() if 
(doris::config::enable_injection_point) { SYNC_POINT_SINGLETON(); }
-# define TEST_INJECTION_POINT_RETURN_WITH_VALUE(x, default_ret_val, ...) if 
(doris::config::enable_injection_point) { SYNC_POINT_RETURN_WITH_VALUE(x, 
default_ret_val, __VA_ARGS__); }
-# define TEST_INJECTION_POINT_RETURN_WITH_VOID(x, ...) if 
(doris::config::enable_injection_point) { SYNC_POINT_RETURN_WITH_VOID(x, 
__VA_ARGS__); }
+# define TEST_INJECTION_POINT(x) if (doris::config::enable_injection_point) { 
LOG_INFO("enter inject point {}", x); SYNC_POINT(x); }
+# define TEST_IDX_INJECTION_POINT(x, index) if 
(doris::config::enable_injection_point) { LOG_INFO("enter inject point {}", x); 
IDX_SYNC_POINT(x, index); }
+# define TEST_INJECTION_POINT_CALLBACK(x, ...) if 
(doris::config::enable_injection_point) { LOG_INFO("enter inject point {}", x); 
SYNC_POINT_CALLBACK(x, __VA_ARGS__); }
+# define TEST_INJECTION_POINT_SINGLETON() if 
(doris::config::enable_injection_point) { LOG_INFO("enter inject point {}", x); 
SYNC_POINT_SINGLETON(); }
+# define TEST_INJECTION_POINT_RETURN_WITH_VALUE(x, default_ret_val, ...) if 
(doris::config::enable_injection_point) { LOG_INFO("enter inject point {}", x); 
SYNC_POINT_RETURN_WITH_VALUE(x, default_ret_val, __VA_ARGS__); }
+# define TEST_INJECTION_POINT_RETURN_WITH_VOID(x, ...) if 
(doris::config::enable_injection_point) { LOG_INFO("enter inject point {}", x); 
SYNC_POINT_RETURN_WITH_VOID(x, __VA_ARGS__); }
 #endif // ENABLE_INJECTION_POINT
 
 // clang-format on
diff --git a/be/src/http/action/config_action.cpp 
b/be/src/http/action/config_action.cpp
index a9de9dc2406..b855de88100 100644
--- a/be/src/http/action/config_action.cpp
+++ b/be/src/http/action/config_action.cpp
@@ -62,7 +62,7 @@ void ConfigAction::handle_show_config(HttpRequest* req) {
 
 writer.StartArray();
 for (const auto& _config : config_info) {
-if (conf_item != nullptr || conf_item != "") {
+if (conf_item != nullptr || !conf_item.empty()) {
 if (_config[0] == conf_item) {
 writer.StartArray();
 for (const std::string& config_filed : _config) {
diff --git a/be/src/io/fs/hdfs_file_writer.cpp 
b/be/src/io/fs/hdfs_file_writer.cpp
index 9ea66ca4da1..54e609a040b 100644
--- a/be/src/io/fs/hdfs_file_writer.cpp
+++ b/be/src/io/fs/hdfs_file_writer.cpp
@@ -185,11 +185,11 @@ Status HdfsFileWriter::append_hdfs_file(std::string_view 
content) {
 written_bytes =
 hdfsWrite(_hdfs_handler->hdfs_fs, _hdfs_file, 
content.data(), content.size());
 {
-[[maybe_unused]] Status error_ret = Status::InternalError(
-"write hdfs failed. fs_name: {}, path: {}, error: size 
exceeds", _fs_name,
- 

(doris) branch master updated: (cloud-merge) Fix the case timeout because the sql fetches too many datas (#33300)

2024-04-07 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

plat1ko 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 7c73df569f9 (cloud-merge) Fix the case timeout because the sql fetches 
too many datas (#33300)
7c73df569f9 is described below

commit 7c73df569f9ddc5d0a6424200646f585afd7e05b
Author: Lightman <31928846+lchangli...@users.noreply.github.com>
AuthorDate: Sun Apr 7 16:12:51 2024 +0800

(cloud-merge) Fix the case timeout because the sql fetches too many datas 
(#33300)
---
 regression-test/suites/cloud_p0/cache/ttl/alter_ttl_4.groovy | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/regression-test/suites/cloud_p0/cache/ttl/alter_ttl_4.groovy 
b/regression-test/suites/cloud_p0/cache/ttl/alter_ttl_4.groovy
index 188bfd0a9cb..398ca843243 100644
--- a/regression-test/suites/cloud_p0/cache/ttl/alter_ttl_4.groovy
+++ b/regression-test/suites/cloud_p0/cache/ttl/alter_ttl_4.groovy
@@ -165,16 +165,18 @@ suite("alter_ttl_4") {
 load_customer_once("customer")
 
 sql """ ALTER TABLE customer_ttl SET ("file_cache_ttl_seconds"="3600") """
+// wait for fetching new tablet meta in BE
 sleep(6)
 // some datas in s3 and will download them
-sql """ select C_CUSTKEY from customer_ttl"""
-sql """ select C_NAME from customer_ttl"""
+sql """ select C_CUSTKEY from customer_ttl order by C_CUSTKEY limit 1"""
+sql """ select C_NAME from customer_ttl order by C_NAME limit 1"""
 sql """ select C_ADDRESS from customer_ttl order by C_ADDRESS limit 1"""
 sql """ select C_NATIONKEY from customer_ttl order by C_NATIONKEY limit 
1"""
 sql """ select C_PHONE from customer_ttl order by C_PHONE limit 1 """
 sql """ select C_ACCTBAL from customer_ttl order by C_ACCTBAL limit 1"""
 sql """ select C_MKTSEGMENT from customer_ttl order by C_MKTSEGMENT limit 
1"""
 sql """ select C_COMMENT from customer_ttl order by C_COMMENT limit 1"""
+// wait for updating file cache metrics
 sleep(3)
 getMetricsMethod.call() {
 respCode, body ->


-
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org



(doris) branch branch-2.1 updated: [fix](cooldown) Fix hdfs path (#33315)

2024-04-08 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

plat1ko pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
 new 97850cf2bbf [fix](cooldown) Fix hdfs path (#33315)
97850cf2bbf is described below

commit 97850cf2bbf6d3fac993094e70731af5966f94f9
Author: plat1ko 
AuthorDate: Tue Apr 9 12:55:53 2024 +0800

[fix](cooldown) Fix hdfs path (#33315)
---
 be/src/io/fs/hdfs_file_system.cpp |  7 ---
 be/src/util/hdfs_util.cpp | 22 --
 2 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/be/src/io/fs/hdfs_file_system.cpp 
b/be/src/io/fs/hdfs_file_system.cpp
index 5b5dbba16b2..22b4784ea61 100644
--- a/be/src/io/fs/hdfs_file_system.cpp
+++ b/be/src/io/fs/hdfs_file_system.cpp
@@ -283,11 +283,12 @@ Status HdfsFileSystem::list_impl(const Path& path, bool 
only_file, std::vectoremplace_back();
+std::string_view fname(file.mName);
+fname.remove_prefix(fname.rfind('/') + 1);
+file_info.file_name = fname;
 file_info.file_size = file.mSize;
 file_info.is_file = (file.mKind != kObjectKindDirectory);
-files->emplace_back(std::move(file_info));
 }
 hdfsFreeFileInfo(hdfs_file_info, numEntries);
 return Status::OK();
diff --git a/be/src/util/hdfs_util.cpp b/be/src/util/hdfs_util.cpp
index 6e99fdea3d3..794c53f15e4 100644
--- a/be/src/util/hdfs_util.cpp
+++ b/be/src/util/hdfs_util.cpp
@@ -42,17 +42,19 @@ hdfsFS HDFSHandle::create_hdfs_fs(HDFSCommonBuilder& 
hdfs_builder) {
 }
 
 Path convert_path(const Path& path, const std::string& namenode) {
-Path real_path(path);
-if (path.string().find(namenode) != std::string::npos) {
-std::string real_path_str = path.string().substr(namenode.size());
-if (!real_path_str.starts_with("/")) {
-// The real path must starts with "/"
-// Or the hadoop client will add a prefix like "/user/hadoop".
-real_path_str = "/" + real_path_str;
-}
-real_path = real_path_str;
+std::string fs_path;
+if (path.native().starts_with(namenode)) {
+// `path` is URI format, remove the namenode part in `path`
+fs_path = path.native().substr(namenode.size());
+} else {
+fs_path = path;
 }
-return real_path;
+
+// Always use absolute path (start with '/') in hdfs
+if (fs_path.empty() || fs_path[0] != '/') {
+fs_path.insert(fs_path.begin(), '/');
+}
+return fs_path;
 }
 
 bool is_hdfs(const std::string& path_or_fs) {


-
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org



(doris) branch master updated: [feature](Cloud) Generate one suffix to distinguish different hdfs root path (#33411)

2024-04-09 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

plat1ko 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 7cd7d4902eb [feature](Cloud) Generate one suffix to distinguish 
different hdfs root path (#33411)
7cd7d4902eb is described below

commit 7cd7d4902eb9d6a54f7cf1b5b95693c7d9df639e
Author: AlexYue 
AuthorDate: Tue Apr 9 16:52:54 2024 +0800

[feature](Cloud) Generate one suffix to distinguish different hdfs root 
path (#33411)
---
 cloud/src/common/config.h|  2 ++
 cloud/src/meta-service/meta_service_resource.cpp | 10 ++
 2 files changed, 12 insertions(+)

diff --git a/cloud/src/common/config.h b/cloud/src/common/config.h
index 41e8529dbf0..5640aef2cf9 100644
--- a/cloud/src/common/config.h
+++ b/cloud/src/common/config.h
@@ -165,4 +165,6 @@ CONF_String(kerberos_ccache_path, "");
 // set krb5.conf path, use "/etc/krb5.conf" by default
 CONF_String(kerberos_krb5_conf_path, "/etc/krb5.conf");
 
+CONF_mBool(enable_distinguish_hdfs_path, "true");
+
 } // namespace doris::cloud::config
diff --git a/cloud/src/meta-service/meta_service_resource.cpp 
b/cloud/src/meta-service/meta_service_resource.cpp
index 82056a5172c..f4f8c944c7b 100644
--- a/cloud/src/meta-service/meta_service_resource.cpp
+++ b/cloud/src/meta-service/meta_service_resource.cpp
@@ -16,6 +16,7 @@
 // under the License.
 
 #include 
+#include 
 #include 
 #include 
 
@@ -384,6 +385,15 @@ static int add_hdfs_storage_vault(InstanceInfoPB& 
instance, Transaction* txn,
 msg = fmt::format("invalid prefix: ", *prefix);
 return -1;
 }
+if (config::enable_distinguish_hdfs_path) {
+auto uuid_suffix = butil::GenerateGUID();
+if (uuid_suffix.empty()) [[unlikely]] {
+code = MetaServiceCode::UNDEFINED_ERR;
+msg = fmt::format("failed to generate one suffix for hdfs prefix");
+return -1;
+}
+*prefix = fmt::format("{}_{}", *prefix, uuid_suffix);
+}
 
 auto* fs_name = 
hdfs_param.mutable_hdfs_info()->mutable_build_conf()->mutable_fs_name();
 if (!normalize_hdfs_fs_name(*fs_name)) {


-
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org



(doris) branch master updated: add config enable_create_bitmap_index_as_inverted_index (#33434)

2024-04-09 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

plat1ko 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 c8c689714d0 add config enable_create_bitmap_index_as_inverted_index 
(#33434)
c8c689714d0 is described below

commit c8c689714d0c9907752c7b80646242780982e06e
Author: Kang 
AuthorDate: Tue Apr 9 21:04:14 2024 +0800

add config enable_create_bitmap_index_as_inverted_index (#33434)
---
 fe/fe-common/src/main/java/org/apache/doris/common/Config.java | 3 +++
 fe/fe-core/src/main/cup/sql_parser.cup | 7 ++-
 .../java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java   | 3 ++-
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java 
b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
index bc478f43864..20ac31289b5 100644
--- a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
+++ b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
@@ -2632,6 +2632,9 @@ public class Config extends ConfigBase {
 @ConfField(mutable = true, masterOnly = true)
 public static boolean enable_light_index_change = true;
 
+@ConfField(mutable = true, masterOnly = true)
+public static boolean enable_create_bitmap_index_as_inverted_index = false;
+
 // The original meta read lock is not enough to keep a snapshot of 
partition versions,
 // so the execution of `createScanRangeLocations` are delayed to 
`Coordinator::exec`,
 // to help to acquire a snapshot of partition versions.
diff --git a/fe/fe-core/src/main/cup/sql_parser.cup 
b/fe/fe-core/src/main/cup/sql_parser.cup
index ac623e39ff4..08b793c4352 100644
--- a/fe/fe-core/src/main/cup/sql_parser.cup
+++ b/fe/fe-core/src/main/cup/sql_parser.cup
@@ -48,6 +48,7 @@ import org.apache.doris.catalog.StructType;
 import org.apache.doris.catalog.TableIf.TableType;
 import org.apache.doris.catalog.View;
 import org.apache.doris.common.AnalysisException;
+import org.apache.doris.common.Config;
 import org.apache.doris.common.FeConstants;
 import org.apache.doris.common.Version;
 import org.apache.doris.cloud.analysis.UseCloudClusterStmt;
@@ -3881,7 +3882,11 @@ opt_index_type ::=
 :}
 | KW_USING KW_BITMAP
 {:
-RESULT = IndexDef.IndexType.INVERTED;
+if (Config.enable_create_bitmap_index_as_inverted_index) {
+RESULT = IndexDef.IndexType.INVERTED;
+} else {
+RESULT = IndexDef.IndexType.BITMAP;
+}
 :}
 | KW_USING KW_NGRAM_BF
 {:
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
index 874b6a0d432..793cc9e258f 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
@@ -2625,7 +2625,8 @@ public class LogicalPlanBuilder extends 
DorisParserBaseVisitor {
 String indexType = ctx.indexType != null ? 
ctx.indexType.getText().toUpperCase() : null;
 String comment = ctx.comment != null ? ctx.comment.getText() : "";
 // change BITMAP index to INVERTED index
-if ("BITMAP".equalsIgnoreCase(indexType)) {
+if (Config.enable_create_bitmap_index_as_inverted_index
+&& "BITMAP".equalsIgnoreCase(indexType)) {
 indexType = "INVERTED";
 }
 return new IndexDefinition(indexName, indexCols, indexType, 
properties, comment);


-
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org



(doris) branch master updated: [fix](fs) Close local file writer when downloading finished (#33556)

2024-04-11 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

plat1ko 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 ab015d6379c [fix](fs) Close local file writer when downloading 
finished (#33556)
ab015d6379c is described below

commit ab015d6379cff2e0251ce077e3c2bca238cbb9b2
Author: walter 
AuthorDate: Fri Apr 12 11:10:15 2024 +0800

[fix](fs) Close local file writer when downloading finished (#33556)
---
 be/src/io/fs/hdfs_file_system.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/be/src/io/fs/hdfs_file_system.cpp 
b/be/src/io/fs/hdfs_file_system.cpp
index bd535066106..5ea742c20d5 100644
--- a/be/src/io/fs/hdfs_file_system.cpp
+++ b/be/src/io/fs/hdfs_file_system.cpp
@@ -320,8 +320,7 @@ Status HdfsFileSystem::download_impl(const Path& 
remote_file, const Path& local_
 
 RETURN_IF_ERROR(local_writer->append({read_buf.get(), read_len}));
 }
-
-return Status::OK();
+return local_writer->close();
 }
 
 } // namespace doris::io


-
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org



(doris) branch master updated (806e2418a53 -> a33d2ee0f7e)

2024-05-22 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

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


from 806e2418a53 [fix](mtmv) Fix table id overturn and optimize get table 
qualifier method (#34768)
 add a33d2ee0f7e  [bug](Cloud) Use value capture for done closure when 
alter vault sync

No new revisions were added by this update.

Summary of changes:
 be/src/cloud/cloud_internal_service.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


-
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org



(doris) branch master updated: [chore](cloud) Use c++20 and unleash endian check (#34735)

2024-05-24 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

plat1ko 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 5aab04bbf51 [chore](cloud) Use c++20 and unleash endian check (#34735)
5aab04bbf51 is described below

commit 5aab04bbf51e6878a5a9e5b2d11533b8ef453b19
Author: Gavin Chou 
AuthorDate: Sat May 25 13:36:57 2024 +0800

[chore](cloud) Use c++20 and unleash endian check (#34735)

Use c++20 and unleash endian check to prevent misuse.
---
 cloud/CMakeLists.txt | 2 +-
 cloud/src/meta-service/doris_txn.cpp | 5 -
 cloud/src/meta-service/txn_kv.cpp| 8 
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/cloud/CMakeLists.txt b/cloud/CMakeLists.txt
index 9b9929ae1d5..22469ef4d37 100644
--- a/cloud/CMakeLists.txt
+++ b/cloud/CMakeLists.txt
@@ -137,7 +137,7 @@ check_function_exists(sched_getcpu HAVE_SCHED_GETCPU)
 #  -fno-omit-frame-pointers: Keep frame pointer for functions in register
 set(CXX_COMMON_FLAGS "${CXX_COMMON_FLAGS} -Wall -Wno-sign-compare -pthread 
-Werror")
 set(CXX_COMMON_FLAGS "${CXX_COMMON_FLAGS} -fstrict-aliasing 
-fno-omit-frame-pointer")
-set(CXX_COMMON_FLAGS "${CXX_COMMON_FLAGS} -std=gnu++17 -D__STDC_FORMAT_MACROS")
+set(CXX_COMMON_FLAGS "${CXX_COMMON_FLAGS} -std=gnu++20 -D__STDC_FORMAT_MACROS")
 set(CXX_COMMON_FLAGS "${CXX_COMMON_FLAGS} 
-DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG")
 set(CXX_COMMON_FLAGS "${CXX_COMMON_FLAGS} -DBOOST_SYSTEM_NO_DEPRECATED")
 # Enable the cpu and heap profile of brpc
diff --git a/cloud/src/meta-service/doris_txn.cpp 
b/cloud/src/meta-service/doris_txn.cpp
index 7c185bbeb4a..eb01dd4d874 100644
--- a/cloud/src/meta-service/doris_txn.cpp
+++ b/cloud/src/meta-service/doris_txn.cpp
@@ -17,6 +17,8 @@
 
 #include "doris_txn.h"
 
+#include 
+
 namespace doris::cloud {
 
 int get_txn_id_from_fdb_ts(std::string_view fdb_vts, int64_t* txn_id) {
@@ -29,7 +31,8 @@ int get_txn_id_from_fdb_ts(std::string_view fdb_vts, int64_t* 
txn_id) {
 // byte addr 0 1 2 3 4 5 6 7  8 9
 int64_t ver = *reinterpret_cast(fdb_vts.data());
 
-// static_assert(std::endian::little); // Since c++20
+// TODO(gavin): implementation for big-endian or make it endian-independent
+static_assert(std::endian::native == std::endian::little); // Since c++20
 // Convert big endian to little endian
 static auto to_little = [](int64_t v) {
 v = ((v & 0x) >> 32) | ((v & 0x) << 
32);
diff --git a/cloud/src/meta-service/txn_kv.cpp 
b/cloud/src/meta-service/txn_kv.cpp
index 4c732892be1..ebb63d095f8 100644
--- a/cloud/src/meta-service/txn_kv.cpp
+++ b/cloud/src/meta-service/txn_kv.cpp
@@ -19,11 +19,11 @@
 
 #include 
 #include 
-#include 
 #include 
 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -420,9 +420,9 @@ bool Transaction::decode_atomic_int(std::string_view data, 
int64_t* val) {
 
 // ATTN: The FDB_MUTATION_TYPE_ADD stores integers in a little-endian 
representation.
 std::memcpy(val, data.data(), sizeof(*val));
-#if __BYTE_ORDER == __BIG_ENDIAN
-*val = bswap_64(*val);
-#endif
+if constexpr (std::endian::native == std::endian::big) {
+*val = bswap_64(*val);
+}
 return true;
 }
 


-
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org



(doris) branch master updated (99c5a805d08 -> 54773531c3c)

2024-05-26 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

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


from 99c5a805d08 [Feature](topn) support general expr with topn filter and 
some refactor (#35405)
 add 54773531c3c [fix](Nereids): avoid memory usage due to multiple 
iterations when eliminate func deps (#35408)

No new revisions were added by this update.

Summary of changes:
 .../src/main/java/org/apache/doris/nereids/properties/FuncDeps.java | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)


-
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org



(doris) branch master updated (c6b766722be -> 401910c017f)

2024-04-18 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

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


from c6b766722be [Fix](planner) fix create view star except and modify cast 
to sql (#33726)
 add 401910c017f [feature](Cloud) Enable write into file cache for hdfs 
writer (#33796)

No new revisions were added by this update.

Summary of changes:
 be/src/common/config.cpp  |   1 +
 be/src/common/config.h|   1 +
 be/src/io/cache/file_cache_common.cpp |  11 ++
 be/src/io/cache/file_cache_common.h   |  12 ++
 be/src/io/fs/hdfs_file_system.cpp |   4 +-
 be/src/io/fs/hdfs_file_writer.cpp | 199 --
 be/src/io/fs/hdfs_file_writer.h   |  35 +-
 be/src/io/hdfs_util.cpp   |  11 ++
 be/src/io/hdfs_util.h |  12 ++
 9 files changed, 245 insertions(+), 41 deletions(-)


-
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org



(doris) branch branch-3.0 updated: [fix](checker) Clarified the semantics of the checker return value (#38785)

2024-08-26 Thread plat1ko
This is an automated email from the ASF dual-hosted git repository.

plat1ko pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-3.0 by this push:
 new 7131a3b39b3 [fix](checker) Clarified the semantics of the checker 
return value (#38785)
7131a3b39b3 is described below

commit 7131a3b39b32bcafad3b4a6c062d24dfdb7bd5d8
Author: plat1ko 
AuthorDate: Mon Aug 26 19:50:56 2024 +0800

[fix](checker) Clarified the semantics of the checker return value (#38785)
---
 cloud/src/recycler/checker.cpp | 68 --
 cloud/src/recycler/checker.h   | 13 
 2 files changed, 53 insertions(+), 28 deletions(-)

diff --git a/cloud/src/recycler/checker.cpp b/cloud/src/recycler/checker.cpp
index 49421f97ca0..f8289160269 100644
--- a/cloud/src/recycler/checker.cpp
+++ b/cloud/src/recycler/checker.cpp
@@ -167,10 +167,20 @@ int Checker::start() {
 
duration_cast(system_clock::now().time_since_epoch()).count();
 g_bvar_checker_enqueue_cost_s.put(instance_id, ctime_ms / 1000 - 
enqueue_time_s);
 ret = checker->do_check();
+
 if (config::enable_inverted_check) {
-if (checker->do_inverted_check() != 0) ret = -1;
+if (ret == 0) {
+ret = checker->do_inverted_check();
+}
+}
+
+if (ret < 0) {
+// If ret < 0, it means that a temporary error occurred during 
the check process.
+// The check job should not be considered finished, and the 
next round of check job
+// should be retried as soon as possible.
+return;
 }
-if (ret == -1) return;
+
 // If instance checker has been aborted, don't finish this job
 if (!checker->stopped()) {
 finish_instance_recycle_job(txn_kv_.get(), check_job_key, 
instance.instance_id(),
@@ -444,9 +454,10 @@ int InstanceChecker::init_storage_vault_accessors(const 
InstanceInfoPB& instance
 int InstanceChecker::do_check() {
 TEST_SYNC_POINT("InstanceChecker.do_check");
 LOG(INFO) << "begin to check instance objects instance_id=" << 
instance_id_;
+int check_ret = 0;
 long num_scanned = 0;
 long num_scanned_with_segment = 0;
-long num_check_failed = 0;
+long num_rowset_loss = 0;
 long instance_volume = 0;
 using namespace std::chrono;
 auto start_time = steady_clock::now();
@@ -455,11 +466,11 @@ int InstanceChecker::do_check() {
 LOG(INFO) << "check instance objects finished, cost=" << cost
   << "s. instance_id=" << instance_id_ << " num_scanned=" << 
num_scanned
   << " num_scanned_with_segment=" << num_scanned_with_segment
-  << " num_check_failed=" << num_check_failed
+  << " num_rowset_loss=" << num_rowset_loss
   << " instance_volume=" << instance_volume;
 g_bvar_checker_num_scanned.put(instance_id_, num_scanned);
 g_bvar_checker_num_scanned_with_segment.put(instance_id_, 
num_scanned_with_segment);
-g_bvar_checker_num_check_failed.put(instance_id_, num_check_failed);
+g_bvar_checker_num_check_failed.put(instance_id_, num_rowset_loss);
 g_bvar_checker_check_cost_s.put(instance_id_, static_cast(cost));
 // FIXME(plat1ko): What if some list operation failed?
 g_bvar_checker_instance_volume.put(instance_id_, instance_volume);
@@ -490,7 +501,7 @@ int InstanceChecker::do_check() {
 .tag("resource_id", rs_meta.resource_id())
 .tag("tablet_id", rs_meta.tablet_id())
 .tag("rowset_id", rs_meta.rowset_id_v2());
-++num_check_failed;
+check_ret = -1;
 return;
 }
 
@@ -498,7 +509,7 @@ int InstanceChecker::do_check() {
 int ret = 
find_it->second->list_directory(tablet_path_prefix(rs_meta.tablet_id()),
   &list_iter);
 if (ret != 0) { // No need to log, because S3Accessor has logged 
this error
-++num_check_failed;
+check_ret = -1;
 return;
 }
 
@@ -510,6 +521,7 @@ int InstanceChecker::do_check() {
 instance_volume += tablet_volume;
 }
 
+bool data_loss = false;
 for (int i = 0; i < rs_meta.num_segments(); ++i) {
 auto path = segment_path(rs_meta.tablet_id(), 
rs_meta.rowset_id_v2(), i);
 if (tablet_files_c