SQL Server 2017: What's new, what's missing on Linux, and what's next?
Microsoft's general manager talks to Reg about cross-platform SQL Server
Ignite “It’s a big milestone for us as a company,” general manager Rohan Kumar told us, referring to the release of SQL Server on Linux, “the biggest server product from Microsoft”, announced here at the Ignite event in Orlando.
SQL Server 2017 is being released simultaneously for Windows and various flavours of Linux: Red Hat Enterprise Linux 7.3, SUSE Linux Enterprise Server 12, Ubuntu and Docker. 3.25GB or more of RAM is required. The official Docker image is based on Ubuntu 16.04.
Microsoft's porting effort is based on a compatibility layer called SQLPAL (Platform Abstraction Layer). This enables the subset of Windows libraries used by SQL Server to run on Linux. Even on Windows, SQL Server does its own memory and thread management via a piece called SOS (SQL Operating System). In SQL Server 2017, SOS becomes part of SQLPAL so that SOS calls native Linux APIs directly.
The performance of SQL Server on Linux vs Windows is “basically the same”, according to the in-depth session on the subject at Ignite. However, not everything has been ported. There are no Reporting Services or Analysis Services, nor Machine Learning Services (formerly R Services).
Replication is not supported, other than in the context of high availability, nor is Stretch DB, for hybrid local/Azure database storage. File Table, which exposes a SQL Server table as if it were part of the file system, does not work on Linux. Management tools remain for the most part Windows only, though command-line tools work.
Will these missing features come to Linux eventually? Replication is likely to come soon (the first cumulative update for SQL Server 2017 is expected within a few weeks), and the aim is that core database engine features will be equivalent, with the exception of File Table which is closely hooked to the Windows file system. “With Analysis Services and Reporting Services, the question is: 'What’s the demand?',” Kumar told The Reg. “The PAL architecture allows us to port any of these, but is there customer value?” Not soon then.
SQL Server general manager Rohan Kumar
What about other distros? “For the most part the core of the OS is very similar,” said Kumar. “If there’s enough demand for a particular distro, I’m very open to that.”
Is Microsoft betting that any revenue lost from Windows Server licences will be more than made up by new sales? “A lot of customers like Windows Server and we don’t believe they are going to move. But there was a section of the market where Windows was not an option. We are going to go aggressively, with the value of SQL Server and the price point compared to, for example, Oracle.”
Container support is a key feature. Windows Containers are in their infancy and the ability to deploy the SQL Server database engine in a Linux container extends its reach.
Installation on Linux is simple, compared to running SQL Server setup on Windows (though of course there are fewer features available). Configure the repository, then one line to install each component (engine, agent, tools, full text search, integration services). Configuration is with the
mssql-conf utility or environment variables.
“There’s an interesting question about whether to go back and make our Windows setup experience better and the team is looking at that,” said Kumar. PowerShell commands to install? “Totally spot on.”
Microsoft: We've made a coding language for a quantum computer that may or may not existREAD MORE
Microsoft also decided to offer the paid editions on a trust basis, without needing product keys or activation. Customers “don’t want friction where they have to enter some key. We want this to feel as natural as possible,” said Kumar.
Cross-platform is the big new feature in SQL Server 2017, to the extent that the other new features seem minor. Graph query support is new, as is Python in Machine Learning Services, and Adaptive Query Processing and Automatic Tuning for better query optimization.
Kumar told us Graph support was already popular in Azure SQL, the cloud version of SQL Server, where the feature already exists. “That tells you there is a lot of demand.”
Python support is also important. “Python is the standard for binding to deep learning libraries, like TensorFlow from Google or Cognitive Toolkit from Microsoft,” said Kumar. “Those libraries are optimized to run on GPUs. So we’ve made it easy to create native AI apps that work on data in SQL, without moving it out.”
Nevertheless, SQL Server 2017, which comes only 15 months after the release of SQL Server 2016, is less rich than usual in terms of new features, cross-platform aside. Kumar said Microsoft is considering a faster release cycle.
“In the past, we had this notion of every two to four years. Should we have more frequent releases? Innovation comes faster for you. We also have this notion of cloud-first innovation. The features we have talked about in SQL Server 2017 have been available in Azure SQL for a long time. We have this great feedback loop in the cloud. We haven’t closed on a decision yet, but the intention is on the side of shipping more often.” ®