7 ms·
I work on a software product that supports MySQL, PgSQL and SqlServer (if they run it on Windows, since we only support the official Windows PHP drivers). SqlS
by fideloper 11y ago
I work on a software product that supports MySQL, PgSQL and SqlServer (if they run it on Windows, since we only support the official Windows PHP drivers).
SqlServer has always been the best performing and least troublesome database in terms of weird edge cases, backup, restoration, and (especially!) performing expensive SELECTS on databases that have grown into the 100's of Gigabytes in size.
Based on my experience, for all the (often deserved) hate on M$, SqlServer is really a shining star.
That being said, I am a little scared to support SqlServer on Linux, as I imagine it will have to be different in quite some potentially fundamental ways to work on Linux - I'd love to hear if anyone has opinions on that aspect.
- nickpeterson 11y agoKeep in mind that SQL Server basically runs on top of it's own conception of an operation system even when installed on Windows. It's called SQLOS and the work done on that was probably what largely enabled this to happen because there was already an existing layer of abstraction in place for development to use. That said, I think that this will probably come with a large amount of caveats, for instance, I wouldn't be surprised if when it launches it's just the core SQL engine and not the extra pieces (SSIS,SSAS,SSRS,MDS, et cetera).
- walkingolof 11y agoMakes sens since SQL Server granpa is "Sybase for OS/2". There are probably very few lines of code left from those days (-94:ish), but the way of thinking is probably still there and what enabled this.
- cokernel_hacker 11y agoSQLOS is a relatively new component, it was introduced for SQL Server 2005. http://blogs.msdn.com/b/slavao/archive/2005/02/05/367816.aspx http://blogs.msdn.com/b/slavao/archive/2005/02/05/367816.asp...
- copperx 11y ago> Keep in mind that SQL Server basically runs on top of it's own conception of an operation system even when installed on Windows. What is the reason for this?
- danbruc 11y agoAn operating system is usually optimized to perform well for a large variety of workloads. Databases have a very specific workload and there are some possible (performance) optimizations if you, for example, bypass the operating system file caching and prefetching facilities and roll your own. Or if you control the scheduling of your operations. Take this with a grain of salt, it has been some time since I read about SQL Server internals, but this is what I remember.
- copperx 11y agoI understand, but that implies that the underlying OS is suboptimal for the task, doesn't it? I mean, Postgres doesn't do that in Linux, right?
- sciurus 11y agoThey don't, but that's not because they lack frustrations with Linux. https://lwn.net/Articles/591723/ https://lwn.net/Articles/591723/
- vram22 11y ago>bypass the operating system file caching Using raw partitions instead of file system files for database storage was common practice with Oracle and other DBs at one time. Not checked lately.
- darkr 11y agodb2 used to support/recommend raw block devices (this was ~8 years ago). I believe nowadays they are recommending using regular filesystems again.
- 0x0 11y agoVery interesting! I had the (mistaken, then, I guess) impression that sqlserver was super win32 specific, using "fibers" for threads and every peculiarity in the book. But this is just a vague impression from old articles I don't really remember
- PeCaN 11y agoSQLServer is super Win32 specific, even to the extent of using undocumented Windows APIs (I think the canonical example is NtReadFileScatter and NtWriteFileScatter, which are more flexible than the documented ReadFileScatter and WriteFileScatter wrappers; I wouldn't be surprised if it uses many more undocumented calls). SQLOS isn't an abstraction layer over the operating system necessarily. It's more of an abstraction over the _machine_ that allows scaling between 8GB and 512+GB of RAM, 4 to 64+ cores, etc. That said, since SQLOS does handle all memory management and file I/O for SQLServer, it probably did make porting slightly easier.
- sixdimensional 11y agoActually, "fibers" are a custom abstraction that can be used instead of threads, but SQL Server uses the threading model by default. So you're right, I do think it will be an engineering challenge, but as parent mentioned, the fact that SQL Server kind of treats the OS itself as abstract means I think they might have a path forward. Otherwise, I don't think they would have announced this. Another way of thinking about this is, maybe the low-level refactoring necessary to make this run on Linux will actually be good for the SQL Server engine, although it will most likely go through a period of serious instability while they figure out how!
- shanemhansen 11y agoFrom the SQLOS announcement: "Keep in mind SQLOS doesn’t provide OS abstraction layer to SQL Server. It doesn’t warp any of Windows APIs for portability purposes. Contrary it continues further binding of SQL Server to Windows by exploiting scalability and performance features of the Operating System." http://blogs.msdn.com/b/slavao/archive/2005/02/05/367816.aspx http://blogs.msdn.com/b/slavao/archive/2005/02/05/367816.asp...
- locusm 11y agoOT but Servers for Hackers was a great resource for me when learning Ansible - kudos.
- tajen 11y ago> I work on a software product that supports MySQL, PgSQL and SqlServer "SQL Server on Linux" really means "More developers will be able to offer compatibility with SQL Server" - those who use Mac OS X and Linux as a primary environment. My software supports PgSQL, MySQL, H2 and Oracle because they can run on my Macbook, or at least in a Linux VM. I explicitly exclude MS SQL because I'm not able to install MS SQL Server to test (at least not with a legal license). It's the same for continuous testing: It's easy to launch a Linux VM on a VPS, it's much less easy to launch and execute automated tests on a Windows machine.
- paulryanrogers 11y agoFYI: There are express and the older desktop versions available for free.