发明名称 Execution context trace for asynchronous tasks
摘要 Context information associated with asynchronous tasks executing in a multithread computer processing environment can be captured. An identifier block having context information associated with tasks executed in the thread is stored in a call stack of a thread. For asynchronous tasks that execute in the thread, a context trace component causes the thread to place an identifier block in the stack of the thread. The identifier block stores context information associated with the currently executing task and with one or more previously executed tasks. Context information currently stored in an identifier block can be retrieved and stored in subsequent identifier blocks, thereby enabling capture of a sequential context trace of asynchronous tasks that execute in the thread. The context trace information stored in the identifier block can be retrieved to support failure analysis when a task fails to execute properly.
申请公布号 US9582312(B1) 申请公布日期 2017.02.28
申请号 US201514613621 申请日期 2015.02.04
申请人 Amazon Technologies, Inc. 发明人 Karppanen Jari Juhani
分类号 G06F9/46;G06F11/30;G06F11/34 主分类号 G06F9/46
代理机构 Knobbe, Martens, Olson & Bear, LLP 代理人 Knobbe, Martens, Olson & Bear, LLP
主权项 1. A method for managing a computer processing environment, comprising: generating an identifier for each function of a process, where each function of the process can create a task to be executed by one of a plurality of threads; executing the process in the computer processing environment; identifying an asynchronous task to be executed, the identified asynchronous task being created by a function that is executing tasks in a first thread; creating a task object associated with the identified asynchronous task; storing, in the task object, context information associated with the identified asynchronous task in the first thread; retrieving, from a call stack of the first thread, context information associated with a task currently executing in the first thread; storing, in the task object, the retrieved context information associated with the task currently executing in the first thread; placing, in a task queue, the identified asynchronous task and the task object; loading, in the call stack of a second thread, execution information associated with the identified asynchronous task; loading, in an identifier block in the call stack of the second thread, the context information stored in the task object, wherein the stored context information includes the context information of the identified asynchronous task and the context information of the task currently executing in the first thread; and executing the identified asynchronous task in the second thread.
地址 Seattle WA US