This is an automated email from the ASF dual-hosted git repository.
jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new c980f5f1ce7 Use alarming sleep time for CRITICAL and PANIC level
(#17788)
c980f5f1ce7 is described below
commit c980f5f1ce75f31f2398ed6a8ce5ff56815b7569
Author: Xiaotian (Jackie) Jiang <[email protected]>
AuthorDate: Mon Mar 2 12:36:31 2026 -0800
Use alarming sleep time for CRITICAL and PANIC level (#17788)
---
.../PerQueryCPUMemAccountantFactory.java | 25 +++++++++++++++++-----
.../core/accounting/QueryResourceAggregator.java | 25 +++++++++++++++++-----
2 files changed, 40 insertions(+), 10 deletions(-)
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/accounting/PerQueryCPUMemAccountantFactory.java
b/pinot-core/src/main/java/org/apache/pinot/core/accounting/PerQueryCPUMemAccountantFactory.java
index bbceaa84cf3..f45338301a5 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/accounting/PerQueryCPUMemAccountantFactory.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/accounting/PerQueryCPUMemAccountantFactory.java
@@ -477,19 +477,34 @@ public class PerQueryCPUMemAccountantFactory implements
ThreadAccountantFactory
// Compute the new triggering level based on the current heap usage
QueryMonitorConfig config = _queryMonitorConfig.get();
- _triggeringLevel =
- config.isCpuTimeBasedKillingEnabled() ?
TriggeringLevel.CPUTimeBasedKilling : TriggeringLevel.Normal;
if (_usedBytes > config.getPanicLevel()) {
+ // PANIC
+ _sleepTime = config.getAlarmingSleepTime();
_triggeringLevel = TriggeringLevel.HeapMemoryPanic;
_metrics.addMeteredGlobalValue(_heapMemoryPanicExceededMeter, 1);
} else if (_usedBytes > config.getCriticalLevel()) {
+ // CRITICAL
+ _sleepTime = config.getAlarmingSleepTime();
_triggeringLevel = TriggeringLevel.HeapMemoryCritical;
_metrics.addMeteredGlobalValue(_heapMemoryCriticalExceededMeter, 1);
} else if (_usedBytes > config.getAlarmingLevel()) {
+ // ALARMING
_sleepTime = config.getAlarmingSleepTime();
- // For debugging
- if (LOGGER.isDebugEnabled() && _triggeringLevel ==
TriggeringLevel.Normal) {
- _triggeringLevel = TriggeringLevel.HeapMemoryAlarmingVerbose;
+ if (config.isCpuTimeBasedKillingEnabled()) {
+ _triggeringLevel = TriggeringLevel.CPUTimeBasedKilling;
+ } else {
+ if (LOGGER.isDebugEnabled()) {
+ _triggeringLevel = TriggeringLevel.HeapMemoryAlarmingVerbose;
+ } else {
+ _triggeringLevel = TriggeringLevel.Normal;
+ }
+ }
+ } else {
+ // NORMAL
+ if (config.isCpuTimeBasedKillingEnabled()) {
+ _triggeringLevel = TriggeringLevel.CPUTimeBasedKilling;
+ } else {
+ _triggeringLevel = TriggeringLevel.Normal;
}
}
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/accounting/QueryResourceAggregator.java
b/pinot-core/src/main/java/org/apache/pinot/core/accounting/QueryResourceAggregator.java
index 4a15078862a..c9cfd655989 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/accounting/QueryResourceAggregator.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/accounting/QueryResourceAggregator.java
@@ -202,19 +202,34 @@ public class QueryResourceAggregator implements
ResourceAggregator {
// Compute the new triggering level based on the current heap usage
QueryMonitorConfig config = _queryMonitorConfig.get();
- _triggeringLevel =
- config.isCpuTimeBasedKillingEnabled() ?
TriggeringLevel.CPUTimeBasedKilling : TriggeringLevel.Normal;
if (_usedBytes > config.getPanicLevel()) {
+ // PANIC
+ _sleepTime = config.getAlarmingSleepTime();
_triggeringLevel = TriggeringLevel.HeapMemoryPanic;
_metrics.addMeteredGlobalValue(_heapMemoryPanicExceededMeter, 1);
} else if (_usedBytes > config.getCriticalLevel()) {
+ // CRITICAL
+ _sleepTime = config.getAlarmingSleepTime();
_triggeringLevel = TriggeringLevel.HeapMemoryCritical;
_metrics.addMeteredGlobalValue(_heapMemoryCriticalExceededMeter, 1);
} else if (_usedBytes > config.getAlarmingLevel()) {
+ // ALARMING
_sleepTime = config.getAlarmingSleepTime();
- // For debugging
- if (LOGGER.isDebugEnabled() && _triggeringLevel ==
TriggeringLevel.Normal) {
- _triggeringLevel = TriggeringLevel.HeapMemoryAlarmingVerbose;
+ if (config.isCpuTimeBasedKillingEnabled()) {
+ _triggeringLevel = TriggeringLevel.CPUTimeBasedKilling;
+ } else {
+ if (LOGGER.isDebugEnabled()) {
+ _triggeringLevel = TriggeringLevel.HeapMemoryAlarmingVerbose;
+ } else {
+ _triggeringLevel = TriggeringLevel.Normal;
+ }
+ }
+ } else {
+ // NORMAL
+ if (config.isCpuTimeBasedKillingEnabled()) {
+ _triggeringLevel = TriggeringLevel.CPUTimeBasedKilling;
+ } else {
+ _triggeringLevel = TriggeringLevel.Normal;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]