back to article Linux fans may be in for disappointment with SQL Server 2016 port

Microsoft's decision to bring SQL Server 2016 to Linux caused a bit of a stir this week. However, there is a small catch: we've learned that the first official release of the port, due out in mid-2017, will be missing features compared to its Windows cousin. Yesterday, in New York City, Microsoft showed off a working demo …

  1. Anonymous Coward
    Facepalm

    Perfectly understandable

    As Linux lacks so many enterprise-scale features compared to Windows Server, it's no wonder only SQL Server lite can be hosted on the shareware OS

    1. Anonymous Coward
      Anonymous Coward

      @JJ Carter - Re: Perfectly understandable

      Sigh! Just look at the icon you have chosen. It suits you very well.

    2. Anonymous Coward
      Anonymous Coward

      Re: Perfectly understandable

      Linux supports a lot more CPU cores than Windows, so the idea that Windows has better scalability is ludicrous.

      Besides, the limitation isn't "you can use only 2 cores on Linux" but that the business intelligence suite isn't supported. They just decided that releasing the main SQL Server that most people use earlier was preferred over waiting until stuff like BI that a minority use had been ported and fully tested.

      1. karlh
        Linux

        Re: Perfectly understandable

        He (J J) was joking...I think?

        1. Roland6 Silver badge

          Re: Perfectly understandable

          Re: He (J J) was joking...I think?

          Agree, that was the way I read it, mind you did note MS seem to be demonstrating it on Ubuntu rather than Red Hat Enterprise...

          I suspect the problem is that English sarcasm, whilst clear and incisive when spoken, looses the mocking spoken tone when written down. The icon used was a reasonable approximation but like sarcasm can easily be misinterpreted.

          1. gerdesj Silver badge

            Re: Perfectly understandable

            "I suspect the problem is that English sarcasm, whilst clear and incisive when spoken, looses the mocking spoken tone when written down. The icon used was a reasonable approximation but like sarcasm can easily be misinterpreted."

            That wasn't a particularly good example of sarcasm. As you point out, the written word can make it a tricky medium to shine in but the more advanced practitioner will make allowances and leave suitable hints. By hints, I do not mean something as crass as an emoticon. Unless you want to write an essay to provide context for your pearl of irony and bore your audience to death, then I suggest a quick shot of self-deprecation or a slightly rude comment at an easy target - that's a clue that will work pretty much everywhere outside of Texas.

        2. JLV

          Re: Perfectly understandable

          >He (J J) was joking...I think?

          I don't think so. J J is frequently funny, less often intentionally so.

        3. Doctor Syntax Silver badge

          Re: Perfectly understandable

          "He (J J) was joking...I think?"

          No, just visiting from whatever planet it is that he spends most of his time on.

      2. Anonymous Coward
        Anonymous Coward

        Re: Perfectly understandable

        You look to not know what enterprise-scale software means. It's not the number of core supported (and you may be surprised by the number of cores Windows actually support).

        Nor the Linux server in your bedroom, nor the many server clones offering a web server for $9.99 are enterprise-scale software.

        It's being able to orchestrate and control many thousands of users and the many different applications and tasks they need to perform.

        Even Unix, stubbornly still rooted in the mainframe mindset of the '70s, never understood the needs of actual much broader LANs. And you see it from the many sysadmin who actually have no clue how to design a network for the XXI century, and stick to designs forty years too old. The fear of learning and updating their skills is what is keeping IT in those designs.

        Unluckily, the low price of Linux made too many believe it is a good OS. It's just a clone of a bad OS forty years too old.

      3. TheVogon

        Re: Perfectly understandable

        "Linux supports a lot more CPU cores than Windows"

        Windows Server supports all shipping Intel based hardware - as far as I am aware the largest Intel CPU based box you can currently buy has 32 physical CPUs. The actual Windows Server 2012 limit is 640 logical CPUs - which is an arbitrary choice based on hardware limits rather than any inherent scalability limit.

        "the idea that Windows has better scalability is ludicrous"

        Why is that ludicrous? A different OS kernel design means you likely do have different performance strengths. There are benchmark examples where Windows Server (and the Hyper-V hypervisor) perform better than Linux in specific workloads. It's not all about the maximum CPU core limit that you choose to enable.

        "They just decided that releasing the main SQL Server that most people use earlier was preferred "

        I think this is planned as a loss leader. They will let developers play on a limited version for free on Linux that some may prefer, but when you want to run it in production and need the fully featured version with say clustering you will likely need the Windows Server version...

    3. Chemist

      Re: Perfectly understandable

      "As Linux lacks so many enterprise-scale features compared to Windows Server"

      Strange then that Oracle (spit) seem able to cope - hint : maybe it's not Linux that is lacking

    4. Salts

      Re: Perfectly understandable

      @JJC

      Apart from others comments, I will add go and look up shareware

      1. Roq D. Kasba

        Re: Perfectly understandable

        Perfectly understandable. Start off with the truly excellent core functionality that everyone uses, and then add the grills incrementally as they're tested and verified. And still at a price point you're pushed to dispute.

        1. werdsmith Silver badge

          Re: Perfectly understandable

          SQL Server Express Edition for Linux then.

          Really nothing more or less than would be expected. But if MS have created an abstraction layer between the database and the OS then they've added in unwanted overhead.

          Fair enough it's a big complex codebase with a couple of decades of continued development. It will take more than a couple of hours on a Friday morning to hack that one out.

          1. Blue Pumpkin

            Re: Perfectly understandable

            Well as it used to be called Sybase ( version 7 II think but it is a long time ago) and it used to run happily on all manner of operating systems except Windows until MS got their mitts on it, the Unix / Linux code is probably hidden down the back of the sofa somewhere....

    5. bombastic bob Silver badge

      Re: Perfectly understandable

      "As Linux lacks so many enterprise-scale features compared to Windows Server"

      what 'enterprise-scale features' are you referring to?

      Oh, perhaps it's windows-specific features. I get it, like maybe 'Active Directory' and things like that. There are _other_ ways to make that *kind* of thing work, you know, NOT just "Microsoft's Way". Some older things like kerberos and LDAP come to mind, if you even need them. Cloud-based authentication for shared resources is rather popular these days, and guess what OS runs the cloud? Pretty much, Linux.

      But yeah, this is the kind of FUD you'd expect regarding Linux vs Windows.

      On a related note, microsoft is PROBABLY trying to do what they did back when they built Mac versions of MS Office. This is a HUGE market potential for them. I expect *better* performance from Linux with EXT4, or even ZFS, than comparable Windows Server with NTFS.

      if having an A/D controller running on Linux was THAT important, there would be an application available that does it, licensed to use Microsoft's protocol. But I expect it's NOT worth it, regardless of what the sales-droids are telling you.

      1. Uffe Seerup

        Re: Perfectly understandable

        > what 'enterprise-scale features' are you referring to?

        One example would be Volume Shadow Copy Service (https://technet.microsoft.com/en-us/library/cc757854(v=ws.10).aspx)

        Database systems on Windows (like Oracle and SQL Server) are declare themselves as VSS writers. Simarly, backup software (both the built-in as well as 3rd party) declare themselves as VSS requesters.

        What this means is that the backup software will notify the VSS service when a system is backed up. The VSS service coordinates safe backup points with the VSS writers. Upon request from the VSS service, the VSS writers will flush in-memory structures to disk, ensuring a restore-consistent image.

        Without something like the VSS service, restoring a snapshot of a system will appear to the database system as a power failure. A good RDBMS will overcome this by rolling transaction logs forward - but at the expense of a longer restore process.

        With VSS the database system will see the image as consistent - as if the RDBMS had been shut down during the backup - and will *not* require expensive replays of transaction logs.

        This is an *enterprise* feature: To be able to do a consistent system backup on a running system.

        VSS even integrates with Hyper-V, meaning that if you start a backup process on the *host* - which owns the disks being backed up - the host will signal the VSS protocol through the hypervisor ensuring that any VSS writer within a virtual machine guest are coordinated with the host system backup.

        Consider a virtual machine setup with Linux guests. You backup the host with all of the disks. How do you ensure that the guests are backed up at a consistent point-in-time? How do you ensure that processes/daemons running in the VM guests flush their memory to disk just when the disks are backed up?

        1. picturethis
          Childcatcher

          Re: Perfectly understandable

          "Consider a virtual machine setup with Linux guests. You backup the host with all of the disks. How do you ensure that the guests are backed up at a consistent point-in-time? How do you ensure that processes/daemons running in the VM guests flush their memory to disk just when the disks are backed up?"

          Well, this is actually pretty straightforward nowadays...

          It's this "new" technology called taking a snapshot of the VM, and backing up the snapshot through the hypervisor's storage APIs - all disk and memory I/O are in a consistent state and if the Backup software has any worth, it will issue a quiescent command to the VM's DB application before taking the snapshot.

          It doesn't make much sense to back up a hosts' drives, one would backup the VMs. This way they can be scheduled as needed.

          I manage a system with 30 linux VMs (CentOS, Redhat, Ubuntu) along with multiple Windows VMs and everything works just fine thank you...

          1. Uffe Seerup

            Re: Perfectly understandable

            > It's this "new" technology called taking a snapshot of the VM, and backing up the snapshot through the hypervisor's storage APIs

            So, how will an Oracle RDBMS instance inside a VM ensure that it had flushed all "dirty" pages to disk when the snapshot occurs? If it did not ensure the disk state was consistent at the time of the snapshot, it *will* look as a power failure if you ever restore the disk.

            You could of course just bring the VM back directly in running state. That will mess up every single one of it's network connections, however. I sure hope this is not your server backup strategy.

            > and if the Backup software has any worth, it will issue a quiescent command to the VM's DB application before taking the snapshot.

            So, how does your backup software, running at the VM host reach into the VM guests, discover the DB applications *and any other running application which may need to flush state* to issue a quisce command?

            What if the backup software could ask the operating system for a list of "quisce" targets, and issue a quisce command upon backup automatically? What if the hypervisor was a quisce target which - recursively - discovered quisce targets within the VM guest and issued quisce commands to those as well?

            That would be cool, wouldn't it? That is actually what Windows VSS is. Read here: https://en.wikipedia.org/wiki/Quiesce

            That is an *enterprise* feature. By offering it as an operating system service, backup software does *not* need to know about all of the types of DB systems and other services which would need "quisce" upon backup. Services do not need to know about backup software.

            >It doesn't make much sense to back up a hosts' drives

            Oh? Seems to me that backing up the host system (including all drives) by snapshotting and then dump the snapshot to external backup storage makes a lot of sense, especially if the backup software is not just disk oriented, but *application* oriented, i.e. if I could backup the host VM, but upon restore just ask to restore a single VM, and have just the host files back that represent the virtual disks and memory of the VM. Which is what Windows VSS does.

            1. picturethis
              Childcatcher

              Re: Perfectly understandable

              > It's this "new" technology called taking a snapshot of the VM, and backing up the snapshot through the hypervisor's storage APIs

              >>So, how will an Oracle RDBMS instance inside a VM ensure that it had flushed all "dirty" pages to disk when the snapshot occurs? If it did not ensure the disk state was consistent at the time of the snapshot, it *will* look as a power failure if you ever restore the disk.

              **Did you not read the part about the backup software issueing the quiescience?

              >>You could of course just bring the VM back directly in running state. That will mess up every single one of it's network connections, however. I sure hope this is not your server backup strategy.

              **I think you're confusing backups with fault-tolerance. Performing a restoration of a backup would not have live connections... For this, there is a better way - fault tolerance for both vStorage (for disk/SAN failures) and vMotion (for server/hardware failures) - Assuming that MS' Hypervisor even has such a concept, I know VMWare does.

              > and if the Backup software has any worth, it will issue a quiescent command to the VM's DB application before taking the snapshot.

              >>So, how does your backup software, running at the VM host reach into the VM guests, discover the DB applications *and any other running application which may need to flush state* to issue a quisce command?

              >>What if the backup software could ask the operating system for a list of "quisce" targets, and issue a quisce command upon backup automatically? What if the hypervisor was a quisce target which - recursively - discovered quisce targets within the VM guest and issued quisce commands to those as well?

              >>That would be cool, wouldn't it? That is actually what Windows VSS is. Read here: https://en.wikipedia.org/wiki/Quiesce

              >>That is an *enterprise* feature. By offering it as an operating system service, backup software does *not* need to know about all of the types of DB systems and other services which would need "quisce" upon backup. Services do not need to know about backup software.

              >It doesn't make much sense to back up a hosts' drives

              >>Oh? Seems to me that backing up the host system (including all drives) by snapshotting and then dump the snapshot to external backup storage makes a lot of sense, especially if the backup software is not just disk oriented, but *application* oriented, i.e. if I could backup the host VM, but upon restore just ask to restore a single VM, and have just the host files back that represent the virtual disks and memory of the VM. Which is what Windows VSS does.

              **IMHO this is what MS needs one to do, because they don't have a good answer (other than some type of clustering with custom software) otherwise.

              **In this case, I still wouldn't be snapshotting the Host drives, I would be snapshotting the datastores on the SAN itself. Assuming of course that the specific SAN has the capability and one is using a SAN to begin with.

              **You probably have a lot more experience with Oracle that I do. I only have enough experience with Oracle to know that it sucks when I have to work with it. If a company can afford Oracle, then they can afford to pay someone to deal with the headaches..

              **Given Oracle's latest BS with licensing across all CPUs in a cluster (even if they are only running on a portion of them), virtualized or not, I'm surprised that they're winning any new business at all.

              **That's okay, eventually the Market will determine their fate..

        2. Sorry, you cannot reuse an old handle.

          Re: Perfectly understandable (not)

          I wonder how other DB systems like DB/2, Oracle and MySQL have done it so far on Linux without it... maybe shitty SQL Server is so inter-linked to the underlying OS that it actually needs that feature to work properly?

          1. Uffe Seerup

            Re: Perfectly understandable (not)

            > I wonder how other DB systems like DB/2, Oracle and MySQL have done it so far on Linux without it

            In the absence of an operating system feature, they rely on their customers to hire sysadmins who will code bash scripts that will shut down DB servers (or "quisce" them) during the backup operation, reach into VMs using ssh and perform similar functions, all to be maintained by the sysadmin with high job security.

            Or the customers will just take the risk and assume that the restore will work and hope that the roll-forward will not take too long.

            > SQL Server is so inter-linked to the underlying OS that it actually needs that feature to work properly?

            No, you can also just copy SQL Servers database and transaction log files, and it will be restorable, just like Postgres, Oracle etc. However, just like those systems, it will see a restore from such an unsynchronized state as the equivalent to a power failure and start rolling the transaction logs forward from the last checkpoint.

            Oracle on Windows also registers itself as a VSS writer - i.e. it will take part in the VSS protocol when a system snapshot or backup occurs. The rest of Windows has a lot of other VSS writers, e.g. DNS, DHCP etc, ensuring that information is syncronized across the board.

            But hey - you can get by without. It just involves some more work and a little higher risk.

            1. Doctor Syntax Silver badge

              Re: Perfectly understandable (not)

              'In the absence of an operating system feature, they rely on their customers to hire sysadmins who will code bash scripts that will shut down DB servers (or "quisce" them) during the backup operation, reach into VMs using ssh and perform similar functions, all to be maintained by the sysadmin with high job security.'

              I assume you mean quiesce. Old Informix user here. It's an awfully long time since your contention was true. Archiving keeps track of data updates as they happen on the live database. At the end of the archive there's a checkpoint and on restore the database is correct up to that checkpoint. The only transactions to be rolled forwards are those from the end of the last archive.

          2. Anonymous Coward
            Anonymous Coward

            Re: Perfectly understandable (not)

            Mysql is a toy. Postgresql, oracle and SQL server are good rdbms options.

            Having had to mop up the mess caused by mysql on more than one occasion let me plead; please use pretty much any other dB for your project, even mongo. I've never encountered a more stupid query analyser than mysql's.

          3. TheVogon

            Re: Perfectly understandable (not)

            "I wonder how other DB systems like DB/2, Oracle and MySQL have done it so far on Linux without it..."

            They often have to do it themselves. Oracle has it's own complete file system to be able to do this

        3. Vic

          Re: Perfectly understandable

          How do you ensure that the guests are backed up at a consistent point-in-time?

          I'd do it with LVM snapshots. But others will have their own pet methods.

          Vic.

      2. Anonymous Coward
        Anonymous Coward

        Re: Perfectly understandable

        Active Directory put together a log of technologies to serve the needs of properly managing a complex LAN setup. It's not just a directory service, it's not just an authentication/authorization service and so on. It's a comprehensive solution putting it all together. Especially, it's baked into any client and server OS.

        Sure, in Linux you have LDAP, you have Kerberos, you can have policies some other way, all in a fragmented and very difficult way to put it all together and make it work without issues. That's why even when Linux is used, there are Windows domain controllers, because very few so called "Linux sysadmin" have the skills and the guts to deliver a comprehensive solution putting together all those pieces themselves.

      3. DonL

        Re: Perfectly understandable

        "if having an A/D controller running on Linux was THAT important"

        Samba 4 does that (and a lot more), including built-in LDAP, Kerberos and DNS.

      4. TheVogon

        Re: Perfectly understandable

        "what 'enterprise-scale features' are you referring to?"

        How about constrained delegation:The ability to give an account only the minimum rights required for a specific task. Not a bodge like SUDO that MUST have root access (UID0) to work.

        Or how about granular auditing and ACLs: the ability to control the changing of a single setting in a config. Not a per file only bodge....

        I could go on as there are lots more, but you get the idea...

        1. Vic

          Re: Perfectly understandable

          How about constrained delegation:The ability to give an account only the minimum rights required for a specific task.

          You do know that idea came from Unix in the first place, right?

          Not a bodge like SUDO that MUST have root access (UID0) to work.

          Even the most cursory reading of the man page would show you that's total cobblers.

          I could go on

          I wish you wouldn't; your lists of supposed advantages are invariably full of schoolboy errors and incredible misunderstandings.

          Vic.

          1. TheVogon

            Re: Perfectly understandable

            "You do know that idea came from Unix in the first place, right?"

            But not from Linux, which has a big capability gap here.

            "Even the most cursory reading of the man page would show you that's total cobblers."

            Even the slightest technical knowledge about SUDO would tell you that's EXACTLY how it works so you clearly don't understand the subject matter - /usr/bin/sudo must be owned by uid 0 - the next time you run SUDO, type echo $UID

            1. Vic

              Re: Perfectly understandable

              But not from Linux, which has a big capability gap here.

              Bullshit. Linux has the same capabilities, as well as a few more. You do not know what you are talking about.

              Even the slightest technical knowledge about SUDO would tell you that's EXACTLY how it works so you clearly don't understand the subject matter - /usr/bin/sudo must be owned by uid 0 - the next time you run SUDO, type echo $UID

              [vic@perridge ~]$ sudo echo $UID

              [sudo] password for vic:

              1000

              Oh look - it's not 0.

              [vic@perridge ~]$ sudo -u jetty -s

              bash-4.2$ echo $UID

              991

              Still not 0.

              The sudo binary must be owned by root to have its capabilities - but that does *NOT* mean that anyone that uses sudo gets root capabilities, nor that they become root explicitly[1]. You do not know what you are talking about.

              I don't know whether you're paid for this crap, or whether you get some sort of kick out of it, but your knowledge is so substantially wrong, you're really not doing anyone any favours here. Read the man page - you might learn something[1].

              Vic.

              [1] Becoming root *may* be permitted, according to how the sudoers file is set up. But it is one of many ways to run sudo. You might want to find out some of the others, as they competely destroy your assertion.

              [2] This does, of course, presuppose an open mind. So maybe you won't.

            2. Anonymous Coward
              Anonymous Coward

              Re: Perfectly understandable

              "the next time you run SUDO, type echo $UID"

              Suggest you understand what 'set UID' means/is used for.

            3. Chemist

              Re: Perfectly understandable

              "the next time you run SUDO, type echo $UID"

              As per Vic sudo echo $UID is 1000 here also ( as it should be )

              echo $UID = 1000

              sudo echo $UID =1000

              1. Chemist

                Re: Perfectly understandable

                More interestingly try

                sudo printenv

    6. AlbertH
      Linux

      Re: Perfectly understandable

      JJ - how wrong can you be?

      All the biggest commercial websites on the planet - and the companies or organisations behind them - use nothing but Linux. If it's good enough for Governments, Amazon, Google, IBM and every other major corporation you can name, your protestations are simply silly.

      The big data things that I do using Linux servers and Linux clients just aren't possible with Microsoft products - and everything I have to do HAS to be scalable. MS are several years behind the curve, and drop further behind with every piece of shiny nonsense they release. They simply haven't got a clue.

    7. W. Anderson

      Re: Perfectly understandable

      It is either unfortunate that commenter JJ Carter is very ignorant about the technical capabilities of Linux versus Microsoft Windows, or he/she is deliberately being a provocateur and shill for Microsoft.

      Most sane persons with even a rudimentary knowledge of these Operating Systems (OS) are aware that Linux runs all USA and International Stock Exchanges, replacing the few than were as disaster running on Microsoft Windows. as one example. Approximately 98% of all the registered "fastest" Super computers on earth run overwhelmingly Linux, and some variant of UNIX/BSD as another very poignant example.

      Perhaps the most telling cases for superiority of performance , reliability and security of Linux over Microsoft Windows are found in reasoning used by NASA for their Mars Unity Mission, most all Big Data Analytics projecs for analysing and processing exabytes of data, and most every International bank and financial services firms for handling billions of transaction per day.

      Sad that so many doofus Microsoft supporters waste precious comment time of The Register and other technology forums.

  2. Anonymous Coward
    Anonymous Coward

    "Microsoft's decision to bring SQL Server 2016 to Linux caused great excitement in the open-source world this week."

    Where was this then? Was I asleep?

    1. Anonymous Coward
      Anonymous Coward

      @linicks - Actually you were awake

      but that "open-source world" was just a bunch of so called analysts who have no clue about open-source.

      1. gv

        Re: @linicks - Actually you were awake

        I think it was more of a "meh". Not sure why anyone would want to use SQL Server when there are a plethora of open source GPL'd database engines available.

        It would only have caused "excitement" if Microsoft said they were going to licence it under GPL version 3.

    2. Lars Silver badge
      Linux

      "Microsoft's decision to bring SQL Server 2016 to Linux caused great excitement in the open-source world this week.". I find the sentence a bit odd too, but then again I suppose it depends on how one defines "excitement".

      There is a lot we don't know about their motives for SQL Server on Linux. How much are they going to charge for it. Suppose there are customers who want to switch to Linux but are prepared to pay for keeping the Databases. Perhaps they want to reach the supercomputers in a more efficient way. Perhaps to challenge Oracle customers on Linux.

      Wait and see, trying to find some excitement lurking in myself, have to try harder I suppose.

      1. JLV

        Don't forget cloud stuff as motivation. A lot of the sexy/hype-y AWS, Docker, devops & all activities tend to mostly be carried out on CentOs, Ubuntu, etc... Not Windows. So if you want your rdbms engine to be considered in that space...

    3. Anonymous Coward
      Anonymous Coward

      Excitement?

      "Microsoft's decision to bring SQL Server 2016 to Linux caused great excitement in the open-source world this week."

      I found this announcement quite, but not totally, surprising, and rather more interesting, because of some of the possible implications for the future, but exciting? No, not even mildly.

      1. Tom 7 Silver badge

        Re: Excitement?

        It might have been the type of excitement you feel when you point at a classmate and go 'he's got cooties'.

    4. diodesign (Written by Reg staff) Silver badge

      Re: linicks

      How about "caused a bit of a stir" instead?

      C.

      1. Anonymous Coward
        Anonymous Coward

        Re: linicks

        "Was greeted with brief skeptical stares"...?

      2. John Brown (no body) Silver badge

        Re: linicks

        "How about "caused a bit of a stir" instead?"

        I'd probably go with "interest" and remove "great", possibly replace "great" with "a bit of" ;-)

      3. Anonymous Coward
        Anonymous Coward

        Re: linicks

        "Raised a few eyebrows" would've been about right.

  3. hellwig

    It takes a long time to convert all the VBA code to LISP.

    1. bombastic bob Silver badge

      Re: converting VBA code

      "It takes a long time to convert all the VBA code to LISP."

      (title added by me)

      I think it might be FASTER to actually IMPLEMENT VBA for Linux [then they can release this as part of their mono/'.Not Core' thing]

      Microsoft needs to evolve or they'll die. windows 10, and also 8.x, is proof of that. They ported stuff to OSX, even made a runtime system you could run windows applications with (on OSX) a decade or so ago.

      so yeah. they're trying to branch out, see what works. I'll sit back and watch for a while...

      popcorn, get your popcorn!

      1. Tom 7 Silver badge

        Re: converting VBA code

        I have managed to avoid the MS world for many years but having written a lot of VBA and .NET stuff I have always been puzzled why they never managed to get it to work fully on ARM. Initially I thought it was some kind of Intel relationship but I'm not so sure now. Is there a intel BLOB somewhere without any documentation?

    2. Doctor Syntax Silver badge

      Maybe this is a trick question.

      "It takes a long time to convert all the VBA code to LISP."

      Sorry, I give up. Why would I want either?

    3. Daniel B.
      Boffin

      "It takes a long time to convert all the VBA code to LISP."

      ITYM C, right? Or C++?

      Also, I've seen far less VB stuff out in the wild. Could it be that the unholy language is finally dying off?

  4. Hans 1
    Linux

    Who in their right mind wants an ACCESS daemon on Linux ???

    We have FAR better alternatives in the repositories that beat MS SQL in every aspect, and support costs less than Windows Server license with 25 CALS. Ohhh, and of course, the Linux system even passes Windows Server DatanCenter Edition the water.

    1. Tom B
      WTF?

      Clueless

      @Hans1: You don't know what you're talking about. SQL Server has absolutely nothing to do with Access, VBA, et al. It's a solid world-class relational database on a par with DB2 and Oracle. Yes it's expensive, but then it's not targeted at us ordinary mortals at all. It's an enterprise tool intended to serve the needs of big businesses and government organizations. I would expect that Microsoft will eventually release a Developer's edition that runs on Linux which us mere mortals can afford. Traditionally, the dev edition is priced around $50 US and contains all the enterprise features (it's just not licensed for Production use). What would make this interesting is if they release the full suite of command line tools on Linux (I expect they will), giving developers the ability to combine Linux scripting with the SQL Server engine.

      As a professional SQL Server developer, I'll be keeping an eye on this situation.

      1. werdsmith Silver badge

        Re: Clueless

        Developer is effectively free with MSDN.

        SQL Server Express is resource constrained but functional database engine for free.

        1. TheVogon

          Re: Clueless

          "Developer is effectively free with MSDN."

          But MSDN is VERY expensive.

  5. Pirate Dave
    Pirate

    Err...

    "What Microsoft has done so far is create an abstraction layer between the database and operating system,"

    Isn't that what we used to call an API?

    Is he saying there's no separation between MS-SQL and the Windows kernel on a Windows box?

    1. Anonymous Coward
      Anonymous Coward

      Re: Err...

      I think they mean that they're running it on WINE.

      1. Pirate Dave
        Pirate

        Re: Err...

        Ah, I hadn't thought of Wine. If so, then they're only sort-of-kinda-maybe-if-you-don't-look-too-closely running MS-SQL on Linux then.

    2. sed gawk Silver badge

      Re: Err...

      He's saying like almost everything serious on windows, SQL Server is basically wrappers around COM components under the covers. The chances are it makes liberal uses of the Windows API and the various non-portables weirdness that working on Windows brings[1]

      [1] MS suggest using non-portable ZeroMemory api function rather than memset as Visual C++ may decide to remove the portable code but surprisingly the ZeroMemory function is never removed.

      MS encapsulated the plumbing SQL Server requires in such a way as now it can use implementations of COM on other platforms. They have form for this, e.g. DirectX to XBox etc. They likely also wrapped the various Windows calls so it builds on a sane platform.

      1. bombastic bob Silver badge

        Re: Err...

        "MS suggest using non-portable ZeroMemory api function rather than memset as Visual C++ may decide to remove the portable code but surprisingly the ZeroMemory function is never removed."

        #ifdef WIN32

        #define my_zero_memory(X,Y) ZeroMemory(X,Y)

        #else // the rest of the universe

        #define my_zero_memory(X,Y) bzero(X,Y) /* or memset(X,0,Y) */

        #endif // win32 bzero workaround

        or similar, especially if I made a mistake [I just pounded it out of my head].

        I do that sort of "but if it's WIN32" thing a lot. but good point anyway. it just means "us devs" need to be aware and put "but if it's WIN32" ifdef blocks around a few things, wrap with macros, use the macro in our code.

        actually I do this frequently enough for portable code involving microcontrollers. sometimes the 'memset' is smaller/faster, sometimes bzero not available, etc. etc. but one way or another the need to zero a block of memory is handled SOMEHOW.

        1. sed gawk Silver badge

          Re: Err...

          It's not a WIN32 problem e.g. Mingw will work just fine on windows.

          it's a VC++ problem so your define needs to be '_MSC_VER' or you will catch correct toolchains which target windows.

          Personally, I favour making the build fail on that toolchain rather than working round it, I'm not above the odd #error "MSVC is unsupported, use Mingw"

          But if you are feeling nice, a little asm will put MSCV back in the box.

          Use like so...

          void *

          compat_memset(void *b, int c, size_t len)

          {

          /#ifdef _MSVC_VER

          / / no-op compile optimization barrier prevent MSVC removal

          #warn "Using MSVC workaround for preventing code removal"

          asm volatile(""::)

          #endif

          return memset(b,c,len);

          }

          1. Def Silver badge

            Re: Err...

            Actually, ZeroMemory can be removed by an optimising compiler. SecureZeroMemory will not.

            And although ZeroMemory is implemented as a macro for memset in C/C++ today, why do you a) assume that this was always the case, and b) think the Windows API should only support the language you use the most?

            1. sed gawk Silver badge

              Re: Err...

              I'm happy to be quoted the relevant text to show otherwise but IIRC I've made no assumption about the implementation of ZeroMemory/SecureZeroMemory today or language support.

              Bluntly, a compiler which removes calls to 'memset' regardless of how you spell it is broken.

              void test_case()

              {

              char buf[100];

              size_t nbytes = (sizeof(buf) / sizeof(buf[0]));

              // MSCV has no business removing this memset

              memset(&buf[0], 0, nbytes);

              fgets(buf,nbytes-1,stdin)

              ...

              }

              1. Electron Shepherd

                Re: Err...

                MSVC has no business removing this memset

                It wouldn't, since the memory was subsequently referenced by another function call. What it might do is optimize away a call to that was used at the end of a function to clear out memory that stored information such as a password in clear text, so that it wasn't left in memory.

                See https://msdn.microsoft.com/en-us/library/windows/desktop/aa366877.aspx for an example.

                1. sed gawk Silver badge

                  Re: Err... that is not optimization but breakage.

                  "It wouldn't, since the memory was subsequently referenced by another function call. What it might do is optimize away a call to that was used at the end of a function to clear out memory that stored information such as a password in clear text, so that it wasn't left in memory."

                  That is broken, regardless of vendor - memset has a clear side-effect - it 'writes to memory'

                  In your example, it's actually hurting the portable method of cleaning credentials,

                  1) When I put memset at the bottom of a function, I want the side-effects of having memset be invoked at the bottom of the function, and a compiler that removes such function calls while not letting my code's view of the world remain "as if"[1] it had executed the function is broken.

                  2) It's being done purely as an aggressive optimization that breaks a lot of portable code.

                  As a developer, I don't care if the code for Windows is slightly slower due to portability reasons than the equivalent code would be written directly against Win32.

                  3) SecureZeroMemory just adds a "barrier" to the function call, and I'm rather have the explicit ASM semantics in the code rather than rely on functions which should be 'well-defined' across all platforms start to depend on the mood of the vendor.

                  [1] technically, a compiler vendor is free to do all kinds of magic, provided a strictly conforming program can't observe any difference between that compiler vendor's hosted environment and a more naive direct translation.

                  1. Def Silver badge

                    Re: Err... that is not optimization but breakage.

                    [1] technically, a compiler vendor is free to do all kinds of magic, provided a strictly conforming program can't observe any difference between that compiler vendor's hosted environment and a more naive direct translation.

                    Technically though, if you don't read from that memory again, you have no way of knowing whether the memset was called or not. So by your own arguments removing the call to memset is a valid optimisation in this case.

                    1. sed gawk Silver badge

                      Re: Err... that is not optimization but breakage.

                      You are correct, "dead store removal" is essentially the rationale you've supplied.

                      Still the issue remains the program clearly intends to achieve something by means of this side-effect (i.e. memset).

                      However, I contend, *any* toolchain which removes that memset is a security liability, requiring at least manual assembly audit for secure code, I'd argue that makes it broken.

                      https://www.securecoding.cert.org/confluence/display/cplusplus/MSC06-CPP.+Be+aware+of+compiler+optimization+when+dealing+with+sensitive+data

                      1. Def Silver badge

                        Re: Err... that is not optimization but breakage.

                        However, I contend, *any* toolchain which removes that memset is a security liability, requiring at least manual assembly audit for secure code, I'd argue that makes it broken.

                        You could equally contend then that half the C runtime library is broken, half the features of C++ are broken, half the languages out there today are broken, and having a data stack that descends down through memory is broken - from a security perspective. :)

                        I don't disagree with your sentiment, but there are so many exceptions to the rule in this respect I find it hard to fully agree with your rationale. An optimiser does treat a hell of a lot of things as special cases - memset is just one example - and for the vast majority of cases this is a Good Thing (tm). Optimisers wouldn't be as half as good if they didn't have such special cases.

                        1. sed gawk Silver badge

                          Re: Err... that is not optimization but breakage.

                          From a pure infosec view, all code is broken, as soon as you can run it, you can hack it ;)

                          You could equally contend then that half the C runtime library is broken ..

                          Not sure, I'd make the leap from "overly aggressive application of 'dead store removal' is a security liability" to "C's runtime library is broken etc", but I take your point.

                          C and C++ are well defined languages, voluminously so in the case of C++, that rigorous definition elevates the C runtime library to a known beast. We can look at C code and roughly predict the ASM, correcting it when needed.

                          "I don't disagree with your sentiment, but there are so many exceptions to the rule in this respect I find it hard to fully agree with your rationale."

                          Good, because I think you've talked me round, there are too many exceptions to really hold this one up specially.

  6. W. Anderson

    Microsoft seeks naive and ignorant Linux user

    This type action by Microsoft is not unexpected. The company has never provided the exact same product features or services on 'competitive' platforms.

    Even with Oracle database products, Microsoft ensures that it cannot perform on Windows as it does on Linux, so that potential customers will consider switch to SQLServer on Windows. This particular amateur marketing ploy with SQLServer port to Linux is unlikely to fool most Linux users, particularly large Ubuntu, RedHat or other Enterprise, large scale Linux installations, who know and have demonstrated the superiority of database systems like PostgreSQL running on *NIX (UNIX/Linux) foundation.

    However I cannot blame Microsoft for trying. There are and will always be a few gullible, naive and ignorant (especially technically) Linux users out there.

    1. sabroni Silver badge

      Re: Microsoft seeks naive and ignorant Linux user

      I wonder if there's a tech news site anywhere with a forum full of them??

      1. Anonymous Coward
        Anonymous Coward

        Re: Microsoft seeks naive and ignorant Linux user

        I would rather be confident and secure in my ignorance than knowing just enough about something to be baffled by it.

    2. TheVogon

      Re: Microsoft seeks naive and ignorant Linux user

      "Even with Oracle database products, Microsoft ensures that it cannot perform on Windows as it does on Linux"

      That's historically got a lot more to do with Oracle's use of crapware like Java, Oracle's poor adoption of threading and users not implementing Oracle recommended settings than anything deliberate by Microsoft. From Windows Server 2008 and Oracle 11g R2 onwards these issues are largely fixed provided you follow the Oracle recommendations - and you now get similar performance on Windows Server versus Linux for the same hardware.

      See http://www.oracle.com/technetwork/topics/dotnet/tech-info/ow2010-windowsdb-performance-177304.pdf

      "superiority of database systems like PostgreSQL "

      PostgreSQL has had more security holes, has far fewer features, and has way lower benchmark performance - so not quite sure how that's superior?

  7. kryptylomese

    I am not surprised by any of this and neither do I care.

    Give up Microsoft, you have always been crap and the world has moved on!

  8. Anonymous Coward
    Anonymous Coward

    Big ships don't turn on a dime. They just announced this like two days ago and everyone is already on top of them for not supporting features. MS understands that if they want to mess up Oracle, they are going to have to unleash all of SQL... or Oracle will never let them forget it. It will come to pass.

    1. Adam 52 Silver badge

      Pretty much right up until the Hyperion acquisition Larry was telling everyone that OLAP engines were unnecessary.

      Whilst I'd love to see MS port all of SQL Server to Linux, I'm not sure it makes sense to move all the old SSAS stuff (or even the new vertipaq bits) when you've got in-memory and column stores in the relational engine now.

      If the idea is to compete with RDS, as a previous Reg article postulated, then no need for any of it.

      There is still a gap in the market for a cloud based dimensional DB and reporting engine (AWS whatever it's called isn't really ready yet). MS had the chance to gain 8 years on the competition but the internal wars between the Office and Server divisions killed that. SSIS has little competition as well (Data Pipeline isn't in the same league, the Dell thing is a bit weird, and Google's thing ties you to Google's databases).

      This will all be over the heads of the "but I can just install Maria DB" crowd that seem very keen to demonstrate their ignorance at the moment.

  9. Ken Moorhouse Silver badge

    Certainly, Microsoft doesn't want to roll out SQL Server for Linux until it's running smoothly

    Are we supposed to take that comment at face value?

  10. SineWave242

    I don't give a flying fart about their SQL server.

  11. JosephEngels

    Oh im really cut up about that .. not.

    We have plenty of excellent, world-class database servers already for Linux ... last thing we need is that closed source bloat bucket, thanks all the same.

    If they could delay the port until, say, 2085, i think you might find we appreciate it,

  12. Anonymous Coward
    Anonymous Coward

    Shrewd move

    After Oracle's latest round of price-gouging (SE1 -> SE2), I can see SQL Standard or even Express looking like a pretty attractive option for the low-end market. A lot of our customers are still very wary of the "freemium" database vendors, and I'm sick of them paying for Larry's new yachts.

  13. Henry Wertz 1 Gold badge

    I wonder how it'll benchmark

    I'll be curious to see how this plays out. I wonder if it will go how Microsoft expects. I mean, with Linux's better disk I/O handling, caching, memory management (also all more tunable to handle odd workloads), and less propensity to run background tasks at innopportune times... I'm wondering if companies with large SQLServer investments won't find they can run fewer machines (so both fewer WIndows *and* fewer SQL Server licenses) with a Linux version.

    1. Anonymous Coward
      Anonymous Coward

      Re: I wonder how it'll benchmark

      "Linux's better disk I/O handling, caching, memory management "

      What makes you say that? - benchmarks tend to demonstrate otherwise. For instance Hyper-V under Windows server outperforms KVM, NFS server benchmarks show a higher top speed under Windows and benchmarks of low latency interconnects and 10 and 40 Gbit network adaptors perform better under Windows.

  14. Sam Adams the Dog

    Is a Linux Fan some sort of IoT device?

    Well, what sort of DB would such a device require? Hmmm...

    1. picturethis
      Coffee/keyboard

      Re: Is a Linux Fan some sort of IoT device?

      Nice!. Have an upvote.

      A "Linux" Fan IoT device.

  15. Anonymous Coward
    Trollface

    I hear from a source 'close to the matter' that the Linux version of SQL Server will only support the SELECT statement and only on a single table: this is because tables are currently implemented as world readable csv files on the Linux file system (in the ~scott/.tiger directory in quiet homage to Oracle). Unfortunately this also means values containing commas will break SQL Server quite badly. But it does mean SQL Server on Linux is completely immune to the infamous 'Bobby Tables' hack, so well documented by the Xkcd security consultants group.

    However, as the next version will be implemented using sed and awk, insert and update functionality can't be that far away. I'm truly excited.

    1. nijam

      > ... the next version will be implemented using sed and awk

      You jest, I hope. Many years ago, in the days when I still had a modest amount of spare time, I wrote an SQL parser in awk, admittedly as a joke. Well, it amused me for an hour or so, anyway.

      PS If you can write awk properly, you don't need sed, of course.

  16. AOD
    Alert

    What features will be supported?

    I'd like to know what tools & features will be available. For example it's one thing being able to run the DB on Linux, what about things like Sql Server Management Studio, Sql Server Reporting Services and Sql Server Integration Services?

    Not a fanboi for either side, I've developed and supported systems against both Oracle (PL/SQL) and Sql Server (T-SQL) and think both have their merits. Oracle is painful without decent 3rd party tools such as Toad, whereas SSMS is pretty fully featured without resorting to 3rd party apps.

  17. Daniel B.
    Boffin

    So... they're porting "just" SQL Server and not the SQL Server Analytics Services. That is misleading as a downside; SQL Server is pretty much what most people use. I only remember using SSAS once during college, never to be used again upon graduating. And this includes working at a place where SQL Server was at the core of their business!

    I'm pretty sure that many would be perfectly fine with SQL Server Enterprise on Linux even if it lacks the BI stuff. I'd probably like an additional feature: allow LDAP logins in addition to "Microsoft-not-LDAP" AD stuff.

  18. twenex1978

    Assuming JJ's comment *isn't* sarcasm, 1998 called; they want their ignorance back. And for the sarcasmically-challenged, yes, that was it.

  19. simonb_london

    Linux fans in for disappointment?

    Really? Were any Linux fans waiting all these years for MS to release one database out of many alternatives on Linux? More like MSSQL needs to support more platforms for people to still even consider using it when there are so many other multi-platform alternatives that work just as well if not better.

    1. Anonymous Coward
      Anonymous Coward

      Re: Linux fans in for disappointment?

      I've worked with Oracle, 8 years, SQL Server 10 years, MySQL 2 years, PostgreSQL, 3 years. Oracle is powerful but too expensive. MySQL's SQL language is 15 years old, they are not keeping up, terrible development platform. PostgreSQL has very advanced SQL language features but small market share and primitive administration tools. SQL Server 2014/2016 is as advanced and as fast as Oracle at half the price. Going after Linux will push Oracle out on cost alone unless client is stuck on Oracle's business suite. They are all very good except MySQL which does its developers a disservice by continuing to exist. But bad habits are hard to break.

  20. Scott 53
    Joke

    "Microsoft runs the risk of burning the goodwill it has fostered among some Linux advocates."

    Ha ha ha.

    Ha.

  21. Anonymous Coward
    Anonymous Coward

    Hi,

    Here is an how-to I wrote of how to install MSSQL on Ubntu:

    https://odedrabanitips.blogspot.co.uk/2016/11/mssql-sql-on-ubuntu-linux-easy-way.html

    Enjoy!

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Biting the hand that feeds IT © 1998–2021