morningman commented on a change in pull request #7371:
URL: https://github.com/apache/incubator-doris/pull/7371#discussion_r769236029



##########
File path: fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java
##########
@@ -582,14 +580,19 @@ private Catalog(boolean isCheckpointCatalog) {
         this.tabletScheduler = new TabletScheduler(this, systemInfo, 
tabletInvertedIndex, stat, Config.tablet_rebalancer_type);
         this.tabletChecker = new TabletChecker(this, systemInfo, 
tabletScheduler, stat);
 
+        // The pendingLoadTaskScheduler's queue size should not less than 
Config.desired_max_waiting_jobs.
+        // So that we can guarantee that all submitted load jobs can be 
scheduled without being starved.
         this.pendingLoadTaskScheduler = new 
MasterTaskExecutor("pending_load_task_scheduler", 
Config.async_pending_load_task_pool_size,
-                Config.async_pending_load_task_pool_size, 
!isCheckpointCatalog);
+                Config.desired_max_waiting_jobs, !isCheckpointCatalog);
+        // The loadingLoadTaskScheduler's queue size is unlimited, so that it 
can receive all loading tasks
+        // created after pending tasks finish. And don't worry about the high 
concurrency, because the
+        // concurrency is limited by Config.desired_max_waiting_jobs and 
Config.async_loading_load_task_pool_size.
         this.loadingLoadTaskScheduler = new 
MasterTaskExecutor("loading_load_task_scheduler", 
Config.async_loading_load_task_pool_size,
-                Config.async_loading_load_task_pool_size / 5, 
!isCheckpointCatalog);
+                Integer.MAX_VALUE, !isCheckpointCatalog);
+
         this.loadJobScheduler = new LoadJobScheduler();
         this.loadManager = new LoadManager(loadJobScheduler);
         this.streamLoadRecordMgr = new 
StreamLoadRecordMgr("stream_load_record_manager", 
Config.fetch_stream_load_record_interval_second * 1000);
-        this.loadTimeoutChecker = new LoadTimeoutChecker(loadManager);

Review comment:
       This checker is no logger needed. Because now the timeout is only 
calculated when the task is actually executed.
   So for now, if a job is in pending state, it will never be cleared.
   
   And the length limit of the pending queue will ensure that there will not be 
too many pending jobs




-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



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

Reply via email to