Patents by Inventor Andrew Witkowski

Andrew Witkowski has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20210109930
    Abstract: Techniques are described for storing and maintaining, in a materialized view, bitmap data that represents a bitmap of each possible distinct value of an expression and rewriting a query for a count of distinct values of the expression using the materialized view. The materialized view contains bitmap data that represents a bitmap of each possible distinct value of a first expression, and aggregate values of additional expressions, and is stored in memory or on disk by a database system. The database system receives a query that requests a number of distinct values, of the first expression, and an aggregate value for an additional expression. In response, the database system, rewrites the query to: compute the number of distinct values by counting the bits in the bitmap data of the materialized view that are set to the first value, and obtains the aggregate value for the additional expression in the materialized view.
    Type: Application
    Filed: October 15, 2019
    Publication date: April 15, 2021
    Inventors: Sabina Petride, Mohamed Ziauddin, Praveen T.J. Kumar, Huagang Li, Andrew Witkowski, Sankar Subramanian
  • Publication number: 20210049171
    Abstract: Embodiments generate random walks through a directed graph that is represented in a relational database table. Each row of the graph table represents a directed edge in the graph and includes a source vertex and a destination vertex. Each row is further augmented to (a) indicate the number of outbound edges starting from the destination vertex in the row and (b) include an identifier that distinguishes the edge from other outbound edges starting from the same source vertex. An SQL query may be executed on the augmented graph table. Starting from a source vertex (starting vertex or the destination vertex of the previously selected hop) the query randomly selects a row of the graph table representing one of the outbound edges from the source vertex and adds the selected outbound edge as a row in a random walk table that represents the next hop in the random walk.
    Type: Application
    Filed: August 16, 2019
    Publication date: February 18, 2021
    Applicant: Oracle International Corporation
    Inventors: Mohamed Ziauddin, Zhe Wu, Andrew Witkowski
  • Publication number: 20210026847
    Abstract: Definitions of material views are automatically generated. In general, Automated MV generation identifies a set of candidates MVs by examining a working set of query blocks. Once the candidates are formed, the candidate MVs are further evaluated to calculate a benefit to the candidate MVs. An improved approach for generating a candidate set of MVs is described herein. The improved approach is referred to as the extended covering subexpression technique (ECSE). Under ECSE, various relationships between join sets other than strict equivalence are used to generate new resultant join sets. Such relationships include subset, intersection, superset, and union, which shall be described in further detail below. In some cases, relationships among resultant join sets and initial join sets are considered to generate new resultant join sets. The final resultant join sets are then used to form a candidate set of MVs.
    Type: Application
    Filed: July 26, 2019
    Publication date: January 28, 2021
    Inventors: Rafi Ahmed, Randall Bello, Andrew Witkowski
  • Patent number: 10776363
    Abstract: Techniques related to efficient data retrieval based on aggregate characteristics of composite tables are provided. A join zone map includes entries that describe data from a join relationship between a first key column of a first table and a second key column of a second table. The first table includes a dimension column. Each entry of the join zone map corresponds to a respective zone. Each zone includes contiguous data blocks that correspond to one or more second key column values. Each entry also includes a respective dimension value range of one or more dimension column values. Each dimension value range includes a respective maximum dimension value and a respective minimum dimension value. Furthermore, each entry includes a respective anti-join attribute value that indicates whether any of the one or more second key column values in a particular zone are non-null and fail to match any first key column values.
    Type: Grant
    Filed: June 29, 2017
    Date of Patent: September 15, 2020
    Assignee: Oracle International Corporation
    Inventors: Mohamed Ziauddin, Andrew Witkowski
  • Patent number: 10733186
    Abstract: Techniques are described herein for processing queries comprising joins specifying a plurality of tables. The techniques involve partitioning the tables by assigning rows to partitions. One or more partition maps may be generated to indicate the partitions. Subsequent tables may be partitioned based on the generated partition maps. The partitions may be used to determine results for the joins.
    Type: Grant
    Filed: September 15, 2016
    Date of Patent: August 4, 2020
    Assignee: Oracle International Corporation
    Inventors: Angela Amor, Andrew Witkowski, Srikanth Bondalapati, Sankar Subramanian
  • Patent number: 10719516
    Abstract: A method and system for processing database queries containing aggregate functions. The query may specify fewer groups than there are processes available to process the queries. Further, the queries may target a set of rows and specify a sort-by key and a group-by key. The method and system further includes determining that the queries specify application of the aggregate function to each of a plurality of groups that may correspond to a plurality of distinct values of the group-by key and determining that plurality of processes are available to process the queries. The method and system also includes determining the plurality of ranges of a composite key that may be formed by combining the group-by key and the sort-by key and assigning each range of the plurality ranges to a corresponding process to calculate the aggregate function.
    Type: Grant
    Filed: August 27, 2018
    Date of Patent: July 21, 2020
    Assignee: Oracle International Corporation
    Inventors: Venkatesh Sakamuri, Huagang Li, Sankar Subramanian, Andrew Witkowski
  • Patent number: 10678792
    Abstract: Techniques are described herein for executing queries with a recursive clause using a plurality of processes that execute database operations in parallel. Each process of the plurality of processes either generate or are assigned a segment that is part of a temporary table. For each iteration of the recursive query, work granules are divided up and assigned to each of the plurality of processes. As each respective process produces a portion of a result set for a given iteration, that process appends said portion of the result set to the respective segment that the respective process manages. Each slave process then publishes, to one or more sources, a reference to the newly generated results. During the next iteration, any slave process may access any of the data from the previous iteration.
    Type: Grant
    Filed: September 16, 2016
    Date of Patent: June 9, 2020
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Mohamed Ziauddin, You Jung Kim, Yali Zhu, Andrew Witkowski
  • Patent number: 10635671
    Abstract: Techniques herein optimize sort-merge join method for a band join. In an embodiment, for a query comprising a query block specifying a join between a first table and a second table, a band join condition is detected between the first table and the second table. Once the band join condition in detected, an execution plan is generated and executed. The execution of the execution plan includes: for a first row of at least a subset of first sorted rows, scanning second rows from a set of second sorted rows, joining each of said second rows with said first row, and ceasing to scan when encountering a row from the second sorted rows that falls outside a bound of said band join condition. Techniques also include parallelizing a workload by overlapping the distribution of rows to the same slave process and computing cost and cardinality estimation for enhanced band join.
    Type: Grant
    Filed: October 5, 2017
    Date of Patent: April 28, 2020
    Assignee: Oracle International Corporation
    Inventors: Lei Sheng, Rafi Ahmed, Andrew Witkowski, Sankar Subramanian
  • Publication number: 20200065413
    Abstract: A method and system for processing database queries containing aggregate functions. The query may specify fewer groups than there are processes available to process the queries. Further, the queries may target a set of rows and specify a sort-by key and a group-by key. The method and system further includes determining that the queries specify application of the aggregate function to each of a plurality of groups that may correspond to a plurality of distinct values of the group-by key and determining that plurality of processes are available to process the queries. The method and system also includes determining the plurality of ranges of a composite key that may be formed by combining the group-by key and the sort-by key and assigning each range of the plurality ranges to a corresponding process to calculate the aggregate function.
    Type: Application
    Filed: August 27, 2018
    Publication date: February 27, 2020
    Inventors: Venkatesh Sakamuri, Huagang Li, Sankar Subramanian, Andrew Witkowski
  • Patent number: 10558660
    Abstract: A method, apparatus, and stored instructions are provided for the removal of redundant GROUP BY and/or DISTINCT. Every table in the FROM clause of the query block must be a qualified table for the GROUP-BY clause or the DISTINCT keyword in the SELECT clause of the query block to be removed. A table Tx that satisfies at least one of the following two conditions is referred to as a qualified table: (1) Tx has a non-null unique column Tx.u that appears on the GROUP BY clause or the SELECT clause that contains a DISTINCT keyword and (2) There is a qualified table Ty and Ty has a filtering join with Tx.
    Type: Grant
    Filed: July 24, 2017
    Date of Patent: February 11, 2020
    Assignee: Oracle International Corporation
    Inventors: Rafi Ahmed, Andrew Witkowski, Sankar Subramanian
  • Patent number: 10452655
    Abstract: Techniques are provided herein for processing a query using in-memory cursor duration temporary tables. The techniques involve storing a part of the temporary table in memory of nodes in a database cluster. A part of the temporary table may be stored in disk segments of nodes in the database cluster. Writer threads running on a particular node writes data for the temporary table to the memory of the particular node. Excess data may be written to the disk segment of the particular node. Reader threads running on the particular node reads data for the temporary table from the memory of the particular node and the disk segment of the particular node.
    Type: Grant
    Filed: September 16, 2016
    Date of Patent: October 22, 2019
    Assignee: Oracle International Corporation
    Inventors: Janaki Latha Lahorani, You Jung Kim, Andrew Witkowski, Sankar Subramanian
  • Publication number: 20190087457
    Abstract: An approach for implementing function semantic based partition-wise SQL execution and partition pruning in a data processing system is provided. The system receives a query directed to a range-partitioned table and determines if operation key(s) of the query include(s) function(s) over the table partitioning key(s). If so, the system obtains a set of values corresponding to each partition by evaluating the function(s) on a low bound and/or a high bound table partitioning key value corresponding to the partition. The system may then compare the sets of values corresponding to different partitions and determine whether to aggregate results obtained by executing the query over the partitions based on the comparison. The system may also determine whether to prune any partitions from processing based on a set of correlations between the set of values for each partition and predicate(s) of the query including function(s) over the table partitioning key(s).
    Type: Application
    Filed: September 21, 2017
    Publication date: March 21, 2019
    Applicant: Oracle International Corporation
    Inventors: Srikanth BELLAMKONDA, Andrew WITKOWSKI, Manish Pratap SINGH, Madhuri KANDEPI
  • Patent number: 10223422
    Abstract: Techniques are provided for generating a “dimensional zonemap” that allows a database server to avoid scanning disk blocks of a fact table based on filter predicates in a query that qualify one or more dimension tables. The zonemap divides the fact table into sets of contiguous disk blocks referred to as “zones”. For each zone, a minimum value and a maximum value for each of one or more “zoned” columns of the dimension tables is determined and maintained in the zonemap. For a query that contains a filter predicate on a zoned column, the predicate value can be compared to the minimum value and maximum value maintained for a zone for that zoned column to determine whether a scan of the disk blocks of the zone can be skipped.
    Type: Grant
    Filed: March 27, 2015
    Date of Patent: March 5, 2019
    Assignee: Oracle International Corporation
    Inventors: Mohamed Ziauddin, Andrew Witkowski
  • Publication number: 20190026332
    Abstract: A method, apparatus, and stored instructions are provided for the removal of redundant GROUP BY and/or DISTINCT. Every table in the FROM clause of the query block must be a qualified table for the GROUP-BY clause or the DISTINCT keyword in the SELECT clause of the query block to be removed. A table Tx that satisfies at least one of the following two conditions is referred to as a qualified table: (1) Tx has a non-null unique column Tx.u that appears on the GROUP BY clause or the SELECT clause that contains a DISTINCT keyword and (2) There is a qualified table Ty and Ty has a filtering join with Tx.
    Type: Application
    Filed: July 24, 2017
    Publication date: January 24, 2019
    Inventors: Rafi Ahmed, Andrew Witkowski, Sankar Subramanian
  • Publication number: 20190005096
    Abstract: Techniques related to efficient data retrieval based on aggregate characteristics of composite tables are provided. A join zone map includes entries that describe data from a join relationship between a first key column of a first table and a second key column of a second table. The first table includes a dimension column. Each entry of the join zone map corresponds to a respective zone. Each zone includes contiguous data blocks that correspond to one or more second key column values. Each entry also includes a respective dimension value range of one or more dimension column values. Each dimension value range includes a respective maximum dimension value and a respective minimum dimension value. Furthermore, each entry includes a respective anti-join attribute value that indicates whether any of the one or more second key column values in a particular zone are non-null and fail to match any first key column values.
    Type: Application
    Filed: June 29, 2017
    Publication date: January 3, 2019
    Inventors: Mohamed Ziauddin, Andrew Witkowski
  • Patent number: 10019481
    Abstract: A method, system, and computer program product for high-performance database systems. The method commences by estimating, during a compile phase, a statically-calculated system cost of performing parallel join operations over two relations, then selecting, during the compile phase, a first distribution method to perform the parallel join operations. Instructions (e.g., table partitioning) are communicated to two or more execution units for execution of the parallel join operations, and during execution, various measurements are taken pertaining to the performance of a first portion of the parallel join operations using the selected first distribution method. Then, responsive to the measurements a second distribution method is selected and corresponding instructions are communicated to the two or more execution units. The parallel join operations continue, now using the second distribution method.
    Type: Grant
    Filed: March 15, 2013
    Date of Patent: July 10, 2018
    Assignee: Oracle International Corporation
    Inventors: Unmesh Jagtap, Andrew Witkowski, Mohamed Zait, Allison Waingold Lee, Hari Sankar Sivarama Subramaniyan, Thierry Cruanes
  • Publication number: 20180101573
    Abstract: Techniques herein optimize sort-merge join method for a band join. In an embodiment, for a query comprising a query block specifying a join between a first table and a second table, a band join condition is detected between the first table and the second table. Once the band join condition in detected, an execution plan is generated and executed. The execution of the execution plan includes: for a first row of at least a subset of first sorted rows, scanning second rows from a set of second sorted rows, joining each of said second rows with said first row, and ceasing to scan when encountering a row from the second sorted rows that falls outside a bound of said band join condition. Techniques also include parallelizing a workload by overlapping the distribution of rows to the same slave process and computing cost and cardinality estimation for enhanced band join.
    Type: Application
    Filed: October 5, 2017
    Publication date: April 12, 2018
    Inventors: Lei Sheng, Rafi Ahmed, Andrew Witkowski, Sankar Subramanian
  • Publication number: 20180075101
    Abstract: Techniques are described herein for processing queries comprising joins specifying a plurality of tables. The techniques involve partitioning the tables by assigning rows to partitions. One or more partition maps may be generated to indicate the partitions. Subsequent tables may be partitioned based on the generated partition maps. The partitions may be used to determine results for the joins.
    Type: Application
    Filed: September 15, 2016
    Publication date: March 15, 2018
    Inventors: Angela Amor, Andrew Witkowski, Srikanth Bondalapati, Sankar Subramanian
  • Publication number: 20170116266
    Abstract: Techniques are provided herein for processing a query using in-memory cursor duration temporary tables. The techniques involve storing a part of the temporary table in memory of nodes in a database cluster. A part of the temporary table may be stored in disk segments of nodes in the database cluster. Writer threads running on a particular node writes data for the temporary table to the memory of the particular node. Excess data may be written to the disk segment of the particular node. Reader threads running on the particular node reads data for the temporary table from the memory of the particular node and the disk segment of the particular node.
    Type: Application
    Filed: September 16, 2016
    Publication date: April 27, 2017
    Inventors: Janaki Latha Lahorani, You Jung Kim, Andrew Witkowski, Sankar Subramanian
  • Publication number: 20170116276
    Abstract: Techniques are described herein for executing queries with a recursive clause using a plurality of processes that execute database operations in parallel. Each process of the plurality of processes either generate or are assigned a segment that is part of a temporary table. For each iteration of the recursive query, work granules are divided up and assigned to each of the plurality of processes. As each respective process produces a portion of a result set for a given iteration, that process appends said portion of the result set to the respective segment that the respective process manages. Each slave process then publishes, to one or more sources, a reference to the newly generated results. During the next iteration, any slave process may access any of the data from the previous iteration.
    Type: Application
    Filed: September 16, 2016
    Publication date: April 27, 2017
    Inventors: Mohamed Ziauddin, You Jung Kim, Yali Zhu, Andrew Witkowski