Yingyi Bu has posted comments on this change. Change subject: Set the priority of the following threads to be Thread.MAX_PRIORITY: 1. heartbeat thread at NC 2. IPC network thread 3. work queue thread in CC ......................................................................
Patch Set 4: (3 comments) I tried the test case with various configurations, the result depends on the hardware and OS. Therefore, I have to drop the test. Also, the thread priority change doesn't seem to make much difference, at least in my test environment. Do we still want that change? I guess this change at least should not be worse than before:-) https://asterix-gerrit.ics.uci.edu/#/c/389/4/hyracks/hyracks-client/src/test/java/org/apache/hyracks/client/heartbeat/HeartBeatTest.java File hyracks/hyracks-client/src/test/java/org/apache/hyracks/client/heartbeat/HeartBeatTest.java: Line 59: cpuConsumers[i].setPriority(Thread.MIN_PRIORITY); > Should this be NORM_PRIORITY as the other worker threads? The test result really depends on the hardware and OS. Therefore I dropped this test. https://asterix-gerrit.ics.uci.edu/#/c/389/4/hyracks/hyracks-client/src/test/java/org/apache/hyracks/client/stats/HyracksUtils.java File hyracks/hyracks-client/src/test/java/org/apache/hyracks/client/stats/HyracksUtils.java: Line 61: ccConfig.maxHeartbeatLapsePeriods = 5; > What was the default before? The default is defined in CCConfig.java: @Option(name = "-heartbeat-period", usage = "Sets the time duration between two heartbeats from each node controller in milliseconds (default: 10000)") public int heartbeatPeriod = 10000; @Option(name = "-max-heartbeat-lapse-periods", usage = "Sets the maximum number of missed heartbeats before a node is marked as dead (default: 5)") public int maxHeartbeatLapsePeriods = 5; https://asterix-gerrit.ics.uci.edu/#/c/389/4/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java File hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java: Line 300: timerThread.setPriority(Thread.MAX_PRIORITY); > This looks slightly hackish :) I tried to implement our own Timer, but it turned out tricky because in line 307 we use the same timer to schedule another Task which is the ProfileDumpTask. So, this hacky way might be the smallest change to achieve the functionality:-) -- To view, visit https://asterix-gerrit.ics.uci.edu/389 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: comment Gerrit-Change-Id: I4e53a85e21a6bdee48a3ca8d004569700f911fbd Gerrit-PatchSet: 4 Gerrit-Project: hyracks Gerrit-Branch: master Gerrit-Owner: Yingyi Bu <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Till Westmann <[email protected]> Gerrit-Reviewer: Yingyi Bu <[email protected]> Gerrit-HasComments: Yes
