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