Patents by Inventor Milind M. Joshi
Milind M. Joshi 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: 10983998Abstract: Described is a query optimizer comprising a query tuner that performs actual execution of query fragments to obtain actual results during compilation time, and uses those actual results to select a query plan. The actual results may be combined with estimates for fragments that were not executed. The tree may be traversed in a top-down traversal, processing every node. Alternatively, the tree may be traversed in a bottom-up traversal, re-deriving data for higher nodes as each lower level is completed. A limit, such as a time limit or level limit, may be used to control how much time is taken to determine the execution plan.Type: GrantFiled: June 25, 2008Date of Patent: April 20, 2021Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Andrew S. Richardson, Campbell Bryce Fraser, Cesar A. Galindo-Legaría, Torsten W. Grabs, Wei Yu, Milind M. Joshi
-
Patent number: 8255387Abstract: Technologies for forming logical indexes and utilizing such indexes so as to abstract many of the complexities resulting from referencing partitioned database tables. Included are technologies for making use of order-preserving properties of table metadata, for adding a partition equality predicate to an explicit predicate in merge-join processing on partitioned tables, and for selecting execution of a logical skip scan on a partitioned table when a query predicate does not reference a specific partition. Such technologies generally abstract from the query writer and processing systems explicit referencing of table partitions.Type: GrantFiled: July 9, 2010Date of Patent: August 28, 2012Assignee: Microsoft CorporationInventors: Cesar A. Galindo-Legaria, Craig S. Freedman, Milind M. Joshi
-
Publication number: 20100274780Abstract: Technologies for forming logical indexes and utilizing such indexes so as to abstract many of the complexities resulting from referencing partitioned database tables. Included are technologies for making use of order-preserving properties of table metadata, for adding a partition equality predicate to an explicit predicate in merge-join processing on partitioned tables, and for selecting execution of a logical skip scan on a partitioned table when a query predicate does not reference a specific partition. Such technologies generally abstract from the query writer and processing systems explicit referencing of table partitions.Type: ApplicationFiled: July 9, 2010Publication date: October 28, 2010Applicant: Microsoft CorporationInventors: César Alejandro Galindo-Legaria, Craig S. Freedman, Milind M. Joshi
-
Patent number: 7792822Abstract: Technologies for forming logical indexes and utilizing such indexes so as to abstract many of the complexities resulting from referencing partitioned database tables. Included are technologies for making use of order-preserving properties of table metadata, for adding a partition equality predicate to an explicit predicate in merge-join processing on partitioned tables, and for selecting execution of a logical skip scan on a partitioned table when a query predicate does not reference a specific partition. Such technologies generally abstract from the query writer and processing systems explicit referencing of table partitions.Type: GrantFiled: April 16, 2007Date of Patent: September 7, 2010Assignee: Microsoft CorporationInventors: Cesar A. Galindo-Legaria, Craig S. Freedman, Milind M. Joshi
-
Publication number: 20090327214Abstract: Described is a query optimizer comprising a query tuner that performs actual execution of query fragments to obtain actual results during compilation time, and uses those actual results to select a query plan. The actual results may be combined with estimates for fragments that were not executed. The tree may be traversed in a top-down traversal, processing every node. Alternatively, the tree may be traversed in a bottom-up traversal, re-deriving data for higher nodes as each lower level is completed. A limit, such as a time limit or level limit, may be used to control how much time is taken to determine the execution plan.Type: ApplicationFiled: June 25, 2008Publication date: December 31, 2009Applicant: Microsoft CorporationInventors: Andrew S. Richardson, Campbell Bryce Fraser, Cesar A. Galindo-Legaria, Torsten W. Grabs, Wei Yu, Milind M. Joshi
-
Patent number: 7599953Abstract: A method of satisfying a database query includes evaluating certain joins on a per-segment basis. An expression tree is produced for the query, and the expression tree is evaluated to identify joins whose operands are two instances of the same relation and whose join predicate conjunctively includes an equality comparison between two instances of the same column. When such a join is identified, it may be evaluated by segmenting the operand relation according to the columns that are compared for equality in the predicate. The join is then evaluated by performing the join operation separately on each segment. Segments may be spooled separately, thereby exploiting the efficiencies obtained by spooling even where the entire relation is too large to fit in the spool. Execution iterators are provided for spooling successive segments and for applying the join to the spooled segment.Type: GrantFiled: November 29, 2004Date of Patent: October 6, 2009Assignee: Microsoft CorporationInventors: Cesar A. Galindo-Legaria, Goetz Graefe, Milind M. Joshi, Ross T. Bunker
-
Patent number: 7590646Abstract: A method of satisfying a database query includes evaluating certain joins on a per-segment basis. An expression tree is produced for the query, and the expression tree is evaluated to identify joins whose operands are two instances of the same relation and whose join predicate conjunctively includes an equality comparison between two instances of the same column. When such a join is identified, it may be evaluated by segmenting the operand relation according to the columns that are compared for equality in the predicate. The join is then evaluated by performing the join operation separately on each segment. Segments may be spooled separately, thereby exploiting the efficiencies obtained by spooling even where the entire relation is too large to fit in the spool. Execution iterators are provided for spooling successive segments and for applying the join to the spooled segment.Type: GrantFiled: April 22, 2004Date of Patent: September 15, 2009Assignee: Microsoft CorporationInventors: Cesar A. Galinda-Legaria, Goetz Graefe, Milind M. Joshi, Ross T. Bunker
-
Patent number: 7509311Abstract: A query optimizer produces a preferred execution plan by utilizing statistics on views. These provide the optimizer with statistical information beyond that available on tables, for example, with information on the result of scalar or relational expressions. Pre-derived accurate statistics are thus available which are used to improve the accuracy of estimation and thus increase the quality and reliability of the query processor. Transformations of expressions and sub-expressions of candidate plans produce equivalent sub-expressions. Where those sub-expressions include references to views, an estimation of the cardinality and other execution statistics for the sub-expression can be made using the view statistics. This can be used to estimate the cardinality for all equivalent sub-expressions, leading to higher accuracy for the estimate.Type: GrantFiled: August 29, 2003Date of Patent: March 24, 2009Assignee: Microsoft CorporationInventors: Cesar A. Galindo-Legaria, Milind M. Joshi
-
Publication number: 20080215544Abstract: Technologies for forming logical indexes and utilizing such indexes so as to abstract many of the complexities resulting from referencing partitioned database tables. Included are technologies for making use of order-preserving properties of table metadata, for adding a partition equality predicate to an explicit predicate in merge-join processing on partitioned tables, and for selecting execution of a logical skip scan on a partitioned table when a query predicate does not reference a specific partition. Such technologies generally abstract from the query writer and processing systems explicit referencing of table partitions.Type: ApplicationFiled: April 16, 2007Publication date: September 4, 2008Applicant: Microsoft CorporationInventors: Cesar Alejandro Galindo-Legaria, Craig S. Freedman, Milind M. Joshi
-
Patent number: 7349897Abstract: Indexed views or materialized views are used as a secondary index on a base table with multi-valued attributes. This provides for using the index to search in the nested data. Moreover, indexing is provided on the result of an unnest operation. Indexing a view on the result of an unnesting operation provides the ability to index the contents of a nested collection. One such unnesting operation is “cross apply unnest”. This provides additional options for a query execution plan, leading to a more optimized query. A back-join is provided from the indexed view to the base table to allow fields from the base table that are not present in the indexed view to be included in a result of a query on the table which is processed using the indexed view as an access path. This provides a means of including columns in the query result that are not in the indexed view but are in the base table.Type: GrantFiled: February 4, 2005Date of Patent: March 25, 2008Assignee: Microsoft CorporationInventors: Conor J. Cunningham, Eric N. Hanson, Milind M. Joshi, Cesar A. Galindo-Legaria, Florian M. Waas
-
Patent number: 7340445Abstract: Indexed views or materialized views are used as a secondary index on a base table with multi-valued attributes. This provides for using the index to search in the nested data. Moreover, indexing is provided on the result of an unnest operation. Indexing a view on the result of an unnesting operation provides the ability to index the contents of a nested collection. One such unnesting operation is “cross apply unnest”. This provides additional options for a query execution plan, leading to a more optimized query. A back-join is provided from the indexed view to the base table to allow fields from the base table that are not present in the indexed view to be included in a result of a query on the table which is processed using the indexed view as an access path. This provides a means of including columns in the query result that are not in the indexed view but are in the base table.Type: GrantFiled: February 4, 2005Date of Patent: March 4, 2008Assignee: Microsoft CorporationInventors: Conor J. Cunningham, Eric N. Hanson, Milind M. Joshi, Cesar A. Galindo-Legaria, Florian M. Waas
-
Patent number: 7272598Abstract: Indexed views or materialized views are used as a secondary index on a base table with multi-valued attributes. This provides for using the index to search in the nested data. Moreover, indexing is provided on the result of an unnest operation. Indexing a view on the result of an unnesting operation provides the ability to index the contents of a nested collection. One such unnesting operation is “cross apply unnest”. This provides additional options for a query execution plan, leading to a more optimized query. A back-join is provided from the indexed view to the base table to allow fields from the base table that are not present in the indexed view to be included in a result of a query on the table which is processed using the indexed view as an access path. This provides a means of including columns in the query result that are not in the indexed view but are in the base table.Type: GrantFiled: March 31, 2005Date of Patent: September 18, 2007Assignee: Microsoft CorporationInventors: Conor J. Cunningham, Eric N. Hanson, Milind M. Joshi, Cesar A. Galindo-Legaria, Florian M. Waas
-
Patent number: 7254574Abstract: Indexed views or materialized views are used as a secondary index on a base table with multi-valued attributes. This provides for using the index to search in the nested data. Moreover, indexing is provided on the result of an unnest operation. Indexing a view on the result of an unnesting operation provides the ability to index the contents of a nested collection. One such unnesting operation is “cross apply unnest”. This provides additional options for a query execution plan, leading to a more optimized query. A back-join is provided from the indexed view to the base table to allow fields from the base table that are not present in the indexed view to be included in a result of a query on the table which is processed using the indexed view as an access path. This provides a means of including columns in the query result that are not in the indexed view but are in the base table.Type: GrantFiled: March 8, 2004Date of Patent: August 7, 2007Assignee: Microsoft CorporationInventors: Conor J. Cunningham, Eric N. Hanson, Milind M. Joshi, Cesar A. Galindo-Legaria, Florian M. Waas
-
Patent number: 7146363Abstract: During query execution, statistics associated with expressions are observed. Such observed statistics preferably include the cardinality of each expression. The observed statistics are submitted to an expression manager as feedback from the executed query. The statistics are preferably stored for use in estimating the cardinality of execution plans for future queries.Type: GrantFiled: May 20, 2003Date of Patent: December 5, 2006Assignee: Microsoft CorporationInventors: Florian M. Waas, Cesar A. Galindo-Legaria, Milind M. Joshi
-
Publication number: 20040236722Abstract: During query execution, statistics associated with expressions are observed. Such observed statistics preferably include the cardinality of each expression. The observed statistics are submitted to an expression manager as feedback from the executed query. The statistics are preferably stored for use in estimating the cardinality of execution plans for future queries.Type: ApplicationFiled: May 20, 2003Publication date: November 25, 2004Applicant: Microsoft CorporationInventors: Florian M. Waas, Cesar A. Galindo-Legaria, Milind M. Joshi
-
Publication number: 20040205078Abstract: A method of satisfying a database query includes evaluating certain joins on a per-segment basis. An expression tree is produced for the query, and the expression tree is evaluated to identify joins whose operands are two instances of the same relation and whose join predicate conjunctively includes an equality comparison between two instances of the same column. When such a join is identified, it may be evaluated by segmenting the operand relation according to the columns that are compared for equality in the predicate. The join is then evaluated by performing the join operation separately on each segment. Segments may be spooled separately, thereby exploiting the efficiencies obtained by spooling even where the entire relation is too large to fit in the spool. Execution iterators are provided for spooling successive segments and for applying the join to the spooled segment.Type: ApplicationFiled: April 22, 2004Publication date: October 14, 2004Applicant: Microsoft CorporationInventors: Cesar A. Galindo-Legaria, Goetz Graefe, Milind M. Joshi, Ross T. Bunker
-
Publication number: 20040199530Abstract: A method and system for creating an index for a database table of records in a computer environment having a plurality of processing units wherein each processing unit has access to the database table. The method first determines partition delimiters wherein each partition delimiter separates the database table into non-overlapping partitions of records. Each of these partitions is dedicated to one processing unit for index creation. Next, each processing unit independently creates a sub-index, i.e., different processing units create at least two sub-indexes. Last, the method merges the sub-indexes together to create a final index related to the database table.Type: ApplicationFiled: April 21, 2004Publication date: October 7, 2004Applicant: Microsoft CorporationInventors: Srikanth R. Avadhanam, Milind M. Joshi, Ajay Kalhan, Srikumar Rangarajan, Tsvi M. Reiter
-
Patent number: 6778977Abstract: A method and system for creating an index for a database table of records in a computer environment having a plurality of processing units wherein each processing unit has access to the database table. The method first determines partition delimiters wherein each partition delimiter separates the database table into non-overlapping partitions of records. Each of these partitions is dedicated to one processing unit for index creation. Next, each processing unit independently creates a sub-index, i.e., different processing units create at least two sub-indexes. Last, the method merges the sub-indexes together to create a final index related to the database table.Type: GrantFiled: April 19, 2001Date of Patent: August 17, 2004Assignee: Microsoft CorporationInventors: Srikanth R. Avadhanam, Milind M. Joshi, Ajay Kalhan, Srikumar Rangarajan, Tsvi M. Reiter
-
Patent number: 6748392Abstract: A method of satisfying a database query includes evaluating certain joins on a per-segment basis. An expression tree is produced for the query, and the expression tree is evaluated to identify joins whose operands are two instances of the same relation and whose join predicate conjunctively includes an equality comparison between two instances of the same column. When such a join is identified, it may be evaluated by segmenting the operand relation according to the columns that are compared for equality in the predicate. The join is then evaluated by performing the join operation separately on each segment. Segments may be spooled separately, thereby exploiting the efficiencies obtained by spooling even where the entire relation is too large to fit in the spool. Execution iterators are provided for spooling successive segments and for applying the join to the spooled segment.Type: GrantFiled: March 6, 2001Date of Patent: June 8, 2004Assignee: Microsoft CorporationInventors: Cesar A. Galindo-Legaria, Goetz Graefe, Milind M. Joshi, Ross T. Bunker
-
Patent number: 6510422Abstract: A query optimizer determines the applicability of materialized views to a query. View utilization alternatives are generated in the exploration stage of optimization, so that interaction with other transformations in complex queries is taken into account. A final decision on whether to use a materialized view is based on estimated cost. The optimizer generates a table of alternatives, which compactly encodes the various possibilities for each sub-expression of the query. Optimal-cost operator trees are extracted from this table. Materialized views are detected and substituted during exploration of the various possibilities and added to the table of alternatives. Materialized views and the alternatives are selected for use in a query execution plan based on cost. When two operator trees are not identical, a residual operator can be used if one operator tree subsumes the other operator tree. The residual expression can contain operators such as filters, group by and join.Type: GrantFiled: September 27, 2000Date of Patent: January 21, 2003Assignee: Microsoft CorporationInventors: Cesar A. Galindo-Legaria, Milind M. Joshi