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: 11941001Abstract: 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: GrantFiled: September 14, 2022Date of Patent: March 26, 2024Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Karthik Saligrama Ramachandra, Surabhi Gupta, Sanket Jayant Purandare
-
Publication number: 20240037097Abstract: 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: ApplicationFiled: October 13, 2023Publication date: February 1, 2024Inventors: Kameswara Venkatesh EMANI, Avrilia FLORATOU, Carlo Aldo CURINO, Karthik Saligrama RAMACHANDRA, Alekh JINDAL
-
Patent number: 11829359Abstract: 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: GrantFiled: July 29, 2022Date of Patent: November 28, 2023Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Kameswara Venkatesh Emani, Avrilia Floratou, Carlo Aldo Curino, Karthik Saligrama Ramachandra, Alekh Jindal
-
Publication number: 20230026458Abstract: 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: ApplicationFiled: September 14, 2022Publication date: January 26, 2023Inventors: Karthik Saligrama RAMACHANDRA, Surabhi GUPTA, Sanket Jayant PURANDARE
-
Patent number: 11481390Abstract: 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: GrantFiled: July 24, 2020Date of Patent: October 25, 2022Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Karthik Saligrama Ramachandra, Surabhi Gupta, Sanket Jayant Purandare
-
Publication number: 20220027367Abstract: 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: ApplicationFiled: July 24, 2020Publication date: January 27, 2022Inventors: Karthik Saligrama Ramachandra, Surabhi Gupta, Sanket Jayant Purandare
-
Patent number: 10515075Abstract: 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: GrantFiled: May 15, 2017Date of Patent: December 24, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Karthik Saligrama Ramachandra, Kwanghyun Park, Alan Dale Halverson, Conor John Cunningham, Cesar Alejandro Galindo-Legaria, Kameswara Venkatesh Emani
-
Patent number: 10225337Abstract: 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: GrantFiled: June 30, 2016Date of Patent: March 5, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Karthik Saligrama Ramachandra, David Johns DeWitt, Shize Xu, Qun Guo, Ajay Kalhan, Peter Alan Carlin, Willis Lang
-
Publication number: 20180329952Abstract: 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: ApplicationFiled: May 15, 2017Publication date: November 15, 2018Inventors: Karthik Saligrama RAMACHANDRA, Kwanghyun PARK, Alan Dale HALVERSON, Conor John CUNNINGHAM, Cesar Alejandro GALINDO-LEGARIA, Kameswara Venkatesh EMANI
-
Publication number: 20180007128Abstract: 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: ApplicationFiled: June 30, 2016Publication date: January 4, 2018Inventors: Karthik Saligrama Ramachandra, David Johns DeWitt, Shize Xu, Qun Guo, Ajay Kalhan, Peter Alan Carlin, Willis Lang