-
公开(公告)号:US11222070B2
公开(公告)日:2022-01-11
申请号:US16803819
申请日:2020-02-27
Applicant: Oracle International Corporation
Inventor: Benjamin Schlegel , Martin Sevenich , Pit Fender , Matthias Brantner , Hassan Chafi
IPC: G06F16/00 , G06F16/901 , G06F9/38
Abstract: Techniques are described herein for a vectorized hash table that uses very efficient grow and insert techniques. A single-probe hash table is grown via vectorized instructions that split each bucket, of the hash table, into a respective upper and lower bucket of the expanded hash table. Further, vacant slots are indicated using a vacant-slot-indicator value, e.g., ‘0’, and all vacant slots follow to the right of all occupied slots in a bucket. A vectorized compare instruction determines whether a value is already in the bucket. If not, the vectorized compare instruction is also used to determine whether the bucket has a vacant slot based on whether the bucket contains the vacant-slot-indicator value. To insert the value into the bucket, vectorized instructions are used to shift the values in the bucket to the right by one slot and to insert the new value into the left-most slot.
-
公开(公告)号:US11169995B2
公开(公告)日:2021-11-09
申请号:US15819193
申请日:2017-11-21
Applicant: Oracle International Corporation
Inventor: Pit Fender , Seema Sundara , Benjamin Schlegel , Nipun Agarwal
IPC: G06F7/00 , G06F16/2453 , G06F16/21 , G06F16/22 , G06F16/2455
Abstract: Techniques related to relational dictionaries are disclosed. In some embodiments, one or more non-transitory storage media store a sequence of instructions which, when executed by one or more computing devices, cause performance of a method. The method involves storing a code dictionary comprising a set of tuples. The code dictionary is a database table defined by a database dictionary and comprises columns that are each defined by the database dictionary. The set of tuples maps a set of codes to a set of tokens. The set of tokens are stored in a column of unencoded database data. The method further involves generating encoded database data based on joining the unencoded database data with the set of tuples. Furthermore, the method involves generating decoding database data based on joining the encoded database data with the set of tuples.
-
公开(公告)号:US11061901B2
公开(公告)日:2021-07-13
申请号:US16519794
申请日:2019-07-23
Applicant: Oracle International Corporation
Inventor: Pit Fender , Benjamin Schlegel , Nipun Agarwal
IPC: G06F16/245 , G06F16/2453
Abstract: Techniques are described herein for influencing plan generation in context of the two phase query optimization approach. Types of pruning criteria including method pruning criteria, total cost pruning criteria, and permutation pruning criteria exist in cost-based plan generators to determine what parts of a query statement should be offloaded to a query offload engine. Method pruning criteria is responsible to determine an optimal joining method. Total cost pruning criteria compares accumulated costs with a lowest plan cost determined so far. Permutation pruning criteria is responsible for selecting the cheapest query execution plan from all considered query execution plans. Each type of pruning criteria is modified to favor offload engine execution upon request.
-
公开(公告)号:US20210165778A1
公开(公告)日:2021-06-03
申请号:US16699524
申请日:2019-11-29
Applicant: Oracle International Corporation
Inventor: Pit Fender , Benjamin Schlegel , Nipun Agarwal
IPC: G06F16/23 , G06F16/2453 , G06F16/22
Abstract: Techniques described herein propose a ROWID Elimination Rewrite that uses functional dependencies to substitute and/or eliminate ROWID pseudo-columns referenced in a query in order to reduce memory pressure and speed up processing.
-
公开(公告)号:US11016778B2
公开(公告)日:2021-05-25
申请号:US16299483
申请日:2019-03-12
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.
-
公开(公告)号:US20200348933A1
公开(公告)日:2020-11-05
申请号:US16399226
申请日:2019-04-30
Applicant: Oracle International Corporation
Inventor: Benjamin Schlegel , Harshard Kasture , Pit Fender , Matthias Brantner , Hassan Chafi
Abstract: Techniques are provided for obtaining generic vectorized d-heaps for any data type for which horizontal aggregation SIMD instructions are not available, including primitive as well as complex data types. A generic vectorized d-heap comprises a prefix heap and a plurality of suffix heaps. Each suffix heap of the plurality of suffix heaps comprises a d-heap. A plurality of key values stored in the heap are split into key prefix values and key suffix values. Key prefix values are stored in the prefix heap and key suffix values are stored in the plurality of suffix heaps. Each entry in the prefix heap includes a key prefix value of the plurality of key values and a reference to the suffix heap of the plurality of suffix heaps that includes all key suffix values of the plurality of key values that share the respective key prefix value.
-
57.
公开(公告)号:US20190121893A1
公开(公告)日:2019-04-25
申请号:US15791696
申请日:2017-10-24
Applicant: Oracle International Corporation
Inventor: Pit Fender , Sam Idicula , Nipun Agarwal , Benjamin Schlegel
CPC classification number: G06F16/24549 , G06F8/4441 , G06F16/24534
Abstract: Techniques are described herein for introducing transcode operators into a generated operator tree during query processing. Setting up the transcode operators with correct encoding type at runtime is performed by inferring correct encoding type information during compile time. The inference of the correct encoding type information occurs in three phases during compile time: the first phase involves collecting, consolidating, and propagating the encoding-type information of input columns up the expression tree. The second phase involves pushing the encoding-type information down the tree for nodes in the expression tree that do not yet have any encoding-type assigned. The third phase involves determining which inputs to the current relational operator need to be pre-processed by a transcode operator.
-
公开(公告)号:US20190121891A1
公开(公告)日:2019-04-25
申请号:US15791712
申请日:2017-10-24
Applicant: Oracle International Corporation
Inventor: Pit Fender , Benjamin Schlegel , Nipun Agarwal
IPC: G06F17/30
CPC classification number: G06F16/24544 , G06F16/24535 , G06F16/24537 , G06F16/24545
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.
-
-
-
-
-
-
-