Thursday, May 16, 2013

What is SQL Server Operating System ( SQLOS)


In the past, scalability was the major issue in SQL Server because it supported only for small or medium sized workloads due to its engine capabilities. With this issue Microsoft had to make massive changes to SQL server to serve for the large workloads demands

The Key observation here is that DBMS and OS schedulers must work together. Either OS must have built in support for DBMS or DBMS must have a special scheduling layer.


If I summarized the SQLOS:


  • Application Layer between SQL Server components and the OS
  • Provides more refined control of resource allocation
  • Centralizes resource allocation to provide more efficient management and accounting
  • Abstracts the concepts of resource management from components such as the Query Engine & Query Optimizer

The SQLOS was created to centralize common low-level tasks within the SQL Server process.  Having a central location for these tasks means less duplication of code within the various components of the engine, but it also offers the flexibility to adjust SQL Server to new and advanced hardware architectures without impacting the other areas of SQL Server code.

The SQLOS behaves very much like an operating system.  It abstracts the concept of memory management, I/O, scheduling etc. from the other components within the SQL engine.  In this way, these components do not need to worry about managing things like NUMA and Resource Governor, they simply make resource allocation calls to the SQLOS via an API.

The SQL engine is still a process like any other process running on a Windows server.  It does not have any special privileges or priority over other process.  The SQLOS does not bypass Windows, it simply manages the resources within the SQL Server process space in a way that is efficient for SQL Server.

No comments:

Post a Comment