It was a deep dive into the code of SQL Server and Slava shows us how they achieve a universal platform regardless the operating system.
On my mind, the challenge was how to deal with the Windows operating system dependencies that include all Win32/ NT Kernel calls and makes SQL Server OS agnostic
Indeed, SQL Server has about more than 800 calls to Win32 and more than 400 calls to NT Kernel through the SQL OS. Slava explained us how challenging it could be to rewrite all the SQL Server code to support the Linux operating system.
To achieve it, the development Team implemented a containerized approach called Drawbridge.
Drawbridge combines 2 technologies:
- Picoprocess: Process-based isolation container with a minimal kernel API Surface
- Library OS: Version of Windows enlightened to run efficiently
Here a link for more information about Drawbridge: https://www.microsoft.com/en-us/research/project/drawbridge/#
This technology reduces to 45 calls to the host OS through a proper Platform Abstraction Layer(PAL): SQLPAL.
SQLPAL manages all resources’ in the process. The goal is to merge SOS and Library OS as the core of SQLPAL.
Then, we get deeper into the SQLPAL code and Slava began a complex topic of debugging stuff…I must admit it was a headache moment! 😕
But finally, I may conclude that it was a very interesting Workshop with a lot of explanations about how Microsoft SQL Server team addressed the challenge of making SQL Server compatiblewith Linux. This helps me to understand the architecture of the next version of SQL Server. 😎
And it was a nice day in Lisbon in the Microsoft building!