1. 30
  1. 5

    I must admit I didn’t know about Citus before reading this article, nevertheless I’m surprised by Microsoft’s moves towards libre software friendliness in the last couple of years; the acquisition of Github, support for SQL Server over Linux (which I remember thinking as unnecessary since Postgres improves upon it by a big margin) and now Citus Data acquisition, strategic moves that look (at least on the surface) as steps on the right direction for a company that big, considering how hostile they were to the GNU/Linux community back at the beginning of 2001.

    1. 7

      Don’t forget about WSL, which was by far the biggest surprise to me.

      1. 4

        Thanks you. And I almost forgot when they joined LOT and OIN, to fight against patent trolls.

        1. 6

          We’d be wisd to remember Embrace, Extend, Extinguish as well…

          1. 4

            Plus, them extracting billions in patent royalties from Android. I don’t trust anything they say about patents. They have both lobbyists trying to change patent law to maintain/enable their lawsuits along with excellent lawyers who wield it profitably.

            1. 1

              I’m also thinking it might be another chapter of a practice MS is expert on, but I hope to be proven wrong. Time will tell eventually.

          2. 2

            Although it was a surprise, hindsight shows me we shouldn’t be surprised that they built something to run Linux’s apps on a paid product of theirs. They did it before with OS/2 subsystem for Windows NT. They were even also a UNIX shop at once with Xenix. SCO and OpenServer still exist despite IBM and Linux stomping them.

            If anything, we should assume they’ll do more if it results in users either staying on or going to Windows.

          3. 6

            All right, I’m going to raise my hand and say after dealing with Oracle and SQL Server professionally, they’re both terrible at making things easier for a normal developer. SQL Server can at least fit in the Visual Studio/.NET toolchain/ecosystem comfortably, but using it outside of that can be awkward. Oracle documentation is made for people that must be getting paid to read it and tries to make its error messages provide no understanding of problems.

            Yes, I’m probably biased because I’m working on ~20 yr old code and the DBA’s I work with don’t seem to know much besides moving archives around, but I shouldn’t have to create a single char column with a constraint of ‘Y’ or ‘N’ to fake a boolean column type (and that was according to the best practices that I’ve found thus far) - this makes me think that developer productivity isn’t relevant to Oracle. So Postgres is appealing to me as a pretty conventional Java/C# dev because they give me features (array types, json types/functions, and not requiring me to go to weeks of training) and let me forget about the database as much as possible.

            1. 3

              I’m probably biased because I’m working on ~20 yr old code

              We are facing that same issue at my current job, there we have databases running for production systems using Oracle 8i (last supported release is from 1998), which is not adequate for current data demands, but still Oracle 11g is not that different from 8i, at least for the most used features we make use of at work.

              1. 2

                Database upgrades aren’t too bad (we’ve done them once or twice at work) as long as the features you’re using were deprecated in favor of something Oracle can charge more for (CDC Goldengate I’m looking at you).

                1. 4

                  This is maybe the only time I’ve ever seen people who actually use Oracle databases pop up in a thread. Even on HN, with it’s much bigger readership (though maybe all drawn from the same bubble) you’d swear it was 95% Postgres and a few people who think they ought to feel ashamed for using MySQL even though it’s working fine for them.

                  So, if you don’t mind me asking, are there plus sides to an Oracle database? Does it do things that no other DB does, is it crazy reliable, or crazy fast, or is the on-call support so damn good that when there’s big money on the line you can’t go wrong with Oracle? Or is their revenue really due to legacy lock-in / switching costs, tech dinosaur inertia, and expert CTO shmoozing? Because Larry Ellison’s still a billionaire, so they’re presumably getting something right…

                  1. 3

                    There are many places that have Oracle but aren’t really Oracle shops per se, as Oracle is a big part of a lot of enterprise-y software packages that are sold to CTO types.

                    Too, the contortions Oracle partisans wrap themselves into to justify the lack of a Boolean datatype are hilariously stupid.

                    1. 2

                      Upsides? Maybe corporate inertia? We don’t do anything special (mostly big CRUD, and reporting), but the database decision(s) got made over a decade ago and nobody seems to think evaluating the costs would be a worthwhile exercise (which is odd considering Oracle licensing costs…).

                      I’m firmly convinced that lots (maybe even most) decisions about software on a executive level (especially outside of the valley) are based on shmoozing. The software that my company makes (SaaS) is mostly made on that level, but there’s a point in going after a customer where the salespeople give up and say “(CxO) is an SAP guy, so this has no chance.” Which has nothing to do with cost/features/support. So we use Oracle for the same sort of reason.

                      C’est la vie

                      1. 1

                        This is maybe the only time I’ve ever seen people who actually use Oracle databases pop up in a thread.

                        I really think this is just a subculture issue. MS SQL is a bit similar, but one of the advantages of that solution is that MS is relatively more open. My (conspiracy) theory is that Oracle consultants keep knowledge secret to increase revenues ;)

                        But there’s always a cut-off point where the maintenance costs exceed the costs of moving to another solution. I think Oracle has a stable base of satisfied customers, but the growth potential is low - hence buying Sun etc.

                2. 5

                  which I remember thinking as unnecessary since Postgres improves upon it by a big margin

                  I keep seeing people say stuff like this and it drives me bonkers. Yes, PostgreSQL has lots of convenient features, data types, and functions. But SQL Server’s query execution engine is much faster than PostgreSQL’s, and it’s query optimizer blows PostgreSQL’s out of the water. Yes, PostgreSQL has improved performance a lot in 9.x, 10, and 11. No, it’s still not anywhere close to SQL Server, especially for hugely complicated queries.

                  It’s like saying C++ is unnecessary since Python improves on it by a big margin. Good for you if Python meets your performance and scale requirements, but that doesn’t make C++ unnecessary.

                  1. 6

                    sophisticated query optimizer

                    That’s nice and all, but have you heard about our lord and saviour, clustered indexes on schema-bound views!? They’re the one MSSQL feature that I can now barely imagine living without. (Tiny inconvenience: they very-often aren’t used without a WITH (NOEXPAND) hint but oh well no biggie.) All whole bunch of aggregations suddenly magically become possible to make O(1-ish) per row selected, at the cost of adding O(1-ish) cost to data modifications.

                    1. 1

                      Yeah, I mean, people who have used Postgres – people who understand how much better it is at the basic job of preserving data, when compared to MySQL – often have never used a serious commercial database.

                      ETA: But that said, Postgres is a wonderful tool, and significantly more comfortable for developers.

                      1. 1

                        I must admit I spoke without being specific on which points postgres (which from my point of view are mainly richer features) improves upon, nevertheless I trust your experience on this topic (since mine hasn’t being enough with SQL Server to speak properly, much of what I know about RDBMS is from Postgres, Oracle and Sybase [poor me]) and thanks for pointing this out. Where is a good source of unbiased information I can learn more about what you’ve mentioned here?

                        1. 4

                          Unfortunately, there aren’t really any good sources of information, or any way to acquire this knowledge other than industry experience.

                          Trouble is, database vendors have every incentive to avoid publishing benchmarks or other performance data. It’s difficult to get right, usually easy to see where they’ve biased the sample scenario in their favor, it almost always appears juvenile, and some salty web hipster will get a gajillion upvotes on HN for vilifying the publication regardless of whether said web hipster has the slightest clue what they’re talking about.

                          The best you can do is read vendor documentation that explains how capitalize on certain optimizations, or avoid certain caveats. If you really know what you’re looking at and can read between the lines, you can figure out who does what well. Even then, lots of the juiciest details are undocumented and given to customers on a need-to-know basis.

                          I’ve seen SQL Server generate incredible plans that I couldn’t even begin to explain how it knew to choose. And I’ve seen PostgreSQL throw it’s hands up in the air and hash join several full table scans when a simple lateral join obviously would work better. It just isn’t a competition.

                          Good commercial databases cost buckets of money for a reason. When you need that kind of power, there usually isn’t any other way to get it.

                          1. 1

                            any other way to get it

                            Pay someone to improve Postgres for you? :)

                            1. 1

                              acquire this knowledge other than industry experience

                              It seems to me like an appropriate scientific and fair method to know the internals and the advantages of each engine. Thanks for your objectivity.

                          2. 1

                            Many of my database-related tasks have more to do with SQL ergonomics than with performance. I currently work using Oracle 11 and I miss so many things that are natural using Postgres. They include SELECT FROM VALUES (instead of silly SELECT FROM dual), array types, jsonb_agg, SELECT a>b and probably some other features (I’m also missing LIMIT OFFSET, but newer Oracle has FETCH FIRST, so it doesn’t really count as an advantage over Oracle). Sure Oracle has great features that Postgres lacks, but those are what I would use every day if I could.

                            1. 1

                              [MSSQL’s] query optimizer blows PostgreSQL’s out of the water

                              Is this recent? I’ve DBA’d postgres, and have (distant past) MSSQL experience, but back then, postgres’ query optimizer seemed far more advanced. I seem to recall MSSQL’s bad query planning being one of the reasons the stored proc became such an important part of MSSQL culture.

                            2. 3

                              That surprising cuz we did get a lot of submissions, some authored by @craigkerstiens. I thought we were one of goto sources for Citus news and write-ups.