zhenxingh commented on a change in pull request #1786: [TRAFODION-3260] SSMP 
may wait 3 seconds before handling requests
URL: https://github.com/apache/trafodion/pull/1786#discussion_r252545887
 
 

 ##########
 File path: core/sql/bin/ex_ssmp_main.cpp
 ##########
 @@ -246,8 +247,12 @@ void runServer(Int32 argc, char **argv)
     }
   }
 */
-    // wait for system messages only until ssmp starts receiving msgs.
-    cc->wait(300);
+    // Wait for messages, but we need ssmp to wake up periodically to
+    // perform garbage collection.
+    short mask = XWAIT(LREQ | LDONE, ssmpGlobals->getStatsMergeTimeout());
+    if (mask & LREQ) {
+      cc->wait(0);
 
 Review comment:
   There is a subtle difference, the waitOnAll() function called in 
ssmpGlobals::work() does not wait on all connections simultaneously, it 
actually only waits on the first connection with an exponentially increased 
timeout (3 seconds maximum), and then cycle through all other connections 
without waiting. This can still lead to a unnecessary wait if there are data 
arrival on connections other than the first.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to