Currently I am a Senior Researcher at Microsoft Research India. Prior to this, I was a Senior Scientist at Microsoft Gray Systems Lab in Madison, WI. My areas of interest include query processing and optimization in large scale databases and data management systems. I am also interested in Big-data systems, cloud database-as-a-service and the intersection of databases and compilers/programming languages.
I have a PhD in computer science from Indian Institute of Technology Bombay and a B.Tech. from BMS College of Engineering, Bangalore. My doctoral thesis titled “Holistic Optimization of Database Applications” won an honorable mention for the ACM SIGMOD Jim Gray Doctoral Dissertation Award in 2015. It also won the IIT Bombay “Excellence in Ph.D Research Award 2015”.
Prior to my Ph.D., I spent 5 years at ThoughtWorks Inc., where I led teams designing and developing enterprise software systems.
Episode 73, April 24, 2019 - In the world of relational databases, structured query language, or SQL, has long been King of the Queries, primarily because of its ubiquity and unparalleled performance. But many users prefer a mix of imperative programming, along with declarative SQL, because its user-defined functions (or UDFs) allow for good software engineering practices like modularity, readability and re-usability. Sadly, these benefits have traditionally come with a huge performance penalty, rendering them impractical in most situations. That bothered Dr. Karthik Ramachandra, a Senior Applied Scientist at Microsoft Research India, so he’s spent a great deal of his career working on improving an imperative complement to SQL in database systems.
Today, Dr. Ramachandra gives us an overview of the historic trade-offs between declarative and imperative programming paradigms, tells us some fantastic stories, including The Tale of Two Engineers and The UDF Story, Parts 1 and 2, and introduces us to Froid – that’s F-R-O-I-D, not the Austrian psychoanalyst – which is an extensible, language-agnostic framework for optimizing imperative functions in databases, offering the benefits of UDFs without sacrificing performance.
For decades, databases have supported declarative SQL as well as imperative functions and procedures as ways for users to express data processing tasks. While the evaluation of declarative SQL has received a lot of attention resulting in highly sophisticated techniques,…