Patents by Inventor Mohamed Zait

Mohamed Zait 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: 20180232417
    Abstract: Techniques are described herein for filtering data from a table during an in-memory scan. Predicates are pushed to in-memory scan to avoid scanning unnecessary columnar units and reduce the overhead of decompressing, row stitching and distributing data during evaluation. Techniques are described herein for generating implied predicates that have conditions on single columns from complex predicates that have multiple conditions on the same column, which can be evaluated during an in-memory scan. Techniques are also described herein to reduce the overhead of a table scan for processing a join query. When redistributing a first table for performing a hash-join, the nodes performing an in-memory scan of the first table may create a filter that tracks unique values from the join key. Data from the second table is only processed and transferred to other nodes in the cluster if the values from the join key pass through the filter.
    Type: Application
    Filed: April 4, 2018
    Publication date: August 16, 2018
    Inventors: DINESH DAS, JIAQI YAN, MOHAMED ZAIT, NIRAV VYAS
  • Patent number: 10025822
    Abstract: Techniques are described herein for accurately estimating the cost of performing a join against “mirror format” data that is at least partially located in volatile memory. Mirror format data is a copy of on-disk data (a.k.a. persistent format data) stored in a different format in volatile memory. In the preferred embodiment described herein, the mirror format data is stored in a column-major format, while the persistent format data is stored in a row-major format. The cost of performing a join query with a particular join method against mirror format data is different than the cost of performing the same particular join method against persistent format data. Techniques described herein for estimating the cost of multiple join query execution plans, and selecting the most optimized plan.
    Type: Grant
    Filed: July 22, 2015
    Date of Patent: July 17, 2018
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Dinesh Das, Mohamed Zait, Jiaqi Yan, Niloy Mukherjee
  • Patent number: 10025823
    Abstract: Techniques are described herein for filtering data from a table during an in-memory scan. Predicates are pushed to in-memory scan to avoid scanning unnecessary columnar units and reduce the overhead of decompressing, row stitching and distributing data during evaluation. Techniques are described herein for generating implied predicates that have conditions on single columns from complex predicates that have multiple conditions on the same column, which can be evaluated during an in-memory scan. Techniques are also described herein to reduce the overhead of a table scan for processing a join query. When redistributing a first table for performing a hash-join, the nodes performing an in-memory scan of the first table may create a filter that tracks unique values from the join key. Data from the second table is only processed and transferred to other nodes in the cluster if the values from the join key pass through the filter.
    Type: Grant
    Filed: July 22, 2015
    Date of Patent: July 17, 2018
    Assignee: Oracle International Corporation
    Inventors: Dinesh Das, Jiaqi Yan, Mohamed Zait, Nirav Vyas
  • 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
  • Patent number: 10002148
    Abstract: Techniques are described herein for distributing data from one or more partitioned tables across the volatile memories of a cluster. In memory copies of data from partitioned tables are grouped based on the data falling within the same partition criteria. These groups are used for assigning data from corresponding partitions to the same node when distributing data from partitioned tables across the volatile memories of a multi-node cluster. When a query requires a join between rows of partitioned tables, the work for the join query is divided into work granules that correspond to partition-wise join operations. Those partition-wise join operations are assigned to nodes by a query coordinator based on the partition-to-node mapping located in the node of the query coordinator.
    Type: Grant
    Filed: July 22, 2015
    Date of Patent: June 19, 2018
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Niloy Mukherjee, Mohamed Zait, Juan Loaiza, Vineet Marwah, Tirthankar Lahiri, Jiaqi Yan, Kartik Kulkarni
  • Patent number: 9870390
    Abstract: Methods, stored instructions, and computer systems are described for selecting an OR-expansion state of a query. A query processor accesses a certain query and a control parameter. The certain query comprises disjunctive predicates, and the control parameter indicates a certain procedure of a plurality of alternative stored procedures for expanding queries comprising disjunctive predicates into semantically equivalent candidate queries comprising combinations of subqueries. Based at least in part on the control parameter, the query processor selects the certain procedure to expand the certain query into one or more certain semantically equivalent candidate queries, each comprising a different combination of two or more subqueries. The query processor causes cost-based evaluation of subject queries, including the certain query and the one or more certain semantically equivalent candidate queries.
    Type: Grant
    Filed: February 18, 2014
    Date of Patent: January 16, 2018
    Assignee: Oracle International Corporation
    Inventors: Rafi Ahmed, Nirav Vyas, Mohamed Zait
  • Patent number: 9852185
    Abstract: A table is processed to determine an approximate NDV for a plurality of groups. For each row, a group based is identified based on one or more group-by columns. A hashed valued is generated by applying a uniform hash function to a value in an NDV column. The hashed value is assigned to a particular bucket based on the values at a first set of bit positions in a binary representation of the hashed value. A bit position value is determined based on for a remaining portion of the binary representation of the hashed value. The bit position value is based on a number of ordered bits in the hashed value that match a particular bit pattern. For each group identified, a maximum bit position (MBP) table is generated. The MBP table stores, for one or more buckets, the maximum bit position value determined for hashed values assigned to a particular bucket.
    Type: Grant
    Filed: August 5, 2015
    Date of Patent: December 26, 2017
    Assignee: Oracle International Corporation
    Inventors: Hong Su, Mohamed Zait, Sunil Chakkappen
  • Publication number: 20170357692
    Abstract: Techniques for processing queries are provided. In one approach, an execution plan for a query includes multiple sub-plans, one or more of which are selected at runtime while one or more other sub-plans are not executed during execution of the execution plan. In another approach, data about misestimate is generated and stored persistently for subsequent queries. In another approach, statistics for a database object are generated automatically and efficiently while the database object is created or data items are added thereto. In another approach, a hybrid histogram is created that includes a feature of frequency histograms and a feature of height-balanced histograms. In another approach, computer jobs are executed in such a way to avoid deadlock. In another approach, changes to a database object trigger a hard parse of a query even though an execution plan already exists for the query.
    Type: Application
    Filed: August 1, 2017
    Publication date: December 14, 2017
    Inventors: Hong Su, Sunil P. Chakkappen, Mohamed Zait
  • Patent number: 9727609
    Abstract: Techniques for processing queries are provided. In one approach, an execution plan for a query includes multiple sub-plans, one or more of which are selected at runtime while one or more other sub-plans are not executed during execution of the execution plan. In another approach, data about misestimate is generated and stored persistently for subsequent queries. In another approach, statistics for a database object are generated automatically and efficiently while the database object is created or data items are added thereto. In another approach, a hybrid histogram is created that includes a feature of frequency histograms and a feature of height-balanced histograms. In another approach, computer jobs are executed in such a way to avoid deadlock. In another approach, changes to a database object trigger a hard parse of a query even though an execution plan already exists for the query.
    Type: Grant
    Filed: September 30, 2013
    Date of Patent: August 8, 2017
    Assignee: Oracle International Corporation
    Inventors: Hong Su, Sunil P. Chakkappen, Mohamed Zait
  • Patent number: 9720967
    Abstract: Techniques for processing queries are provided. In one approach, an execution plan for a query includes multiple sub-plans, one or more of which are selected at runtime while one or more other sub-plans are not executed during execution of the execution plan. In another approach, data about misestimate is generated and stored persistently for subsequent queries. In another approach, statistics for a database object are generated automatically and efficiently while the database object is created or data items are added thereto. In another approach, a hybrid histogram is created that includes a feature of frequency histograms and a feature of height-balanced histograms. In another approach, computer jobs are executed in such a way to avoid deadlock. In another approach, changes to a database object trigger a hard parse of a query even though an execution plan already exists for the query.
    Type: Grant
    Filed: September 30, 2013
    Date of Patent: August 1, 2017
    Assignee: Oracle International Corporation
    Inventors: Allison W. Lee, Mohamed Zait, Hari Sankar Sivarama Subramaniyan
  • Publication number: 20170116230
    Abstract: Systems for database system management. A method embodiment commences upon intercepting a feature or command that is issued from a software application that interfaces with a database management system. Rules are used to identify that the feature or command is of a first type (e.g., an older type). The feature or command is analyzed to determine if it is a candidate to be modified or upgraded to implement a newer feature or command of a second type (e.g., a newer type). Modifications are made to the old feature or command of the first type to implement a new feature or command of a second type. The new feature or command of the second type is sent to the database management system for processing.
    Type: Application
    Filed: October 20, 2016
    Publication date: April 27, 2017
    Applicant: Oracle International Corporation
    Inventors: Mohamed ZAIT, Sunil Parrokkaren CHAKKAPPEN, Jiaqi YAN
  • Publication number: 20170031990
    Abstract: Techniques for processing queries are provided. In one approach, an execution plan for a query includes multiple sub-plans, one or more of which are selected at runtime while one or more other sub-plans are not executed during execution of the execution plan. In another approach, data about misestimate is generated and stored persistently for subsequent queries. In another approach, statistics for a database object are generated automatically and efficiently while the database object is created or data items are added thereto. In another approach, a hybrid histogram is created that includes a feature of frequency histograms and a feature of height-balanced histograms. In another approach, computer jobs are executed in such a way to avoid deadlock. In another approach, changes to a database object trigger a hard parse of a query even though an execution plan already exists for the query.
    Type: Application
    Filed: October 17, 2016
    Publication date: February 2, 2017
    Inventors: Sunil P. Chakkappen, Mohamed Zait, Allison W. Lee, Ali Cakmak
  • Publication number: 20170031967
    Abstract: Techniques are described for maintaining an expression statistics store that stores and updates metadata values for query expressions based on the occurrence of those query expressions within queries. In an embodiment, a database server instance receives a database query. In response, the database server instance identifies expressions within the database queries. The database server instance then determines whether an expression statistics store includes an entry for the particular expression. Responsive to determining that the expression statistics store includes an entry for the particular expression, the database server instance updates at least one metadata value in the entry based on the occurrence of the particular expression. Responsive to determining that the expression statistics store does not include an entry for the particular expression, the database server instance adds an entry for the particular expression.
    Type: Application
    Filed: May 4, 2016
    Publication date: February 2, 2017
    Inventors: Shasank K. Chavan, Aurosish Mishra, Mohamed Zait, Sunil P. Chakkappen, Can Tuzla, Jiaqi Yan
  • Publication number: 20170024387
    Abstract: A table is processed to determine an approximate NDV for a plurality of groups. For each row, a group based is identified based on one or more group-by columns. A hashed valued is generated by applying a uniform hash function to a value in an NDV column. The hashed value is assigned to a particular bucket based on the values at a first set of bit positions in a binary representation of the hashed value. A bit position value is determined based on for a remaining portion of the binary representation of the hashed value. The bit position value is based on a number of ordered bits in the hashed value that match a particular bit pattern. For each group identified, a maximum bit position (MBP) table is generated. The MBP table stores, for one or more buckets, the maximum bit position value determined for hashed values assigned to a particular bucket.
    Type: Application
    Filed: August 5, 2015
    Publication date: January 26, 2017
    Inventors: Hong Su, Mohamed Zait, Sunil Chakkappen
  • Publication number: 20160378829
    Abstract: A system performs database management. The system receives a request for a query of a plurality of tables under a join condition on an attribute and determines a uniform mapping that maps a domain of the attribute into a set of numbers, where the domain of the attribute includes all attribute values taken by the attribute in the tables. Then, for a row in a table, the system includes the row into a synopsis of the table if the row includes an attribute value that is mapped by the uniform mapping to a number less than an inclusion probability associated with the table. The system obtains a plurality of synopsis for the tables by repeating the including for all rows in the table and for all tables, and determines, based on the plurality of synopsis, an estimate join size of the tables under the join condition.
    Type: Application
    Filed: June 29, 2015
    Publication date: December 29, 2016
    Inventors: David VENGEROV, Mohamed ZAIT, Sunil P. CHAKKAPPEN, Andre MENCK
  • Publication number: 20160350347
    Abstract: Techniques are described herein for filtering data from a table during an in-memory scan. Predicates are pushed to in-memory scan to avoid scanning unnecessary columnar units and reduce the overhead of decompressing, row stitching and distributing data during evaluation. Techniques are described herein for generating implied predicates that have conditions on single columns from complex predicates that have multiple conditions on the same column, which can be evaluated during an in-memory scan. Techniques are also described herein to reduce the overhead of a table scan for processing a join query. When redistributing a first table for performing a hash-join, the nodes performing an in-memory scan of the first table may create a filter that tracks unique values from the join key. Data from the second table is only processed and transferred to other nodes in the cluster if the values from the join key pass through the filter.
    Type: Application
    Filed: July 22, 2015
    Publication date: December 1, 2016
    Inventors: DINESH DAS, JIAQI YAN, MOHAMED ZAIT, NIRAV VYAS
  • Publication number: 20160350375
    Abstract: Techniques are described herein for accurately estimating the cost of performing a join against “mirror format” data that is at least partially located in volatile memory. Mirror format data is a copy of on-disk data (a.k.a. persistent format data) stored in a different format in volatile memory. In the preferred embodiment described herein, the mirror format data is stored in a column-major format, while the persistent format data is stored in a row-major format. The cost of performing a join query with a particular join method against mirror format data is different than the cost of performing the same particular join method against persistent format data. Techniques described herein for estimating the cost of multiple join query execution plans, and selecting the most optimized plan.
    Type: Application
    Filed: July 22, 2015
    Publication date: December 1, 2016
    Inventors: DINESH DAS, MOHAMED ZAIT, JIAQI YAN, NILOY MUKHERJEE
  • Patent number: 9471631
    Abstract: Techniques for processing queries are provided. In one approach, an execution plan for a query includes multiple sub-plans, one or more of which are selected at runtime while one or more other sub-plans are not executed during execution of the execution plan. In another approach, data about misestimate is generated and stored persistently for subsequent queries. In another approach, statistics for a database object are generated automatically and efficiently while the database object is created or data items are added thereto. In another approach, a hybrid histogram is created that includes a feature of frequency histograms and a feature of height-balanced histograms. In another approach, computer jobs are executed in such a way to avoid deadlock. In another approach, changes to a database object trigger a hard parse of a query even though an execution plan already exists for the query.
    Type: Grant
    Filed: September 30, 2013
    Date of Patent: October 18, 2016
    Assignee: Oracle International Corporation
    Inventors: Sunil P. Chakkappen, Mohamed Zait, Allison W. Lee, Ali Cakmak
  • Publication number: 20160026667
    Abstract: Techniques are described herein for distributing data from one or more partitioned tables across the volatile memories of a cluster. In memory copies of data from partitioned tables are grouped based on the data falling within the same partition criteria. These groups are used for assigning data from corresponding partitions to the same node when distributing data from partitioned tables across the volatile memories of a multi-node cluster. When a query requires a join between rows of partitioned tables, the work for the join query is divided into work granules that correspond to partition-wise join operations. Those partition-wise join operations are assigned to nodes by a query coordinator based on the partition-to-node mapping located in the node of the query coordinator.
    Type: Application
    Filed: July 22, 2015
    Publication date: January 28, 2016
    Inventors: Niloy Mukherjee, Mohamed Zait, Juan Loaiza, Vineet Marwah, Tirthankar Lahiri, Jiaqi Yan, Kartik Kulkarni
  • Patent number: 9189522
    Abstract: Approaches, techniques, and mechanisms are disclosed for maintaining a set of baseline query plans for a database command. Except in rare circumstances, a database server may only execute a command according to a baseline plan, even if the database server predicts that a different plan has a lower cost. The set of baseline plans are plans that, for one reason or another, have been determined to provide acceptable actual performance in at least one execution context. When the database server receives a request to execute a particular command, the database server, if possible, always executes the command according to the lowest predicted cost baseline plan. The database server may evolve the plan baseline to include additional plans by generating and testing new plans in response to new requests to execute the database command, or as part of a query optimization or tuning process.
    Type: Grant
    Filed: August 8, 2008
    Date of Patent: November 17, 2015
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Dinesh Das, Cetin Ozbutun, Hong Su, Mohamed Zait, Yali Zhu, Mohamed Ziauddin, Peter Belknap, Khaled Yagoub