Package org.apache.pinot.spi.trace
Class Tracing.DefaultThreadResourceUsageAccountant
- java.lang.Object
-
- org.apache.pinot.spi.trace.Tracing.DefaultThreadResourceUsageAccountant
-
- All Implemented Interfaces:
ThreadResourceUsageAccountant
- Enclosing class:
- Tracing
public static class Tracing.DefaultThreadResourceUsageAccountant extends Object implements ThreadResourceUsageAccountant
Default accountant that is used to enable worker thread cancellation upon runner thread's interruption
-
-
Constructor Summary
Constructors Constructor Description DefaultThreadResourceUsageAccountant()
-
Method Summary
Modifier and Type Method Description voidclear()clear thread accounting info when a task finishes execution on a threadvoidcreateExecutionContext(String queryId, int taskId, ThreadExecutionContext parentContext)Task tracking infovoidcreateExecutionContextInner(String queryId, int taskId, ThreadExecutionContext parentContext)ExceptiongetErrorStatus()get error status if the query is preemptedThreadExecutionContextgetThreadExecutionContext()get the executon context of current threadbooleanisAnchorThreadInterrupted()check if the corresponding anchor thread of current thread is interrupted so that when we preempt a task we only call interrupt on the anchor threadvoidsampleUsage()call to sample usagevoidsetThreadResourceUsageProvider(ThreadResourceUsageProvider threadResourceUsageProvider)set resource usage providervoidstartWatcherTask()start the periodical task
-
-
-
Method Detail
-
isAnchorThreadInterrupted
public boolean isAnchorThreadInterrupted()
Description copied from interface:ThreadResourceUsageAccountantcheck if the corresponding anchor thread of current thread is interrupted so that when we preempt a task we only call interrupt on the anchor thread- Specified by:
isAnchorThreadInterruptedin interfaceThreadResourceUsageAccountant
-
clear
public void clear()
Description copied from interface:ThreadResourceUsageAccountantclear thread accounting info when a task finishes execution on a thread- Specified by:
clearin interfaceThreadResourceUsageAccountant
-
setThreadResourceUsageProvider
public void setThreadResourceUsageProvider(ThreadResourceUsageProvider threadResourceUsageProvider)
Description copied from interface:ThreadResourceUsageAccountantset resource usage provider- Specified by:
setThreadResourceUsageProviderin interfaceThreadResourceUsageAccountant
-
sampleUsage
public void sampleUsage()
Description copied from interface:ThreadResourceUsageAccountantcall to sample usage- Specified by:
sampleUsagein interfaceThreadResourceUsageAccountant
-
createExecutionContext
public final void createExecutionContext(String queryId, int taskId, ThreadExecutionContext parentContext)
Description copied from interface:ThreadResourceUsageAccountantTask tracking info- Specified by:
createExecutionContextin interfaceThreadResourceUsageAccountant- Parameters:
queryId- query id stringtaskId- a unique task idparentContext- the parent execution context, null for root(runner) thread
-
createExecutionContextInner
public void createExecutionContextInner(String queryId, int taskId, ThreadExecutionContext parentContext)
-
getThreadExecutionContext
public ThreadExecutionContext getThreadExecutionContext()
Description copied from interface:ThreadResourceUsageAccountantget the executon context of current thread- Specified by:
getThreadExecutionContextin interfaceThreadResourceUsageAccountant
-
startWatcherTask
public void startWatcherTask()
Description copied from interface:ThreadResourceUsageAccountantstart the periodical task- Specified by:
startWatcherTaskin interfaceThreadResourceUsageAccountant
-
getErrorStatus
public Exception getErrorStatus()
Description copied from interface:ThreadResourceUsageAccountantget error status if the query is preempted- Specified by:
getErrorStatusin interfaceThreadResourceUsageAccountant- Returns:
- empty string if N/A
-
-