Abstract:
An apparatus for processing database management system (DBMS) queries, comprising a processor adapted to receive a DBMS query, and extract a query signature from the received DBMS query. When the query signature is matched with an existing record in a just in time (TJIT) kernels dataset, execute a TJIT kernel associated with the query signature in the TJIT kernels dataset by accessing the existing record from the TJIT kernels dataset, and generate, during the execution of the TJIT kernel, a machine code for executing the DBMS query by interpreting a source code of the TJIT kernel. Otherwise, extract from the received DBMS query a structured query language (SQL) text, generate, based on the extracted SQL text, a query execution plan for processing the received DBMS query, execute the query execution plan; and store the SQL text in association with the query signature as a new record in the TJIT kernels dataset.
Abstract:
There is provided an apparatus adapted to select an isomorphic specialization of a plurality of isomorphic specializations, comprising: a data interface adapted to receive an input value for processing by a program; and a selection module adapted to: select an isomorphic specialization of the program from a plurality of isomorphic specializations for processing of the input value, the selection based on a performance metric for each of the plurality of isomorphic specializations; wherein each isomorphic specialization has a different implementation within an execution environment and wherein each isomorphic specialization generates the same result when processing the input value; and provide a message indicative of the selected isomorphic specialization.
Abstract:
The present invention relates to an apparatus for extracting data from a database for object initialization, and apparatus for writing object data to a database, a data extraction method, and a method for writing data to a database. The disclosure facilitates fast and memory efficient data exchange between a native side and a virtual machine (VM-) side. In particular, a data extraction kernel on the native-side reads database data from a plurality of locations in the database using a database interface and writes the database data to a buffer using a native-side buffer API (application programming interface). An object initialization kernel on the VM-side reads the database data from the buffer using a native-side buffer API and initializes a plurality of objects. Information indicating one of the plural memory regions in the buffer where the data extraction kernel writes the database data is known to the native-side buffer API and to the VM-side buffer API.
Abstract:
The invention relates to a method for compiling a source code to a program code, the method comprising: providing (101) a pattern graph based on the source code, the pattern graph corresponding to an intermediate representation of the source code according to a set of rules in a first programming language, wherein the set of rules comprises a specific replacement rule directing a pattern graph to be replaced by a corresponding replacement graph assigned to the pattern graph, replacing (103) the pattern graph by the replacement graph assigned to the pattern graph, and generating (105) the program code based on the replacement graph.
Abstract:
The invention relates to a method (800) for constructing a graph data structure as an intermediate representation of source code for a compiler configured for compiling the source code into executable machine code running on a processor of a computer system, wherein program operations of the source code are represented in an object-oriented programming language by objects of classes that form a hierarchy growing from a base node class of the graph data structure, the method (800) comprising: producing new nodes (801) of the graph data structure by calling factory methods associated with existing nodes of the graph data structure based on a factory method design pattern implemented in the nodes of the graph data structure, wherein the nodes of the graph data structure are identified by symbols; and using the symbols as proxies of the nodes (803) of the graph data structure according to a proxy design pattern.