Abstract:
Systems and methods for improving the performance of a computer program, such as a database management system (DBMS), are provided. Such methods involve identifying invariant intervals for variables in the DBMS code, based on a Program Representation (PR). Program interactions within the DBMS and domain assertions are deduced, based on the PR and an Ecosystem Specification for the DBMS. One or more candidate snippets are identified, based on the invariant intervals for variables in the DBMS code, the PR, one or more execution summaries associated with the DBMS, the deduced program interactions and the deduced domain assertions. Spiffs are then generated, based on the one or more candidate snippets. Such spiffs include predicate query spiff, hash-join query spiff, aggregate spiff, page spiff, and string matching spiff. The DBMS code is modified based on the speccode generated from these spiffs.
Abstract:
Four extensions to the conventional field specialization process are disclosed. The first extension is cross-application value flows, where a value transfers out of one application and subsequently into another application. The second extension is an inter-application analysis. Static and dynamic analysis is performed by a Spiff Toolset not just on the source code of a single application, but also across the data read and written by that application. The third extension is invariant cross-application termination, verifying the possibility of an invariant originating in an application and terminating in a specialization opportunity in a separate application. The fourth extension relates to run-time code placement algorithms to mitigate an increase in I-cache pressure and L2-cache pressure. A MaxResidency algorithm uses information from dynamic analysis of provided workloads before DBMS compilation and specific structure of the query evaluation plan to place run-time code, thus retaining possible run time improvement of that code.
Abstract:
A computer-implemented method and related systems for reducing memory access stalls and memory allocation requests in data-intensive applications are provided. Invariants associated with execution paths that access data in a memory of the data-intensive application are identified. At least one field specialization technique using at least one speccode segment is then applied. The speccode segment exploits the identified invariants, thereby reducing at least one of memory stalls and memory allocation requests in a data-intensive application. The field specialization technique may include specialized software prefetching, a data distribution-based hash function, process to CPU binding, memory segment reuse, or memory layout optimization, or any combination thereof.