You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by "platoneko (via GitHub)" <gi...@apache.org> on 2024/03/25 11:59:21 UTC

[PR] [enhance](gc) Skip tablet dir without schema hash dir in path gc [doris]

platoneko opened a new pull request, #32793:
URL: https://github.com/apache/doris/pull/32793

   ## Proposed changes
   
   Skip tablet dir without schema hash dir in path gc.
   Adjusting path gc process for better readability.
   
   ## Further comments
   
   If this is a relatively large or complex change, kick off the discussion at [dev@doris.apache.org](mailto:dev@doris.apache.org) by explaining why you chose the solution you did and what alternatives you considered, etc...
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


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


Re: [PR] [fix](gc) Skip tablet dir without schema hash dir in path gc [doris]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #32793:
URL: https://github.com/apache/doris/pull/32793#issuecomment-2018296339

   PR approved by anyone and no changes requested.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


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


Re: [PR] [enhance](gc) Skip tablet dir without schema hash dir in path gc [doris]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on code in PR #32793:
URL: https://github.com/apache/doris/pull/32793#discussion_r1537481321


##########
be/src/olap/data_dir.cpp:
##########
@@ -638,217 +638,205 @@ Status DataDir::load() {
     return Status::OK();
 }
 
-void DataDir::perform_path_gc() {
-    auto tablet_paths = _perform_path_scan();
-    _perform_path_gc_by_tablet(tablet_paths);
-    _perform_path_gc_by_rowset(tablet_paths);
-}
+// gc unused local tablet dir
+void DataDir::_perform_tablet_gc(const std::string& tablet_schema_hash_path) {
+    if (_stop_bg_worker) {
+        return;
+    }
 
-// gc unused tablet schemahash dir
-void DataDir::_perform_path_gc_by_tablet(std::vector<std::string>& tablet_paths) {
-    if (_stop_bg_worker || tablet_paths.empty()) {
+    TTabletId tablet_id = -1;
+    TSchemaHash schema_hash = -1;
+    bool is_valid = TabletManager::get_tablet_id_and_schema_hash_from_path(
+            tablet_schema_hash_path, &tablet_id, &schema_hash);
+    if (!is_valid || tablet_id < 1 || schema_hash < 1) [[unlikely]] {
+        LOG(WARNING) << "[path gc] unknown path: " << tablet_schema_hash_path;
         return;
     }
 
-    LOG(INFO) << "start to path gc by tablet, dir=" << _path;
-    // Use double pointer to avoid move elements after erase a element
-    auto forward = tablet_paths.begin();
-    auto backward = tablet_paths.end();
-    int counter = 0;
-    do {
-        if (config::path_gc_check_step > 0 && counter % config::path_gc_check_step == 0) {
-            std::this_thread::sleep_for(
-                    std::chrono::milliseconds(config::path_gc_check_step_interval_ms));
-        }
-        auto& path = *forward;
-        TTabletId tablet_id = -1;
-        TSchemaHash schema_hash = -1;
-        bool is_valid = TabletManager::get_tablet_id_and_schema_hash_from_path(path, &tablet_id,
-                                                                               &schema_hash);
-        if (!is_valid || tablet_id < 1 || schema_hash < 1) [[unlikely]] {
-            LOG(WARNING) << "unknown path:" << path;
-            --backward;
-            std::swap(*forward, *backward);
-            continue;
-        }
-        auto tablet = _engine.tablet_manager()->get_tablet(tablet_id);
-        if (!tablet || tablet->data_dir() != this) {
-            if (tablet) {
-                LOG(INFO) << "The tablet in path " << path
-                          << " is not same with the running one: " << tablet->data_dir()->_path
-                          << "/" << tablet->tablet_path()
-                          << ", might be the old tablet after migration, try to move it to trash";
-            }
-            _engine.tablet_manager()->try_delete_unused_tablet_path(this, tablet_id, schema_hash,
-                                                                    path);
-            --backward;
-            std::swap(*forward, *backward);
-            continue;
+    auto tablet = _engine.tablet_manager()->get_tablet(tablet_id);
+    if (!tablet || tablet->data_dir() != this) {
+        if (tablet) {
+            LOG(INFO) << "The tablet in path " << tablet_schema_hash_path
+                      << " is not same with the running one: " << tablet->data_dir()->_path << "/"
+                      << tablet->tablet_path()
+                      << ", might be the old tablet after migration, try to move it to trash";
         }
-        // could find the tablet, then skip check it
-        ++forward;
-    } while (forward != backward && !_stop_bg_worker);
-    tablet_paths.erase(backward, tablet_paths.end());
-    LOG(INFO) << "finish path gc by tablet, dir=" << _path;
+        _engine.tablet_manager()->try_delete_unused_tablet_path(this, tablet_id, schema_hash,
+                                                                tablet_schema_hash_path);
+        return;
+    }
+
+    _perform_rowset_gc(tablet_schema_hash_path);
 }
 
-void DataDir::_perform_path_gc_by_rowset(const std::vector<std::string>& tablet_paths) {
-    if (_stop_bg_worker || tablet_paths.empty()) {
+// gc unused local rowsets under tablet dir
+void DataDir::_perform_rowset_gc(const std::string& tablet_schema_hash_path) {

Review Comment:
   warning: function '_perform_rowset_gc' exceeds recommended size/complexity thresholds [readability-function-size]
   ```cpp
   void DataDir::_perform_rowset_gc(const std::string& tablet_schema_hash_path) {
                 ^
   ```
   <details>
   <summary>Additional context</summary>
   
   **be/src/olap/data_dir.cpp:672:** 98 lines including whitespace and comments (threshold 80)
   ```cpp
   void DataDir::_perform_rowset_gc(const std::string& tablet_schema_hash_path) {
                 ^
   ```
   
   </details>
   



##########
be/test/olap/path_gc_test.cpp:
##########
@@ -15,7 +15,6 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gen_cpp/Types_types.h>
 #include <gtest/gtest.h>

Review Comment:
   warning: 'gtest/gtest.h' file not found [clang-diagnostic-error]
   ```cpp
   #include <gtest/gtest.h>
            ^
   ```
   



##########
be/src/olap/data_dir.cpp:
##########
@@ -638,217 +638,205 @@
     return Status::OK();
 }
 
-void DataDir::perform_path_gc() {
-    auto tablet_paths = _perform_path_scan();
-    _perform_path_gc_by_tablet(tablet_paths);
-    _perform_path_gc_by_rowset(tablet_paths);
-}
+// gc unused local tablet dir
+void DataDir::_perform_tablet_gc(const std::string& tablet_schema_hash_path) {
+    if (_stop_bg_worker) {
+        return;
+    }
 
-// gc unused tablet schemahash dir
-void DataDir::_perform_path_gc_by_tablet(std::vector<std::string>& tablet_paths) {
-    if (_stop_bg_worker || tablet_paths.empty()) {
+    TTabletId tablet_id = -1;
+    TSchemaHash schema_hash = -1;
+    bool is_valid = TabletManager::get_tablet_id_and_schema_hash_from_path(
+            tablet_schema_hash_path, &tablet_id, &schema_hash);
+    if (!is_valid || tablet_id < 1 || schema_hash < 1) [[unlikely]] {
+        LOG(WARNING) << "[path gc] unknown path: " << tablet_schema_hash_path;
         return;
     }
 
-    LOG(INFO) << "start to path gc by tablet, dir=" << _path;
-    // Use double pointer to avoid move elements after erase a element
-    auto forward = tablet_paths.begin();
-    auto backward = tablet_paths.end();
-    int counter = 0;
-    do {
-        if (config::path_gc_check_step > 0 && counter % config::path_gc_check_step == 0) {
-            std::this_thread::sleep_for(
-                    std::chrono::milliseconds(config::path_gc_check_step_interval_ms));
-        }
-        auto& path = *forward;
-        TTabletId tablet_id = -1;
-        TSchemaHash schema_hash = -1;
-        bool is_valid = TabletManager::get_tablet_id_and_schema_hash_from_path(path, &tablet_id,
-                                                                               &schema_hash);
-        if (!is_valid || tablet_id < 1 || schema_hash < 1) [[unlikely]] {
-            LOG(WARNING) << "unknown path:" << path;
-            --backward;
-            std::swap(*forward, *backward);
-            continue;
-        }
-        auto tablet = _engine.tablet_manager()->get_tablet(tablet_id);
-        if (!tablet || tablet->data_dir() != this) {
-            if (tablet) {
-                LOG(INFO) << "The tablet in path " << path
-                          << " is not same with the running one: " << tablet->data_dir()->_path
-                          << "/" << tablet->tablet_path()
-                          << ", might be the old tablet after migration, try to move it to trash";
-            }
-            _engine.tablet_manager()->try_delete_unused_tablet_path(this, tablet_id, schema_hash,
-                                                                    path);
-            --backward;
-            std::swap(*forward, *backward);
-            continue;
+    auto tablet = _engine.tablet_manager()->get_tablet(tablet_id);
+    if (!tablet || tablet->data_dir() != this) {
+        if (tablet) {
+            LOG(INFO) << "The tablet in path " << tablet_schema_hash_path
+                      << " is not same with the running one: " << tablet->data_dir()->_path << "/"
+                      << tablet->tablet_path()
+                      << ", might be the old tablet after migration, try to move it to trash";
         }
-        // could find the tablet, then skip check it
-        ++forward;
-    } while (forward != backward && !_stop_bg_worker);
-    tablet_paths.erase(backward, tablet_paths.end());
-    LOG(INFO) << "finish path gc by tablet, dir=" << _path;
+        _engine.tablet_manager()->try_delete_unused_tablet_path(this, tablet_id, schema_hash,
+                                                                tablet_schema_hash_path);
+        return;
+    }
+
+    _perform_rowset_gc(tablet_schema_hash_path);
 }
 
-void DataDir::_perform_path_gc_by_rowset(const std::vector<std::string>& tablet_paths) {
-    if (_stop_bg_worker || tablet_paths.empty()) {
+// gc unused local rowsets under tablet dir
+void DataDir::_perform_rowset_gc(const std::string& tablet_schema_hash_path) {
+    if (_stop_bg_worker) {
         return;
     }
 
-    LOG(INFO) << "start to path gc by rowset";
-    int counter = 0;
-    for (const auto& path : tablet_paths) {
-        if (_stop_bg_worker) {
-            break;
-        }
+    TTabletId tablet_id = -1;
+    TSchemaHash schema_hash = -1;
+    bool is_valid = doris::TabletManager::get_tablet_id_and_schema_hash_from_path(
+            tablet_schema_hash_path, &tablet_id, &schema_hash);
+    if (!is_valid || tablet_id < 1 || schema_hash < 1) [[unlikely]] {
+        LOG(WARNING) << "[path gc] unknown path: " << tablet_schema_hash_path;
+        return;
+    }
 
-        ++counter;
-        if (config::path_gc_check_step > 0 && counter % config::path_gc_check_step == 0) {
-            std::this_thread::sleep_for(
-                    std::chrono::milliseconds(config::path_gc_check_step_interval_ms));
-        }
-        TTabletId tablet_id = -1;
-        TSchemaHash schema_hash = -1;
-        bool is_valid = doris::TabletManager::get_tablet_id_and_schema_hash_from_path(
-                path, &tablet_id, &schema_hash);
-        if (!is_valid || tablet_id < 1 || schema_hash < 1) [[unlikely]] {
-            LOG(WARNING) << "[path gc] unknown path:" << path;
-            continue;
-        }
+    auto tablet = _engine.tablet_manager()->get_tablet(tablet_id);
+    if (!tablet) {
+        // Could not found the tablet, maybe it's a dropped tablet, will be reclaimed
+        // in the next time `_perform_path_gc_by_tablet`
+        return;
+    }
 
-        auto tablet = _engine.tablet_manager()->get_tablet(tablet_id);
-        if (!tablet) {
-            // Could not found the tablet, maybe it's a dropped tablet, will be reclaimed
-            // in the next time `_perform_path_gc_by_tablet`
-            continue;
-        }
+    if (tablet->data_dir() != this) {
+        // Current running tablet is not in same data_dir, maybe it's a tablet after migration,
+        // will be reclaimed in the next time `_perform_path_gc_by_tablet`
+        return;
+    }
 
-        if (tablet->data_dir() != this) {
-            // Current running tablet is not in same data_dir, maybe it's a tablet after migration,
-            // will be reclaimed in the next time `_perform_path_gc_by_tablet`
-            continue;
+    bool exists;
+    std::vector<io::FileInfo> files;
+    auto st = io::global_local_filesystem()->list(tablet_schema_hash_path, true, &files, &exists);
+    if (!st.ok()) [[unlikely]] {
+        LOG(WARNING) << "[path gc] fail to list tablet path " << tablet_schema_hash_path << " : "
+                     << st;
+        return;
+    }
+
+    // Rowset files excluding pending rowsets
+    std::vector<std::pair<RowsetId, std::string /* filename */>> rowsets_not_pending;
+    for (auto&& file : files) {
+        auto rowset_id = extract_rowset_id(file.file_name);
+        if (rowset_id.hi == 0) {
+            continue; // Not a rowset
         }
 
-        bool exists;
-        std::vector<io::FileInfo> files;
-        auto st = io::global_local_filesystem()->list(path, true, &files, &exists);
-        if (!st.ok()) [[unlikely]] {
-            LOG(WARNING) << "[path gc] fail to list tablet path " << path << " : " << st;
-            continue;
+        if (_engine.pending_local_rowsets().contains(rowset_id)) {
+            continue; // Pending rowset file
         }
 
-        // Rowset files excluding pending rowsets
-        std::vector<std::pair<RowsetId, std::string /* filename */>> rowsets_not_pending;
-        for (auto&& file : files) {
-            auto rowset_id = extract_rowset_id(file.file_name);
-            if (rowset_id.hi == 0) {
-                continue; // Not a rowset
-            }
+        rowsets_not_pending.emplace_back(rowset_id, std::move(file.file_name));
+    }
 
-            if (_engine.pending_local_rowsets().contains(rowset_id)) {
-                continue; // Pending rowset file
-            }
+    RowsetIdUnorderedSet rowsets_in_version_map;
+    tablet->traverse_rowsets(
+            [&rowsets_in_version_map](auto& rs) { rowsets_in_version_map.insert(rs->rowset_id()); },
+            true);
 
-            rowsets_not_pending.emplace_back(rowset_id, std::move(file.file_name));
+    auto reclaim_rowset_file = [](const std::string& path) {
+        auto st = io::global_local_filesystem()->delete_file(path);
+        if (!st.ok()) [[unlikely]] {
+            LOG(WARNING) << "[path gc] failed to delete garbage rowset file: " << st;
+            return;
         }
+        LOG(INFO) << "[path gc] delete garbage path: " << path; // Audit log
+    };
 
-        RowsetIdUnorderedSet rowsets_in_version_map;
-        tablet->traverse_rowsets(
-                [&rowsets_in_version_map](auto& rs) {
-                    rowsets_in_version_map.insert(rs->rowset_id());
-                },
-                true);
+    auto should_reclaim = [&, this](const RowsetId& rowset_id) {
+        return !rowsets_in_version_map.contains(rowset_id) &&
+               !_engine.check_rowset_id_in_unused_rowsets(rowset_id) &&
+               RowsetMetaManager::exists(get_meta(), tablet->tablet_uid(), rowset_id)
+                       .is<META_KEY_NOT_FOUND>();
+    };
 
-        auto reclaim_rowset_file = [](const std::string& path) {
-            auto st = io::global_local_filesystem()->delete_file(path);
-            if (!st.ok()) [[unlikely]] {
-                LOG(WARNING) << "[path gc] failed to delete garbage rowset file: " << st;
-                return;
-            }
-            LOG(INFO) << "[path gc] delete garbage path: " << path; // Audit log
-        };
-
-        auto should_reclaim = [&, this](const RowsetId& rowset_id) {
-            return !rowsets_in_version_map.contains(rowset_id) &&
-                   !_engine.check_rowset_id_in_unused_rowsets(rowset_id) &&
-                   RowsetMetaManager::exists(get_meta(), tablet->tablet_uid(), rowset_id)
-                           .is<META_KEY_NOT_FOUND>();
-        };
-
-        // rowset_id -> is_garbage
-        std::unordered_map<RowsetId, bool> checked_rowsets;
-        for (auto&& [rowset_id, filename] : rowsets_not_pending) {
-            if (auto it = checked_rowsets.find(rowset_id); it != checked_rowsets.end()) {
-                if (it->second) { // Is checked garbage rowset
-                    reclaim_rowset_file(path + '/' + filename);
-                }
-                continue;
+    // rowset_id -> is_garbage
+    std::unordered_map<RowsetId, bool> checked_rowsets;
+    for (auto&& [rowset_id, filename] : rowsets_not_pending) {
+        if (_stop_bg_worker) {
+            return;
+        }
+
+        if (auto it = checked_rowsets.find(rowset_id); it != checked_rowsets.end()) {
+            if (it->second) { // Is checked garbage rowset
+                reclaim_rowset_file(tablet_schema_hash_path + '/' + filename);
             }
+            continue;
+        }
 
-            if (should_reclaim(rowset_id)) {
-                reclaim_rowset_file(path + '/' + filename);
-                checked_rowsets.emplace(rowset_id, true);
-            } else {
-                checked_rowsets.emplace(rowset_id, false);
+        if (should_reclaim(rowset_id)) {
+            if (config::path_gc_check_step > 0 &&
+                ++_path_gc_step % config::path_gc_check_step == 0) {
+                std::this_thread::sleep_for(
+                        std::chrono::milliseconds(config::path_gc_check_step_interval_ms));
             }
+            reclaim_rowset_file(tablet_schema_hash_path + '/' + filename);
+            checked_rowsets.emplace(rowset_id, true);
+        } else {
+            checked_rowsets.emplace(rowset_id, false);
         }
     }
-    LOG(INFO) << "finish path gc by rowset.";
 }
 
-// path producer
-std::vector<std::string> DataDir::_perform_path_scan() {
-    std::vector<std::string> tablet_paths;
-    if (_stop_bg_worker) return tablet_paths;
-    LOG(INFO) << "start to scan data dir " << _path;
+void DataDir::perform_path_gc() {

Review Comment:
   warning: method 'perform_path_gc' can be made static [readability-convert-member-functions-to-static]
   
   be/src/olap/data_dir.h:108:
   ```diff
   -     void perform_path_gc();
   +     static void perform_path_gc();
   ```
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


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


Re: [PR] [enhance](gc) Skip tablet dir without schema hash dir in path gc [doris]

Posted by "platoneko (via GitHub)" <gi...@apache.org>.
platoneko commented on PR #32793:
URL: https://github.com/apache/doris/pull/32793#issuecomment-2017860170

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


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


Re: [PR] [enhance](gc) Skip tablet dir without schema hash dir in path gc [doris]

Posted by "doris-robot (via GitHub)" <gi...@apache.org>.
doris-robot commented on PR #32793:
URL: https://github.com/apache/doris/pull/32793#issuecomment-2017981861

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 181567 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit 6f722c579bbac208158f15c415493dc4d3505876, data reload: false
   
   query1	944	371	344	344
   query2	6566	1932	1996	1932
   query3	6706	210	211	210
   query4	31818	21499	21236	21236
   query5	4345	407	391	391
   query6	268	175	173	173
   query7	4627	298	289	289
   query8	235	172	172	172
   query9	9274	2234	2270	2234
   query10	570	253	253	253
   query11	15331	14372	14290	14290
   query12	136	95	88	88
   query13	1635	433	409	409
   query14	11268	7995	7499	7499
   query15	266	199	199	199
   query16	7920	259	259	259
   query17	1983	589	553	553
   query18	1358	285	289	285
   query19	349	155	155	155
   query20	91	93	88	88
   query21	203	131	129	129
   query22	5101	4920	4992	4920
   query23	33646	33002	33017	33002
   query24	10630	2887	2864	2864
   query25	595	380	368	368
   query26	1175	153	152	152
   query27	2804	347	352	347
   query28	7308	1831	1846	1831
   query29	860	605	589	589
   query30	297	154	148	148
   query31	958	751	737	737
   query32	96	55	52	52
   query33	761	254	239	239
   query34	1062	481	479	479
   query35	838	617	612	612
   query36	1015	862	874	862
   query37	132	65	65	65
   query38	3554	3435	3372	3372
   query39	1473	1408	1437	1408
   query40	206	111	117	111
   query41	50	44	43	43
   query42	110	93	95	93
   query43	485	437	444	437
   query44	1150	735	712	712
   query45	282	266	254	254
   query46	1110	693	701	693
   query47	1927	1857	1860	1857
   query48	446	352	353	352
   query49	1095	340	324	324
   query50	756	366	361	361
   query51	6744	6625	6534	6534
   query52	105	91	88	88
   query53	351	275	275	275
   query54	292	230	222	222
   query55	81	79	82	79
   query56	256	223	218	218
   query57	1223	1138	1144	1138
   query58	235	216	203	203
   query59	2688	2497	2544	2497
   query60	265	245	247	245
   query61	116	112	106	106
   query62	643	450	440	440
   query63	305	270	275	270
   query64	5617	3838	3962	3838
   query65	3052	3013	3014	3013
   query66	889	366	362	362
   query67	15146	14788	15046	14788
   query68	5247	517	511	511
   query69	569	362	374	362
   query70	1150	1149	1205	1149
   query71	411	265	265	265
   query72	6200	2737	2684	2684
   query73	716	317	311	311
   query74	7660	6334	6390	6334
   query75	2989	2226	2214	2214
   query76	3578	911	868	868
   query77	397	286	267	267
   query78	10870	10302	10231	10231
   query79	6214	518	521	518
   query80	1217	397	386	386
   query81	533	217	217	217
   query82	948	92	83	83
   query83	216	162	158	158
   query84	299	84	90	84
   query85	1549	377	370	370
   query86	471	303	294	294
   query87	3647	3507	3557	3507
   query88	4980	2357	2362	2357
   query89	477	381	372	372
   query90	1997	180	180	180
   query91	180	147	146	146
   query92	62	49	49	49
   query93	4905	489	474	474
   query94	1184	188	182	182
   query95	438	346	331	331
   query96	606	283	275	275
   query97	2652	2455	2488	2455
   query98	231	221	219	219
   query99	1187	980	926	926
   Total cold run time: 297603 ms
   Total hot run time: 181567 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


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


Re: [PR] [enhance](gc) Skip tablet dir without schema hash dir in path gc [doris]

Posted by "doris-robot (via GitHub)" <gi...@apache.org>.
doris-robot commented on PR #32793:
URL: https://github.com/apache/doris/pull/32793#issuecomment-2017987872

   
   Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   ```
   Load test result on commit 6f722c579bbac208158f15c415493dc4d3505876 with default session variables
   Stream load json:         19 seconds loaded 2358488459 Bytes, about 118 MB/s
   Stream load orc:          59 seconds loaded 1101869774 Bytes, about 17 MB/s
   Stream load parquet:      32 seconds loaded 861443392 Bytes, about 25 MB/s
   Insert into select:       20.9 seconds inserted 10000000 Rows, about 478K ops/s
   ```
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


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


Re: [PR] [enhance](gc) Skip tablet dir without schema hash dir in path gc [doris]

Posted by "doris-robot (via GitHub)" <gi...@apache.org>.
doris-robot commented on PR #32793:
URL: https://github.com/apache/doris/pull/32793#issuecomment-2017956233

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 38154 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit 6f722c579bbac208158f15c415493dc4d3505876, data reload: false
   
   ------ Round 1 ----------------------------------
   q1	17638	4370	4179	4179
   q2	2109	154	152	152
   q3	10585	1117	1198	1117
   q4	10242	798	850	798
   q5	7471	3038	3015	3015
   q6	204	123	121	121
   q7	1044	569	558	558
   q8	9335	1997	1964	1964
   q9	7242	6655	6613	6613
   q10	8437	3520	3578	3520
   q11	434	227	214	214
   q12	408	200	190	190
   q13	17794	2862	2879	2862
   q14	256	195	214	195
   q15	516	478	464	464
   q16	513	368	370	368
   q17	957	639	567	567
   q18	7141	6470	6399	6399
   q19	1911	1438	1492	1438
   q20	549	260	258	258
   q21	3542	2878	2872	2872
   q22	346	294	290	290
   Total cold run time: 108674 ms
   Total hot run time: 38154 ms
   
   ----- Round 2, with runtime_filter_mode=off -----
   q1	4127	4110	4074	4074
   q2	319	227	221	221
   q3	2962	2817	2800	2800
   q4	1843	1537	1524	1524
   q5	5292	5354	5320	5320
   q6	199	116	116	116
   q7	2237	1880	1865	1865
   q8	3159	3308	3296	3296
   q9	8688	8682	8663	8663
   q10	3797	3806	3762	3762
   q11	560	460	443	443
   q12	736	559	584	559
   q13	16891	2869	2835	2835
   q14	271	250	251	250
   q15	496	450	450	450
   q16	487	439	414	414
   q17	1732	1508	1455	1455
   q18	7520	7228	7215	7215
   q19	1658	1527	1531	1527
   q20	1907	1736	1725	1725
   q21	4942	4726	4734	4726
   q22	530	462	434	434
   Total cold run time: 70353 ms
   Total hot run time: 53674 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


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


Re: [PR] [fix](gc) Skip tablet dir without schema hash dir in path gc [doris]

Posted by "dataroaring (via GitHub)" <gi...@apache.org>.
dataroaring merged PR #32793:
URL: https://github.com/apache/doris/pull/32793


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


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


Re: [PR] [enhance](gc) Skip tablet dir without schema hash dir in path gc [doris]

Posted by "doris-robot (via GitHub)" <gi...@apache.org>.
doris-robot commented on PR #32793:
URL: https://github.com/apache/doris/pull/32793#issuecomment-2017935155

   TeamCity be ut coverage result:
    Function Coverage: 35.26% (8732/24768) 
    Line Coverage: 27.05% (71494/264315)
    Region Coverage: 26.28% (37087/141114)
    Branch Coverage: 23.18% (18965/81826)
    Coverage Report: http://coverage.selectdb-in.cc/coverage/6f722c579bbac208158f15c415493dc4d3505876_6f722c579bbac208158f15c415493dc4d3505876/report/index.html


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


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


Re: [PR] [fix](gc) Skip tablet dir without schema hash dir in path gc [doris]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #32793:
URL: https://github.com/apache/doris/pull/32793#issuecomment-2018296257

   PR approved by at least one committer and no changes requested.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


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


Re: [PR] [enhance](gc) Skip tablet dir without schema hash dir in path gc [doris]

Posted by "doris-robot (via GitHub)" <gi...@apache.org>.
doris-robot commented on PR #32793:
URL: https://github.com/apache/doris/pull/32793#issuecomment-2017844359

   Thank you for your contribution to Apache Doris.
   Don't know what should be done next? See [How to process your PR](https://cwiki.apache.org/confluence/display/DORIS/How+to+process+your+PR)
   
   Since 2024-03-18, the Document has been moved to [doris-website](https://github.com/apache/doris-website).
   See [Doris Document](https://cwiki.apache.org/confluence/display/DORIS/Doris+Document).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


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