Patents by Inventor Karthik Saligrama Ramachandra

Karthik Saligrama Ramachandra 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: 11941001
    Abstract: Methods and systems are provided for converting a loop (e.g., a cursor loop) to a declarative Structured Query Language (SQL) query that invokes a custom aggregate function. The loop includes a select query and a loop body that includes a program fragment that can be evaluated over a result set of the select query one row at a time. The system verifies that the loop body does not modify a persistent state of the database. A custom aggregate function that expresses the loop body is automatically constructed according to a contract. An aggregate class comprising aggregation methods of the contract are used to construct the aggregate function based on results of static analysis. The select query is automatically rewritten to form a declarative SQL query that invokes the custom aggregate function. The declarative SQL query may be executed by a database management system (DBMS) SQL server.
    Type: Grant
    Filed: September 14, 2022
    Date of Patent: March 26, 2024
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Karthik Saligrama Ramachandra, Surabhi Gupta, Sanket Jayant Purandare
  • Publication number: 20240037097
    Abstract: Systems, methods, and devices are described for performing scalable data processing operations. A queue that includes a translatable portion comprising indications of data processing operations translatable to data queries and a non-translatable portion comprising indications of non-translatable data processing operations is maintained. A determination that a first data processing operation of a first code block statement is translatable to a database query is made. An indication of the first data processing operation is included in the translatable portion of the queue. Responsive to a determination that a second data processing operation of a second code block statement is undeferrable, the translatable portion of the queue is compiled into a database query. An execution of the database query to be executed by a database engine to generate a query result is caused. A result dataset corresponding to the query result is transmitted to an application configured to analyze the result dataset.
    Type: Application
    Filed: October 13, 2023
    Publication date: February 1, 2024
    Inventors: Kameswara Venkatesh EMANI, Avrilia FLORATOU, Carlo Aldo CURINO, Karthik Saligrama RAMACHANDRA, Alekh JINDAL
  • Patent number: 11829359
    Abstract: Systems, methods, and devices are described for performing scalable data processing operations. A queue that includes a translatable portion comprising indications of data processing operations translatable to data queries and a non-translatable portion comprising indications of non-translatable data processing operations is maintained. A determination that a first data processing operation of a first code block statement is translatable to a database query is made. An indication of the first data processing operation is included in the translatable portion of the queue. Responsive to a determination that a second data processing operation of a second code block statement is undeferrable, the translatable portion of the queue is compiled into a database query. An execution of the database query to be executed by a database engine to generate a query result is caused. A result dataset corresponding to the query result is transmitted to an application configured to analyze the result dataset.
    Type: Grant
    Filed: July 29, 2022
    Date of Patent: November 28, 2023
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Kameswara Venkatesh Emani, Avrilia Floratou, Carlo Aldo Curino, Karthik Saligrama Ramachandra, Alekh Jindal
  • Publication number: 20230026458
    Abstract: Methods and systems are provided for converting a loop (e.g., a cursor loop) to a declarative Structured Query Language (SQL) query that invokes a custom aggregate function. The loop includes a select query and a loop body that includes a program fragment that can be evaluated over a result set of the select query one row at a time. The system verifies that the loop body does not modify a persistent state of the database. A custom aggregate function that expresses the loop body is automatically constructed according to a contract. An aggregate class comprising aggregation methods of the contract are used to construct the aggregate function based on results of static analysis. The select query is automatically rewritten to form a declarative SQL query that invokes the custom aggregate function. The declarative SQL query may be executed by a database management system (DBMS) SQL server.
    Type: Application
    Filed: September 14, 2022
    Publication date: January 26, 2023
    Inventors: Karthik Saligrama RAMACHANDRA, Surabhi GUPTA, Sanket Jayant PURANDARE
  • Patent number: 11481390
    Abstract: Methods and systems are provided for converting a loop (e.g., a cursor loop) to a declarative Structured Query Language (SQL) query that invokes a custom aggregate function. The loop includes a select query and a loop body that includes a program fragment that can be evaluated over a result set of the select query one row at a time. The system verifies that the loop body does not modify a persistent state of the database. A custom aggregate function that expresses the loop body is automatically constructed according to a contract. An aggregate class comprising aggregation methods of the contract are used to construct the aggregate function based on results of static analysis. The select query is automatically rewritten to form a declarative SQL query that invokes the custom aggregate function. The declarative SQL query may be executed by a database management system (DBMS) SQL server.
    Type: Grant
    Filed: July 24, 2020
    Date of Patent: October 25, 2022
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Karthik Saligrama Ramachandra, Surabhi Gupta, Sanket Jayant Purandare
  • Publication number: 20220027367
    Abstract: Methods and systems are provided for converting a loop (e.g., a cursor loop) to a declarative Structured Query Language (SQL) query that invokes a custom aggregate function. The loop includes a select query and a loop body that includes a program fragment that can be evaluated over a result set of the select query one row at a time. The system verifies that the loop body does not modify a persistent state of the database. A custom aggregate function that expresses the loop body is automatically constructed according to a contract. An aggregate class comprising aggregation methods of the contract are used to construct the aggregate function based on results of static analysis. The select query is automatically rewritten to form a declarative SQL query that invokes the custom aggregate function. The declarative SQL query may be executed by a database management system (DBMS) SQL server.
    Type: Application
    Filed: July 24, 2020
    Publication date: January 27, 2022
    Inventors: Karthik Saligrama Ramachandra, Surabhi Gupta, Sanket Jayant Purandare
  • Patent number: 10515075
    Abstract: Processing a database query. A method includes receiving a database query from a user. The database query includes one or more imperative functions. The one or more imperative functions are converted to one or more declarative query representations. The one or more declarative query representations include standardized relational operators included in a relational query language. Further, the one or more declarative query representations are optimizable by a query optimizer of the database. The database query is optimized at the query optimizer to create a query plan by evaluating any declarative query representation originally in the database query received from the user and the one or more declarative query representations.
    Type: Grant
    Filed: May 15, 2017
    Date of Patent: December 24, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Karthik Saligrama Ramachandra, Kwanghyun Park, Alan Dale Halverson, Conor John Cunningham, Cesar Alejandro Galindo-Legaria, Kameswara Venkatesh Emani
  • Patent number: 10225337
    Abstract: Managing cluster resources for a cluster. The method includes identifying a plurality of quiescence policies. Each of the quiescence policies define one or more conditions for cluster entities which when met, identify that cluster resources should be reclaimed from cluster entities by quiescing cluster entities. The method further includes, for each quiescence policy, identifying an amount of reclaimed capacity defining the amount of cluster resources that will be reclaimed by implementing the quiescence policy. The method further includes, for each quiescence policy, identifying an amount of reserve capacity defining the amount of cluster resources that should be reserved for resuming quiesced cluster entities. The method further includes; selecting a quiescence policy based on comparing the reclaimed capacities and reserve capacities for the quiescence policies. The method further includes, booking cluster resources for cluster entities on the cluster according to the selected quiescence policy.
    Type: Grant
    Filed: June 30, 2016
    Date of Patent: March 5, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Karthik Saligrama Ramachandra, David Johns DeWitt, Shize Xu, Qun Guo, Ajay Kalhan, Peter Alan Carlin, Willis Lang
  • Publication number: 20180329952
    Abstract: Processing a database query. A method includes receiving a database query from a user. The database query includes one or more imperative functions. The one or more imperative functions are converted to one or more declarative query representations. The one or more declarative query representations include standardized relational operators included in a relational query language. Further, the one or more declarative query representations are optimizable by a query optimizer of the database. The database query is optimized at the query optimizer to create a query plan by evaluating any declarative query representation originally in the database query received from the user and the one or more declarative query representations.
    Type: Application
    Filed: May 15, 2017
    Publication date: November 15, 2018
    Inventors: Karthik Saligrama RAMACHANDRA, Kwanghyun PARK, Alan Dale HALVERSON, Conor John CUNNINGHAM, Cesar Alejandro GALINDO-LEGARIA, Kameswara Venkatesh EMANI
  • Publication number: 20180007128
    Abstract: Managing cluster resources for a cluster. The method includes identifying a plurality of quiescence policies. Each of the quiescence policies define one or more conditions for cluster entities which when met, identify that cluster resources should be reclaimed from cluster entities by quiescing cluster entities. The method further includes, for each quiescence policy, identifying an amount of reclaimed capacity defining the amount of cluster resources that will be reclaimed by implementing the quiescence policy. The method further includes, for each quiescence policy, identifying an amount of reserve capacity defining the amount of cluster resources that should be reserved for resuming quiesced cluster entities. The method further includes; selecting a quiescence policy based on comparing the reclaimed capacities and reserve capacities for the quiescence policies.
    Type: Application
    Filed: June 30, 2016
    Publication date: January 4, 2018
    Inventors: Karthik Saligrama Ramachandra, David Johns DeWitt, Shize Xu, Qun Guo, Ajay Kalhan, Peter Alan Carlin, Willis Lang