Virtual mode execution manager
US-12118376-B2 · Oct 15, 2024 · US
US9239732B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9239732-B2 |
| Application number | US-201113028552-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 16, 2011 |
| Priority date | Feb 16, 2011 |
| Publication date | Jan 19, 2016 |
| Grant date | Jan 19, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
One or more techniques and/or systems are disclosed for improving asynchronous programming execution at runtime. Asynchronous programming code can comprise more than one level of hierarchy, such as in an execution plan. Respective aggregation operations in a portion of the asynchronous programming code are unrolled, to create a single level iterative execution, by combining elements of the multi-level iterative execution of the asynchronous programming code. In this way, the aggregation operations are concatenated to local logic code for the aggregation operations. Thread context switching in the unrolled portion of asynchronous programming code is performed merely at an asynchronous operation, thereby mitigating unnecessary switches. Exceptions thrown during programming code can be propagated up to a top of a virtual callstack for the execution.
Opening claim text (preview).
What is claimed is: 1. A computer-based method for executing asynchronous programming code, comprising: unrolling an aggregation operation in a portion of asynchronous programming code having multiple levels in a hierarchy, the unrolling comprising combining first local logic code in a first level of the hierarchy associated with a first thread with second local logic code in a second level of the hierarchy associated with a second thread, and converting the aggregation operation into a sequential operation comprising concatenated local logic code of the aggregation operation, wherein the unrolling effectively removes thread context switching associated with the aggregation operation and performs thread context switching instead at an asynchronous operation in the unrolled portion of asynchronous programming code; and responsive to detecting an operation exception thrown at the second level of the hierarchy, propagating the operation exception up to the first level of the hierarchy, wherein call stacks of the first thread and the second thread are concatenated into the operation exception. 2. The method of claim 1 , the propagating the operation exception performed at runtime. 3. The method of claim 1 , further comprising propagating the operation exception up from a third level of the hierarchy. 4. The method of claim 1 , the asynchronous programming code comprising one or more local logic codes that are executed in a defined sequence. 5. The method of claim 1 , comprising propagating the operation exception up to a top of an execution stack. 6. The method of claim 1 , the second level running on the second thread and the first level running on the first thread. 7. The method of claim 1 , wherein the operation exception occurs during one or more of the following: an asynchronous operation, an aggregation operation, or a microservice operation. 8. The method of claim 1 , comprising restricting operation results in the asynchronous programming code to merely strong typed operation results. 9. The method of claim 1 , comprising combining a first operation request with one or more second operation requests to be executed as a batch in one or more asynchronous operations. 10. The method of claim 1 , comprising batching two same type of batch-capable operations from different threads into a batch call. 11. The method of claim 1 , comprising using a service to support batch processing of operations, comprising using the service to change a thread-scheduling mechanism. 12. The method of claim 1 , comprising executing two or more operations in the asynchronous programming code in parallel. 13. The method of claim 1 , comprising using a block-on-yield operator to execute two or more unrelated operations in parallel. 14. The method of claim 1 , comprising determining whether an operation has completed via an operations counter. 15. A system comprising: a processor; an operation unrolling component configured to unroll an aggregation operation in a portion of asynchronous programming code having multiple levels in a hierarchy, the unrolling comprising combining first local logic code in a first level of the hierarchy associated with a first thread with second local logic code in a second level of the hierarchy associated with a second thread, and converting the aggregation operation into a sequential operation comprising concatenated local logic code of the aggregation operation, wherein the unrolling effectively removes thread context switching associated with the aggregation operation and performs thread context switching instead at an asynchronous operation in the unrolled portion of asynchronous programming code; code configured to respond to detecting an operation exception thrown at the second level of the hierarchy by propagating the operation exception up to the first level of the hierarchy and concatenating call stacks of the first thread and the second thread into the operation exception; and an operations counter which indicates whether an operation has completed at respective levels of the hierarchy. 16. The system of claim 15 , further comprising an exception propagation component configured to propagate an operation exception up to a top of an execution stack. 17. The system of claim 15 , further comprising a batching component configured to combine a first operation request with one or more second operation requests to be executed as a batch in one or more asynchronous operations. 18. The system of claim 15 , further comprising a block-on-yield operator. 19. The system of claim 15 , further comprising a parallel operation component configured to provide for executing two or more operations in the asynchronous programming code in parallel. 20. A tangible computer readable storage device, which is not a signal per se, comprising computer executable instructions which when executed via a processing unit perform a method, comprising: unrolling an aggregation operation in a portion of asynchronous programming code having multiple levels in a hierarchy, the unrolling comprising combining first local logic code in a first level of the hierarchy associated with a first thread with second local logic code in a second level of the hierarchy associated with a second thread, and converting the aggregation operation into a sequential operation comprising concatenated local logic code of the aggregation operation, wherein the unrolling effectively removes thread context switching associated with the aggregation operation and performs thread context switching instead at an asynchronous operation in the unrolled portion of asynchronous programming code; and responsive to detecting an operation exception thrown at the second level of the hierarchy, propagating the operation exception up to the first level of the hierarchy, wherein call stacks of the first thread and the second thread are concatenated into the operation exception.
by program, e.g. task dispatcher, supervisor, operating system · CPC title
Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators · CPC title
Inlining · CPC title
Optimisation or modification within the same instruction set architecture, e.g. HP Dynamo · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.