This is an automated email from the ASF dual-hosted git repository.
dataroaring 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 c346f4d6386 [Improvement](Storage) Lazy init mini_download dir (#24649)
c346f4d6386 is described below
commit c346f4d6386f35b261e7063e90bc3a329b664ee8
Author: HHoflittlefish777 <[email protected]>
AuthorDate: Fri Sep 22 16:23:26 2023 +0800
[Improvement](Storage) Lazy init mini_download dir (#24649)
---
be/src/runtime/load_path_mgr.cpp | 13 ++++++-------
be/src/runtime/load_path_mgr.h | 2 ++
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/be/src/runtime/load_path_mgr.cpp b/be/src/runtime/load_path_mgr.cpp
index e241eeafea4..93fbeb7d929 100644
--- a/be/src/runtime/load_path_mgr.cpp
+++ b/be/src/runtime/load_path_mgr.cpp
@@ -65,9 +65,6 @@ void LoadPathMgr::stop() {
Status LoadPathMgr::init() {
_path_vec.clear();
- for (auto& path : _exec_env->store_paths()) {
- _path_vec.push_back(path.path + "/" + MINI_PREFIX);
- }
LOG(INFO) << "Load path configured to [" << boost::join(_path_vec, ",") <<
"]";
// error log is saved in first root path
@@ -91,13 +88,15 @@ Status LoadPathMgr::init() {
Status LoadPathMgr::allocate_dir(const std::string& db, const std::string&
label,
std::string* prefix) {
- if (_path_vec.empty()) {
- return Status::InternalError("No load path configured.");
- }
+ Status status = _init_once.call([this] {
+ for (auto& store_path : _exec_env->store_paths()) {
+ _path_vec.push_back(store_path.path + "/" + MINI_PREFIX);
+ }
+ return Status::OK();
+ });
std::string path;
auto size = _path_vec.size();
auto retry = size;
- Status status = Status::OK();
while (retry--) {
{
// add SHARD_PREFIX for compatible purpose
diff --git a/be/src/runtime/load_path_mgr.h b/be/src/runtime/load_path_mgr.h
index de443f059b4..6c81b940a23 100644
--- a/be/src/runtime/load_path_mgr.h
+++ b/be/src/runtime/load_path_mgr.h
@@ -27,6 +27,7 @@
#include "common/status.h"
#include "gutil/ref_counted.h"
#include "util/countdown_latch.h"
+#include "util/once.h"
namespace doris {
@@ -70,6 +71,7 @@ private:
uint32_t _error_path_next_shard;
CountDownLatch _stop_background_threads_latch;
scoped_refptr<Thread> _clean_thread;
+ DorisCallOnce<Status> _init_once;
};
} // namespace doris
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]