Presentation: SQL Server On Linux: Will It Perform Or Not?



10:35am - 11:25am

Day of week:



Key Takeaways

  • Understand the history and architecture of how SQL Server ported to Linux, and answer the question of “will it perform.”
  • Dive into the core of the I/O Manager, Memory Manager, Scheduler, and how addressing between the Windows User Space and Linux was managed.
  • Understand how Microsoft Research’s Drawbridge was used as a platform abstraction layer between Windows and the Linux kernel.


Will SQL Server perform on Linux better than on Windows? Have you been wondering whether the multi-layer architecture the team revealed recently will hurt SQL Server’s performance? Are you still not convinced about the entire endeavor. Come, listen to the talk, learn about SQL Server’s platform agnostic architecture then derive the answers for yourself. The talk will briefly go over history of the project, high level architecture and dive fast into core of I/O Manager, Memory Manager, and Scheduler. To make the talk more fun, every topic will include lessons learned and experiences behind the scenes.


What have you been working on recently?

Two years ago there was a business decision to put SQL Server on Linux; so, as the engineering team, we have to figure out the “How” part. The task is technically challenging: tens of millions of lines of code that continues growing on a monthly basis, with over 500 developers working on it. The Drawbridge project, which I became familiar with while working at Microsoft Research on the Midori operating system, allows Windows applications to be compartmentalized and run in a wrapper environment.

Although, initially, Drawbridge was designed to allow high density applications to run in the cloud, and to provide security for applications running there, it turned out it could also be used as a platform abstraction layer, PAL, to bring Windows native applications to other platforms. Drawbridge was used as a key part to make SQL Server run on Linux.

What will the talk cover?

It will start with a review of the technologies used in bringing SQL Server to Linux. Quickly, we will go over Drawbridge’s architecture. Then we will briefly describe how SQL Server leverages operating system services. The talk will follow with tying the two pieces together and will introduce a new platform abstraction layer, SQLPAL. The talk will dive deep into the implementation details of SQLPAL’s I/O subsystems, memory management, and scheduling with a focus on how we minimize the SQLPAL overhead.

What is LibOS?

LibOS is an operating system library that executes in user more. It is a key part of the Drawbridge system. In terms of implementation, LibOS is a modified Windows NT kernel without a few key OS services such as page-table mappings, interrupt handling, scheduling and others. LibOS is a native Windows binary. When executing, LibOS requires a small set of Application Binary Interfaces, ABIs, provided by a host either through a library or a kernel driver. ABIs provide to LibOS support for such services as memory management, threads, streams and synchronization primitives.

What is the performance on Linux like?

Our goal is to make SQL Server perform and scale its best for every customer scenario on any platform of customer choice. We use a number of popular macro benchmarks and customer workloads to track both performance and scalability on different types of hardware. In addition, we employ a number of micro benchmarks. The micro benchmarks help us to get better understanding of the system as well as catch potential regressions faster. Obviously, today, performance varies depending on the scenarios as well as hardware set up. However, we are seeing very promising results. Even though we haven’t finished yet we are getting closer and closer to achieving our goal.

What will attendees take away from the talk?

We’d like to share the hardcore part of the technology that allows us to run SQL Server on Linux. We will spend quite a bit of time going over the details of the problems we have been solving. As a side effect, we hope to show that Microsoft Research enables us to provide very elegant solutions to very complicated problems.

Who is the main persona for the talk?

Developers who have experience in systems programming or who are interested in user mode kernel runtimes will appreciate this talk. This talk is not about database programming. It’s about how to combine runtimes and what optimizations can be used to make systems go faster.

Speaker: Slava Oks

Core Developer Behind Porting SQL Server to Linux @Microsoft

Slava Oks has been with Microsoft for almost 20 years. During the tenure he has worked on numerous system technologies; helped to build and ship a number of flagship Microsoft products such as SQL Server, Windows, connectivity drivers for ODBC & OLEDB and more. In 2007 Slava moved to work on Midori Operating System where he had lead Midori’s kernel team. In February of 2015, after short stop at Hypervisor, Slava came back to SQL Server team to work on bringing SQL Server to Linux, aka project Helsinki. While working on Helsinki, Slava has been helping the team to bring R and broader extensibility platform to SQL Server. For the last year, Slava has been leading engineering team working on the next version of SQL Server which will be the first version of the product to run on multiple platforms.

Find Slava Oks at

Similar Talks

Production Engineer @ Facebook's Web Foundation team
CTO who understands the science around helping people do their best
Senior Software Engineer @IBM, Committer on Apache Aries
Distributed Systems Engineer Working on Cache @Twitter
Gold Badges Java, JVM, Memory, & Performance @StackOverflow / Lead developer of the OpenHFT project


Conference for Professional Software Developers