Unrolling aggregation operations in asynchronous programming code having multiple levels in hierarchy

US9239732B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9239732-B2
Application numberUS-201113028552-A
CountryUS
Kind codeB2
Filing dateFeb 16, 2011
Priority dateFeb 16, 2011
Publication dateJan 19, 2016
Grant dateJan 19, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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.

Assignees

Inventors

Classifications

  • G06F9/4843Primary

    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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9239732B2 cover?
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 mult…
Who is the assignee on this patent?
Zhao Xiaoxuan, Srinivasan Sridhar, Zhou Xiang, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F9/4843. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 19 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).