Well yesterday was a big day in the SQL Community, Microsoft announced that they will be developing a version of SQL Server for Linux. Check out the announcement here.
Image Source – Microsoft – http://bit.ly/1U8Afd3
This leaves us with a lot of questions, in talking with one of my customers this morning he asked some pretty cool questions. Here’s how the conversation went…
Do you think it’s going to be a replacement for MySQL/MariaDB?
My initial thoughts are no, and here’s what I’m thinking. The internals of SQL Server are managed by a component called SQLOS. This is what sits between the SQL Server Database Engine and your hardware. So when SQL needs something from the operation system such as a chunk of memory, a file, or access to the network, it asks SQLOS which asks the Operating System for that resource then it returns access to that resource to SQLOS. So while I have zero inside knowledge of what’s happening inside Microsoft, it’s my best guess that this is where Microsoft is going to make the changes to SQL Server. This way the core database engine and it’s other components will not have to change. Software engineering isolation at it’s finest, right?
So my response to the question was no, I don’t think it’s going to be an immediate replacement of MySQL/MariaDB…I think the application and data tier will stay the same (for now) and that the underlying infrastructure is what’s going to change.
How is this going to impact DBAs?
My background is in classic computer science, I’ve studied operating systems in detail academically…what’s cool about that is this has allowed me to have an in depth understanding of how UNIX/LINUX systems work. That’s what we’re taught in those nerdy CS classes. SQL on Linux is going to offer a huge advantage to the DBA…we now will have access to the OS internals. We can read the code, we will know exactly what’s happening under the hood! I think the big change to manage here is our troubleshooting methodologies for isolating performance issues. New tools, new techniques. But in the end it’s going to be fun, we get to learn more cool stuff! But hey guess what…Linux…Windows…it’s just an operating system.
How is this going to impact HADR components such as Availability Groups?
Again, I have no special knowledge of what’s going on inside Microsoft…but think it through. Most of the implementation of AGs is inside the engine. Similar to mirroring, transaction log blocks move from one replica to another. Now quorum might need a little attention, as that’s provided by Windows. But hey, Linux has the ability to establish quorum for a cluster too.
These are just my thoughts, a quick post for you guys. I’ve had tons of Linux exposure over the years in production systems and in the end…it’s all the same stuff under the hood :)
I’d love to hear your thoughts on this, please do comment below.
Please feel free to contact me with any questions regarding Linux or other SQL Server related issues at: firstname.lastname@example.org