Patents by Inventor Craig S. Freedman

Craig S. Freedman 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: 11860829
    Abstract: Methods for page split detection and affinity in query processing pushdowns are performed by systems and devices. Page servers perform pushdown operations based on specific, and specifically formatted or generated, information, instructions, and data provided thereto from a compute node. Page servers also determine that page splits have occurred during reading of data pages maintained by page servers during pushdown operations, and also during fulfillment of compute node data requests. To detect a data page has split, page servers utilize information from a compute node of an expected next data page which is compared to a next data page in the page server page index. A mismatch in the comparison by page servers indicates data page was split. Compute nodes and page servers store and maintain off-row data generated during data operations via page affinity considerations where the off-row data is stored at the same page server as the data.
    Type: Grant
    Filed: February 19, 2021
    Date of Patent: January 2, 2024
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Craig S. Freedman, Adrian-Leonard Radu, Daniel G. Schall, Hanumantha R. Kodavalla, Panagiotis Antonopoulos, Raghavendra Thallam Kodandaramaih, Alejandro Hernandez Saenz, Naveen Prakash
  • Publication number: 20230376479
    Abstract: Distributed database systems including compute nodes and page servers are described herein that enable compute nodes to pushdown certain query processing compute tasks to the page servers to take advantage of otherwise idle compute resources at the page servers, and to reduce the quantity of data that moves between compute nodes and page servers. A distributed database system includes a page server and a compute node, wherein the page server is configured to maintain multiple versions of stored data objects. The compute node is configured to receive a query and generate a transaction context (TC) and modified table schemas (MTS) scoped to the query, and pushdown the query, TC and MTS to the page server that is configured to determine which data objects at the page server satisfy the query, and for each such object, which version of the object should be returned based on the TC.
    Type: Application
    Filed: July 31, 2023
    Publication date: November 23, 2023
    Inventors: Craig S. FREEDMAN, Adrian-Leonard G. Radu, Daniel G. SCHALL, Hanumantha R. KODAVALLA, Panagiotis ANTONOPOULOS, Raghavendra Thallam KODANDARAMAIH, Alejandro Hernandez SAENZ, Naveen PRAKASH
  • Patent number: 11797523
    Abstract: Distributed database systems including compute nodes and page servers are described herein that enable compute nodes to pushdown certain query processing compute tasks to the page servers to take advantage of otherwise idle compute resources at the page servers, and to reduce the quantity of data that moves between compute nodes and page servers. A distributed database system includes a page server and a compute node, wherein the page server is configured to maintain multiple versions of stored data objects. The compute node is configured to receive a query and generate a transaction context (TC) and modified table schemas (MTS) scoped to the query, and pushdown the query, TC and MTS to the page server that is configured to determine which data objects at the page server satisfy the query, and for each such object, which version of the object should be returned based on the TC.
    Type: Grant
    Filed: February 19, 2021
    Date of Patent: October 24, 2023
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Craig S. Freedman, Adrian-Leonard Radu, Daniel G. Schall, Hanumantha R. Kodavalla, Panagiotis Antonopoulos, Raghavendra Thallam Kodandaramaih, Alejandro Hernandez Saenz, Naveen Prakash
  • Publication number: 20230014697
    Abstract: Methods for operation fragmentation with metadata serialization in query processing pushdowns are performed by systems and devices. A compute node receives a query directed to database data, and generates query text fragments. Portions of metadata of the database are read from different page servers, and are serialized by the compute node. Page identities of data pages in a page server that stores the data are determined from a page index at the compute node, and the compute node provides the text fragments, the serialized metadata, and the page identities to the page server storing the data. The page server compiles the text fragments based on the serialized metadata to generate an executable query plan for the query. The page server initializes and performs execution of the executable query plan against the data as a pushdown query operation, and a result of pushdown query operation is provided to the compute node.
    Type: Application
    Filed: September 26, 2022
    Publication date: January 19, 2023
    Inventors: Craig S. FREEDMAN, Adrian-Leonard RADU, Daniel G. SCHALL, Hanumantha R. KODAVALLA, Panagiotis ANTONOPOULOS, Raghavendra Thallam KODANDARAMAIH, Alejandro Hernandez SAENZ, Naveen PRAKASH
  • Patent number: 11487766
    Abstract: Methods for operation fragmentation with metadata serialization in query processing pushdowns are performed by systems and devices. A compute node receives a query directed to database data, and generates query text fragments. Portions of metadata of the database are read from different page servers, and are serialized by the compute node. Page identities of data pages in a page server that stores the data are determined from a page index at the compute node, and the compute node provides the text fragments, the serialized metadata, and the page identities to the page server storing the data. The page server compiles the text fragments based on the serialized metadata to generate an executable query plan for the query. The page server initializes and performs execution of the executable query plan against the data as a pushdown query operation, and a result of pushdown query operation is provided to the compute node.
    Type: Grant
    Filed: February 19, 2021
    Date of Patent: November 1, 2022
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Craig S. Freedman, Adrian-Leonard Radu, Daniel G. Schall, Hanumantha R. Kodavalla, Panagiotis Antonopoulos, Raghavendra Thallam Kodandaramaih, Alejandro Hernandez Saenz, Naveen Prakash
  • Publication number: 20220197873
    Abstract: Methods for page split detection and affinity in query processing pushdowns are performed by systems and devices. Page servers perform pushdown operations based on specific, and specifically formatted or generated, information, instructions, and data provided thereto from a compute node. Page servers also determine that page splits have occurred during reading of data pages maintained by page servers during pushdown operations, and also during fulfillment of compute node data requests. To detect a data page has split, page servers utilize information from a compute node of an expected next data page which is compared to a next data page in the page server page index. A mismatch in the comparison by page servers indicates data page was split. Compute nodes and page servers store and maintain off-row data generated during data operations via page affinity considerations where the off-row data is stored at the same page server as the data.
    Type: Application
    Filed: February 19, 2021
    Publication date: June 23, 2022
    Inventors: Craig S. FREEDMAN, Adrian-Leonard RADU, Daniel G. SCHALL, Hanumantha R. KODAVALLA, Panagiotis ANTONOPOULOS, Raghavendra Thallam KODANDARAMAIH, Alejandro Hernandez SAENZ, Naveen PRAKASH
  • Publication number: 20220197911
    Abstract: Methods for operation fragmentation with metadata serialization in query processing pushdowns are performed by systems and devices. A compute node receives a query directed to database data, and generates query text fragments. Portions of metadata of the database are read from different page servers, and are serialized by the compute node. Page identities of data pages in a page server that stores the data are determined from a page index at the compute node, and the compute node provides the text fragments, the serialized metadata, and the page identities to the page server storing the data. The page server compiles the text fragments based on the serialized metadata to generate an executable query plan for the query. The page server initializes and performs execution of the executable query plan against the data as a pushdown query operation, and a result of pushdown query operation is provided to the compute node.
    Type: Application
    Filed: February 19, 2021
    Publication date: June 23, 2022
    Inventors: Craig S. FREEDMAN, Adrian-Leonard RADU, Daniel G. SCHALL, Hanumantha R. KODAVALLA, Panagiotis ANTONOPOULOS, Raghavendra Thallam KODANDARAMAIH, Alejandro Hernandez SAENZ, Naveen PRAKASH
  • Publication number: 20220197892
    Abstract: Distributed database systems including compute nodes and page servers are described herein that enable compute nodes to pushdown certain query processing compute tasks to the page servers to take advantage of otherwise idle compute resources at the page servers, and to reduce the quantity of data that moves between compute nodes and page servers. A distributed database system includes a page server and a compute node, wherein the page server is configured to maintain multiple versions of stored data objects. The compute node is configured to receive a query and generate a transaction context (TC) and modified table schemas (MTS) scoped to the query, and pushdown the query, TC and MTS to the page server that is configured to determine which data objects at the page server satisfy the query, and for each such object, which version of the object should be returned based on the TC.
    Type: Application
    Filed: February 19, 2021
    Publication date: June 23, 2022
    Inventors: Craig S. FREEDMAN, Adrian-Leonard RADU, Daniel G. SCHALL, Hanumantha R. KODAVALLA, Panagiotis ANTONOPOULOS, Raghavendra Thallam KODANDARAMAIH, Alejandro Hernandez SAENZ, Naveen PRAKASH
  • Patent number: 8255387
    Abstract: 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: Grant
    Filed: July 9, 2010
    Date of Patent: August 28, 2012
    Assignee: Microsoft Corporation
    Inventors: Cesar A. Galindo-Legaria, Craig S. Freedman, Milind M. Joshi
  • Publication number: 20100274780
    Abstract: 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: Application
    Filed: July 9, 2010
    Publication date: October 28, 2010
    Applicant: Microsoft Corporation
    Inventors: César Alejandro Galindo-Legaria, Craig S. Freedman, Milind M. Joshi
  • Patent number: 7792822
    Abstract: 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: Grant
    Filed: April 16, 2007
    Date of Patent: September 7, 2010
    Assignee: Microsoft Corporation
    Inventors: Cesar A. Galindo-Legaria, Craig S. Freedman, Milind M. Joshi
  • Patent number: 7676525
    Abstract: Disclosed are systems and methods for optimization and efficient processing of MERGE statements. MERGE allows performing a mix of inserts, updates, and deletes in a single statement, and introduces new challenges compared to legacy DML statements, where the kind of action to be performed is hard-coded and known at compile time. Such optimizations may include Halloween Protection detection for MERGE statements, optimized prevention of non-deterministic MERGE statements, in-place inserts for MERGE statements scanning the “Read Instance” of the target table, and optimized execution of MERGE statements seeking the “Read Instance” of the target table. Such optimizations may be fundamental in order to ensure proper performance and reliable processing times.
    Type: Grant
    Filed: July 2, 2007
    Date of Patent: March 9, 2010
    Assignee: Microsoft Corporation
    Inventors: Stefano Stefani, Naveen Prakash, Craig S. Freedman, Marcel van der Holst
  • Patent number: 7580920
    Abstract: A method to achieve acceptable query performance even when a database query optimizer chooses an inefficient query plan due to poor cardinality (row count) estimation includes generating a batch sort query plan which includes a row count operation and a reorder operation. The batch sort, and in particular the reorder operation, is not required to satisfy the query but without these operations the query plan may prove to be inefficient. When the row count operation determines that the query plan is inefficient, the row reordering operation reorders rows for more I/O efficient processing. The results of both the row count operation and the reorder operation are used to produce the desired rowset to satisfy the input query without discarding any retrieved rows.
    Type: Grant
    Filed: July 22, 2004
    Date of Patent: August 25, 2009
    Assignee: Microsoft Corporation
    Inventors: Craig S. Freedman, Goetz Graefe
  • Publication number: 20090012980
    Abstract: Disclosed are systems and methods for optimization and efficient processing of MERGE statements. MERGE allows performing a mix of inserts, updates, and deletes in a single statement, and introduces new challenges compared to legacy DML statements, where the kind of action to be performed is hard-coded and known at compile time. Such optimizations may include Halloween Protection detection for MERGE statements, optimized prevention of non-deterministic MERGE statements, in-place inserts for MERGE statements scanning the “Read Instance” of the target table, and optimized execution of MERGE statements seeking the “Read Instance” of the target table. Such optimizations may be fundamental in order to ensure proper performance and reliable processing times.
    Type: Application
    Filed: July 2, 2007
    Publication date: January 8, 2009
    Applicant: Microsoft Corporation
    Inventors: Stefano Stefani, Naveen Prakash, Craig S. Freedman, Marcel van der Holst
  • Patent number: 7472133
    Abstract: The present invention is directed to systems and methods for improved prefetching. The present invention reduces the processing time and associated costs of prefetching by incorporating a number of techniques for efficiently searching a node structure. Such techniques eliminate redundant traversal of nodes. Additionally, such techniques do not require locking the node structure to prevent concurrent updates. Furthermore, such techniques may exploit known key ordering information to optimize a search.
    Type: Grant
    Filed: July 30, 2004
    Date of Patent: December 30, 2008
    Assignee: Microsoft Corporation
    Inventors: Craig S. Freedman, Gang He, Goetz Graefe
  • Publication number: 20080215544
    Abstract: 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: Application
    Filed: April 16, 2007
    Publication date: September 4, 2008
    Applicant: Microsoft Corporation
    Inventors: Cesar Alejandro Galindo-Legaria, Craig S. Freedman, Milind M. Joshi