-
公开(公告)号:US11200234B2
公开(公告)日:2021-12-14
申请号:US16441989
申请日:2019-06-14
Applicant: Oracle International Corporation
Inventor: Pit Fender , Benjamin Schlegel , Matthias Brantner
IPC: G06F16/2453 , G06F16/21 , 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.
-
公开(公告)号:US11169804B2
公开(公告)日:2021-11-09
申请号:US16139226
申请日:2018-09-24
Applicant: Oracle International Corporation
Inventor: Benjamin Schlegel , Harshad Kasture , Pit Fender , Matthias Brantner , Hassan Chafi
Abstract: Techniques for maintaining d-heap property and speeding up retrieval operations, such as top or pop, by vectorizing the d-heap and utilizing horizontal aggregation SIMD instructions across the retrieval operations. A d-heap is vectorized by storing it in a contiguous memory array containing a beginning-most side and end-most side. Horizontal aggregation SIMD instructions are utilized to aggregate the values of the vectorized d-heap. Thus, the number of comparisons required in order to find the maximum or minimum key value within a single node of the d-heap is reduced resulting in faster retrieval operations.
-
公开(公告)号:US20210318886A1
公开(公告)日:2021-10-14
申请号: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.
-
公开(公告)号:US20210294603A1
公开(公告)日:2021-09-23
申请号:US16822009
申请日:2020-03-18
Applicant: Oracle International Corporation
Inventor: Harshad Kasture , Matthias Brantner , Hassan Chafi , Benjamin Schlegel , Pit Fender
Abstract: Techniques are provided for lazy push optimization, allowing for constant time push operations. A d-heap is used as the underlying data structure for indexing values being inserted. The d-heap is vectorized by storing values in a contiguous memory array. Heapify operations are delayed until a retrieve operation occurs, improving insert performance of vectorized d-heaps that use horizontal aggregation SIMD instructions at the cost of slightly lower retrieve performance.
-
公开(公告)号:US11126611B2
公开(公告)日:2021-09-21
申请号:US15897375
申请日:2018-02-15
Applicant: Oracle International Corporation
Inventor: Pit Fender , Felix Schmidt , Benjamin Schlegel , Matthias Brantner , Nipun Agarwal
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.
-
公开(公告)号:US20210263930A1
公开(公告)日:2021-08-26
申请号:US16797507
申请日:2020-02-21
Applicant: Oracle International Corporation
Inventor: Pit Fender , Benjamin Schlegel , Nipun Agarwal
IPC: G06F16/2453 , G06F16/2455 , G06F12/12
Abstract: A partial group by operator is a group by operator that implements a fallback mechanism. The fallback mechanism is triggered whenever memory pressure reaches a certain threshold. When the fallback mechanism is triggered, a row is included in an output of the partial group by operator without including an aggregation value for a grouping value for the row to an aggregation data structure. A final group by operator computes a final aggregate value of all results, including pre-grouped results and passed through results, from the partial group by operator.
-
公开(公告)号:US20210232402A1
公开(公告)日:2021-07-29
申请号:US17227167
申请日:2021-04-09
Applicant: ORACLE INTERNATIONAL CORPORATION
Inventor: Benjamin Schlegel , Pit Fender , Harshad Kasture , Matthias Brantner , Hassan Chafi
Abstract: Techniques are provided for vectorizing Heapsort. A K-heap is used as the underlying data structure for indexing values being sorted. The K-heap is vectorized by storing values in a contiguous memory array containing a beginning-most side and end-most side. The vectorized Heapsort utilizes horizontal aggregation SIMD instructions for comparisons, shuffling, and moving data. Thus, the number of comparisons required in order to find the maximum or minimum key value within a single node of the K-heap is reduced resulting in faster retrieval operations.
-
38.
公开(公告)号:US20210224257A1
公开(公告)日:2021-07-22
申请号:US16744635
申请日:2020-01-16
Applicant: Oracle International Corporation
Inventor: Pit Fender , Benjamin Schlegel , Matthias Brantner
IPC: G06F16/242 , G06F16/22 , G06F16/2458
Abstract: Techniques described herein proposes a Dependent Grouping Column Rewrite that simplifies a grouping operation by excluding dependent grouping columns from a group by clause. A non-blocking aggregation function is applied to dependent grouping columns in at least select clauses. Such a simplified grouping operation reduces memory pressure, speeds up grouping operations, and saves compute time, as grouping columns that have no additional effect on the grouping operation are excluded from processing (e.g., hashing and key matching).
-
公开(公告)号:US20210019315A1
公开(公告)日:2021-01-21
申请号:US16516898
申请日:2019-07-19
Applicant: Oracle International Corporation
Inventor: Pit Fender , Benjamin Schlegel , Matthias Brantner
IPC: G06F16/2453 , G06F16/2455
Abstract: According to an embodiment, a method includes rewriting a particular query to generate a rewritten query. The particular query specifies a window function operator, a particular input to the window function operator, and an analytical function. Rewriting the particular query includes assigning the particular input to an intermediate relation and replacing the window function operator with a replacement operator. The method further includes assigning to the replacement operator an aggregate function corresponding to the analytical function, and the intermediate relation. In this embodiment, the method also includes placing a join operator that joins the intermediate relation with an output of the replacement operator.
-
公开(公告)号:US10783143B2
公开(公告)日:2020-09-22
申请号:US15791712
申请日:2017-10-24
Applicant: Oracle International Corporation
Inventor: Pit Fender , Benjamin Schlegel , Nipun Agarwal
IPC: G06F16/2453
Abstract: Techniques are described herein for computing columnar information during join enumeration in a database system. The computation occurs in two phases: the first phase involves a pre-computational phase that is only run once per query block to initialize and prepare a set of data structures. The second phase is an incremental approach that takes place for every query sub-plan. Upon completion of the second phase, the generated projected attributes of a query sub-plan are associated as columnar information associated with the query sub-plan, and used to compute the query execution cost. Subsequently, based on the computed query execution cost, the query sub-plan may be executed as part of the query execution plan.
-
-
-
-
-
-
-
-
-