Patents by Inventor Dinesh Das
Dinesh Das 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).
-
Patent number: 10229158Abstract: Approaches, techniques, and mechanisms are disclosed for ensuring that a database command is executed according to a query plan that has been verified to be actually optimal. Except in rare circumstances, a database server does not execute a query plan unless it is first verified by the database server. The database server receives a request to execute a database command. The database server determines an unverified plan is the best plan for satisfying the request. Rather than risk the unknown behavior of an unverified plan, the database server instead satisfies the request according to a verified plan. Subsequently—for example as part of a scheduled job—the database server executes the unverified plan to determine performance statistics. Based at least on the performance statistics, the database server determines whether or not to verify the unverified plan. Techniques for concurrent and optimistic verifications are also disclosed.Type: GrantFiled: April 11, 2014Date of Patent: March 12, 2019Assignee: Oracle International CorporationInventors: Peter Belknap, Benoit Dageville, Dinesh Das, Khaled Yagoub, Mohamed Zait, Mohamed Ziauddin
-
Patent number: 10216794Abstract: 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: GrantFiled: April 4, 2018Date of Patent: February 26, 2019Assignee: Oracle International CorporationInventors: Dinesh Das, Jiaqi Yan, Mohamed Zait, Nirav Vyas
-
Patent number: 10073885Abstract: Techniques are provided for determining costs for alternative execution plans for a query, where at least a portion of the data items required by the query are in in-memory compression-units within volatile memory. The techniques involve maintaining in-memory statistics, such as statistics that indicate what fraction of a table is currently present in in-memory compression units, and the cost of decompressing in-memory compression units. Those statistics are used to determine, for example, the cost of a table scan that retrieves some or all of the necessary data items from the in-memory compression-units.Type: GrantFiled: July 22, 2015Date of Patent: September 11, 2018Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Dinesh Das, Jiaqi Yan, Jesse Kamp, Prashant Gaharwar, Satyanarayana R. Valluri
-
Publication number: 20180232417Abstract: 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: ApplicationFiled: April 4, 2018Publication date: August 16, 2018Inventors: DINESH DAS, JIAQI YAN, MOHAMED ZAIT, NIRAV VYAS
-
Patent number: 10025823Abstract: 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: GrantFiled: July 22, 2015Date of Patent: July 17, 2018Assignee: Oracle International CorporationInventors: Dinesh Das, Jiaqi Yan, Mohamed Zait, Nirav Vyas
-
Patent number: 10025822Abstract: 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: GrantFiled: July 22, 2015Date of Patent: July 17, 2018Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Dinesh Das, Mohamed Zait, Jiaqi Yan, Niloy Mukherjee
-
Publication number: 20160350347Abstract: 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: ApplicationFiled: July 22, 2015Publication date: December 1, 2016Inventors: DINESH DAS, JIAQI YAN, MOHAMED ZAIT, NIRAV VYAS
-
Publication number: 20160350375Abstract: 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: ApplicationFiled: July 22, 2015Publication date: December 1, 2016Inventors: DINESH DAS, MOHAMED ZAIT, JIAQI YAN, NILOY MUKHERJEE
-
Publication number: 20160350371Abstract: Techniques are provided for determining costs for alternative execution plans for a query, where at least a portion of the data items required by the query are in in-memory compression-units within volatile memory. The techniques involve maintaining in-memory statistics, such as statistics that indicate what fraction of a table is currently present in in-memory compression units, and the cost of decompressing in-memory compression units. Those statistics are used to determine, for example, the cost of a table scan that retrieves some or all of the necessary data items from the in-memory compression-units.Type: ApplicationFiled: July 22, 2015Publication date: December 1, 2016Inventors: DINESH DAS, JIAQI YAN, JESSE KAMP, PRASHANT GAHARWAR, SATYANARAYANA R. VALLURI
-
Patent number: 9189522Abstract: 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: GrantFiled: August 8, 2008Date of Patent: November 17, 2015Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Dinesh Das, Cetin Ozbutun, Hong Su, Mohamed Zait, Yali Zhu, Mohamed Ziauddin, Peter Belknap, Khaled Yagoub
-
Patent number: 9058356Abstract: 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: GrantFiled: August 8, 2008Date of Patent: June 16, 2015Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Dinesh Das, Cetin Ozbutun, Hong Su, Mohamed Zait, Yali Zhu, Mohamed Ziauddin, Peter Belknap, Khaled Yagoub
-
Publication number: 20140236921Abstract: Approaches, techniques, and mechanisms are disclosed for ensuring that a database command is executed according to a query plan that has been verified to be actually optimal. Except in rare circumstances, a database server does not execute a query plan unless it is first verified by the database server. The database server receives a request to execute a database command. The database server determines an unverified plan is the best plan for satisfying the request. Rather than risk the unknown behavior of an unverified plan, the database server instead satisfies the request according to a verified plan. Subsequently—for example as part of a scheduled job—the database server executes the unverified plan to determine performance statistics. Based at least on the performance statistics, the database server determines whether or not to verify the unverified plan. Techniques for concurrent and optimistic verifications are also disclosed.Type: ApplicationFiled: April 11, 2014Publication date: August 21, 2014Applicant: Oracle International CorporationInventors: Peter Belknap, Benoit Dageville, Dinesh Das, Khaled Yagoub, Mohamed Zait, Mohamed Ziauddin
-
Patent number: 8700608Abstract: Approaches, techniques, and mechanisms are disclosed for ensuring that a database command is executed according to a query plan that has been verified to be actually optimal. Except in rare circumstances, a database server does not execute a query plan unless it is first verified by the database server. The database server receives a request to execute a database command. The database server determines an unverified plan is the best plan for satisfying the request. Rather than risk the unknown behavior of an unverified plan, the database server instead satisfies the request according to a verified plan. Subsequently—for example as part of a scheduled job—the database server executes the unverified plan to determine performance statistics. Based at least on the performance statistics, the database server determines whether or not to verify the unverified plan. Techniques for concurrent and optimistic verifications are also disclosed.Type: GrantFiled: August 8, 2008Date of Patent: April 15, 2014Assignee: Oracle International CorporationInventors: Peter Belknap, Benoit Dageville, Dinesh Das, Khaled Yagoub, Mohamed Zait, Mohamed Ziauddin
-
Patent number: 8600977Abstract: Approaches, techniques, and mechanisms are disclosed for capturing and utilizing information related to query plans exhibiting interesting characteristics. A database server receives a request to execute a command. The database server executes the command according to a query plan. In response to determining that the command matches one or more pre-defined criteria, the database server captures information related to the execution of the first command. The criteria may include, for example, whether or not the command is repeatable, the existence of bind variables, access of a particular object, high resource utilization, receipt from a particular user, client, or application, etc. The information recorded may include, for example, performance statistics collected during execution of the first plan, data indicating the execution context during execution of the first plan, and properties of the first plan.Type: GrantFiled: August 8, 2008Date of Patent: December 3, 2013Assignee: Oracle International CorporationInventors: Benoit Dageville, Dinesh Das, Mohamed Ziauddin
-
Patent number: 8335767Abstract: Approaches, techniques, and mechanisms are disclosed for maintaining a history of query plans executed for a database command, along with information related to each query plan. A database server receives a request to execute a particular command. The database server determines a plan for executing the particular command. The database server adds first information to a plan history associated with the particular command. The plan history comprises information related to a plurality of plans that have been generated for the particular command. The first information may include, for example, properties of the plan (including an outline of the plan) as well as statistics collected during execution of the plan. The database server may implement techniques for periodically refreshing information in a plan history. The database server may also implement techniques for purging old or less important plans.Type: GrantFiled: August 8, 2008Date of Patent: December 18, 2012Assignee: Oracle International CorporationInventors: Dinesh Das, Yali Zhu, Mohamed Ziauddin, Benoit Dageville, Hong Su
-
Patent number: 7996387Abstract: In one embodiment, a database server registers one or more functions included in a user-defined index that includes one or more auxiliary properties. The one or more functions are operable to generate index entries of the user-defined index for the one or more auxiliary properties. The one or more auxiliary properties are different than, and in addition to, a primary property of the user-defined index that provides for evaluating a query operator. The database server receives a first statement that defines the user-defined index, where the first statement includes one or more parameters that define the one or more auxiliary properties. The database server invokes the one or more functions in response to the first statement, where the one or more functions when invoked generate and store the index entries of the user-defined index according to the one or more parameters that define the one or more auxiliary properties.Type: GrantFiled: February 7, 2008Date of Patent: August 9, 2011Assignee: Oracle International CorporationInventors: Dinesh Das, Wesley Lin, Seema Sundara, Ying Hu, Sriram Krishnamurthy
-
Patent number: 7945562Abstract: Join predicate push down transformations push down a join predicate of an outer query into a view. Among the types of views for which join predicate push down is performed are a view with a GROUP BY or DISTINCT operator, an anti-joined or semi-joined view, and a view that contains one or more nested views. During optimization, join predicate push down may be used to generate many transformed queries for comparison. The number of query transformations performed for comparison is managed.Type: GrantFiled: March 8, 2007Date of Patent: May 17, 2011Assignee: Oracle International CorporationInventors: Rafi Ahmed, Allison Lee, Dinesh Das
-
Patent number: 7925647Abstract: In one embodiment, a database server registers one or more functions included in a user-defined index that includes one or more auxiliary properties. The database server receives a query that specifies one or more parameters. A query optimizer generates a plurality of execution plans for evaluating the query. The query optimizer estimates a plurality of total costs respectively associated with the plurality of execution plans, where estimating a particular total cost associated with a particular execution plan comprises: invoking the one or more functions with one or more function arguments based on the one or more parameters; receiving one or more index costs that are associated with using the one or more auxiliary properties of the user-defined index to evaluate the query; and determining the particular total cost based on the one or more index costs.Type: GrantFiled: February 7, 2008Date of Patent: April 12, 2011Assignee: Oracle International CorporationInventors: Dinesh Das, Wesley Lin, Seema Sundara
-
Patent number: 7877379Abstract: Techniques are provided for delaying evaluation of expensive expressions in a query. Expensive expressions in the query are established by cost information or by looking up a list of known expensive expressions for a match. After an execution plan is determined by using the early evaluation technique, one or more equivalent execution plans is established. The one or more equivalent execution plans may include both a type of execution plans that delay evaluation of expensive expressions and a type of execution plans that do not. In addition, the one or more equivalent execution plans may include both parallelized and non-parallelized alternatives to the execution plan identified by the early evaluation technique. Finally, based on a set of criteria, which may include comparing cost information among all the equivalent execution plans generated thus far, the best execution plan is chosen for the query.Type: GrantFiled: September 30, 2005Date of Patent: January 25, 2011Assignee: Oracle International CorporationInventors: Allison Waingold, Rafi Ahmed, Bhaskar Ghosh, Dinesh Das, Mohamed Zait
-
Patent number: 7805411Abstract: Auto-tuning can be performed by receiving a database query language statement and performance information related to the statement, determining whether one or more performance statistics of the statement are available or missing in the performance information, and determining an auto-tuning hint for each missing statistic.Type: GrantFiled: September 7, 2004Date of Patent: September 28, 2010Assignee: Oracle International CorporationInventors: Mohamed Ziauddin, Benoit Dageville, Mohamed Zait, Dinesh Das