-
公开(公告)号:US20190377589A1
公开(公告)日:2019-12-12
申请号:US16006668
申请日:2018-06-12
Applicant: Oracle International Corporation
Inventor: Bastian Hossbach , Jürgen Christ , Laurent Daynes , Matthias Brantner , Hassan Chafi , Christian Humer
Abstract: Computer-implemented techniques described herein provide efficient data decoding using runtime specialization. In an embodiment, a method comprises a virtual machine executing a body of code of a dynamically typed language, wherein executing the body of code includes: querying a relational database, and in response to the query, receiving table metadata indicating data types of one or more columns of a first table in the relational database. In response to receiving the table metadata: for a first column of the one or more columns, generating decoding machine code to decode the first column based on the data type of the first column, and executing the decoding machine code to decode the first column of the one or more columns.
-
公开(公告)号:US20190251194A1
公开(公告)日:2019-08-15
申请号:US15897375
申请日:2018-02-15
Applicant: Oracle International Corporation
Inventor: Pit Fender , Felix Schmidt , Benjamin Schlegel , Matthias Brantner , Nipun Agarwal
IPC: G06F17/30
CPC classification number: G06F16/2365 , G06F16/221 , G06F16/285
Abstract: Techniques related to code dictionary generation based on non-blocking operations are disclosed. In some embodiments, a column of tokens includes a first token and a second token that are stored in separate rows. The column of tokens is correlated with a set of row identifiers including a first row identifier and a second row identifier that is different from the first row identifier. Correlating the column of tokens with the set of row identifiers involves: storing a correlation between the first token and the first row identifier, storing a correlation between the second token and the second row identifier if the first token and the second token have different values, and storing a correlation between the second token and the first row identifier if the first token and the second token have identical values. After correlating the column of tokens with the set of row identifiers, duplicate correlations are removed.
-
公开(公告)号:US12001414B2
公开(公告)日:2024-06-04
申请号:US17831117
申请日:2022-06-02
Applicant: Oracle International Corporation
Inventor: Pit Fender , Benjamin Schlegel , Matthias Brantner
IPC: G06F16/22 , G06F16/242 , G06F16/2455 , G06F40/242
CPC classification number: G06F16/221 , G06F16/242 , G06F16/24553 , G06F40/242
Abstract: Techniques described herein propose a new RIDDecode operator in a QEP that uses ROWID lookup and fetch, instead of dictionary decoding, to retrieve decoded values, in order to reduce memory pressure and speed up processing.
-
公开(公告)号:US11468064B2
公开(公告)日:2022-10-11
申请号:US16394998
申请日:2019-04-25
Applicant: Oracle International Corporation
Inventor: Pit Fender , Benjamin Schlegel , Matthias Brantner , Cagri Balkesen , Nipun Agarwal
IPC: G06F16/2453 , G06F16/248 , G06F16/2455
Abstract: The manner in which tables are joined can affect the outcome of the query and database performance. Example types of join operations include semi-join and inner-join. The techniques described herein are approaches that may be used to substitute a semi-join operator with an inner-join operator and may be used to transform and optimize representations of queries.
-
公开(公告)号:US20220222081A1
公开(公告)日:2022-07-14
申请号:US17148951
申请日:2021-01-14
Applicant: Oracle International Corporation
Inventor: Benjamin Schlegel , Matthias Brantner , Hassan Chafi
Abstract: A method includes determining, whether: a first case is applicable, in which a first number of values of a first dataset and a second number of values of a second dataset total less than or equal to a third number of values of a register; a second case is applicable, in which the first and second numbers total more than the third number, and the first or second number is less than or equal to half of the third number; or a third case is applicable, in which the first and second numbers total more than the third number, and each of the first and second numbers is greater than half of the third number. In response to the determining, the method includes selectively loading to the register a first portion of the first dataset and a second portion of the second dataset, and performing conflict-detection for identifying one or more common values in the register loaded with the first portion and the second portion.
-
公开(公告)号:US11231935B2
公开(公告)日:2022-01-25
申请号:US16846773
申请日:2020-04-13
Applicant: Oracle International Corporation
Inventor: Benjamin Schlegel , Pit Fender , Matthias Brantner , Hassan Chafi
Abstract: Vectorized sorted-set intersection is performed using conflict-detection single instruction, multiple data (SIMD) instructions. A first ordered subset of values of a first ordered set of distinct values and a second ordered subset of values of a second ordered set of distinct values is loaded into a register. A first value in the register that matches another value in the register (i.e., common values) is identified by performing an SIMD instruction. The first value is then stored in a result set representing a merge-sort result set between the first ordered set of distinct values and the second ordered set of distinct values.
-
公开(公告)号:US20210271711A1
公开(公告)日:2021-09-02
申请号:US16803832
申请日:2020-02-27
Applicant: Oracle International Corporation
Inventor: Benjamin Schlegel , Martin Sevenich , Pit Fender , Matthias Brantner , Hassan Chafi
IPC: G06F16/901 , G06F9/54 , G06F9/38
Abstract: Techniques are described for a vectorized queue, which implements a vectorized ‘contains’ function that determines whether a value is in the queue. A three-phase vectorized shortest-path graph search splits each expanding and probing iteration into three phases that utilize vectorized instructions: (1) The neighbors of nodes that are in a next queue are fetched and written into a current queue. (2) It is determined whether the destination node is among the fetched neighbor nodes in the current queue. (3) The fetched neighbor nodes that have not yet been visited are put into the next queue. According to an embodiment, a vectorized copy operation performs vector-based data copying using vectorized load and store instructions. Specifically, vectors of data are copied from a source to a destination. Any invalid data copied to the destination is overwritten, either with a vector of additional valid data or with a vector of nonce data.
-
公开(公告)号:US10990596B2
公开(公告)日:2021-04-27
申请号:US16442015
申请日:2019-06-14
Applicant: Oracle International Corporation
Inventor: Pit Fender , Benjamin Schlegel , Matthias Brantner
IPC: G06F16/2453 , G06F16/28
Abstract: Approaches herein transparently delegate data access from a relational database management system (RDBMS) onto an offload engine (OE). The RDBMS receives a database statement referencing a user defined function (UDF). In an execution plan, the RDBMS replaces the UDF reference with an invocation of a relational operator in the OE. Execution invokes the relational operator in the OE to obtain a result based on data in the OE. Thus, the UDF is bound to the OE, and almost all of the RDBMS avoids specially handling the UDF. The UDF may be a table function that offloads a relational table for processing. User defined objects such as functions and types provide metadata about the table. Multiple tables can be offloaded and processed together, such that some or all offloaded tables are not materialized in the RDBMS. Offloaded tables may participate in standard relational algebra such as in a database statement.
-
公开(公告)号:US20200341981A1
公开(公告)日:2020-10-29
申请号:US16394998
申请日:2019-04-25
Applicant: Oracle International Corporation
Inventor: Pit Fender , Benjamin Schlegel , Matthias Brantner , Cagri Balkesen , Nipun Agarwal
IPC: G06F16/2453 , G06F16/2455 , G06F16/248
Abstract: The manner in which tables are joined can affect the outcome of the query and database performance. Example types of join operations include semi-join and inner-join. The techniques described herein are approaches that may be used to substitute a semi-join operator with an inner-join operator and may be used to transform and optimize representations of queries.
-
公开(公告)号:US20180246752A1
公开(公告)日:2018-08-30
申请号:US15864863
申请日:2018-01-08
Applicant: Oracle International Corporation
Inventor: Daniele Bonetta , Matthias Brantner
CPC classification number: G06F9/45558 , G06F8/30 , G06F9/4552 , G06F9/45541 , G06F16/20 , G06F16/80
Abstract: Computer-implemented techniques described herein provide fast access to structured, semi-structured, and unstructured data using a virtual machine that provides support for dynamic code generation. In an embodiment, a virtual machine allows for the efficient encoding of data objects into hierarchically marked up data. A virtual machine is configured to dynamically create attributes of objects referenced by a body of code and hidden classes used to store attributes of objects referenced by the body of code. The virtual machine will determine whether a hidden class of an object satisfies one or more encoding criteria for encoding instances of objects with the hidden class. Encoding machine code is generated and executed to encode instances of objects with the hidden class. In another embodiment, direct structure decoding enables the generation of efficient machine code that is specialized for accessing only a subset of the input data that is used by an application. A parse operation is received to parse a hierarchical data object and a proxy object is created in a runtime memory space that references the hierarchical data object. It is then determined that the hierarchical data object is syntactically valid, and in response to receiving a request to read a property of the hierarchical data object, a subset of hierarchical data from the hierarchical data object is parsed to materialize a value of the property in the proxy object.
-
-
-
-
-
-
-
-
-