[HN Gopher] AWS Babelfish: The Elephant in the PostgreSQL Room?
       ___________________________________________________________________
        
       AWS Babelfish: The Elephant in the PostgreSQL Room?
        
       Author : ahachete
       Score  : 101 points
       Date   : 2021-02-12 14:58 UTC (8 hours ago)
        
 (HTM) web link (postgresql.fund)
 (TXT) w3m dump (postgresql.fund)
        
       | api wrote:
       | More freedom as long as you run on AWS. Or did they release this?
        
         | severino wrote:
         | They plan to release it under the Apache License this year,
         | according to:
         | 
         | https://babelfish-for-postgresql.github.io/babelfish-for-pos...
        
       | jjjeii3 wrote:
       | I worked with SQL Server, Oracle, MySQL and many other DBMSes.
       | Nothing can beat PostgreSQL.
       | 
       | Oracle's SQL Developer is the worst IDE for databases I ever
       | seen. Oracle DB doesn't support "TOP N" or "LIMIT N" notations
       | and many other useful features...
       | 
       | I like SQL Server more than Oracle and Microsoft provides 2 good
       | IDEs for it (SQL Management Studio and Azure Data Studio). But it
       | has some bad limitations - you can't define ON ... CASCADE on
       | more than one path. You also can't create CTEs with
       | inserts/updates.
       | 
       | PostgreSQL doesn't have a good IDE out of the box. I heard that
       | Azure Data Studio now support it, but didn't try it yet, because
       | I already paid for a commercial IDE that supports PostgreSQL.
       | PostgreSQL also doesn't have a good high availability tooling,
       | but all major cloud providers do this for you. Considering that
       | you get it for free, it is a much better choice than Oracle or
       | SQL Server.
        
         | NDizzle wrote:
         | Devart makes good SQL IDEs. They came out with one for Postgres
         | ... recently? In the last year or two. If it's similar quality
         | to their mysql ide, I'd recommend it.
         | 
         | https://www.devart.com/dbforge/postgresql/studio/
        
         | bdcravens wrote:
         | Working with the big 3 on a regular basis, DataGrip is the best
         | tool I've found. (It lacks some management features, but it's
         | been years since I needed those)
        
         | katnegermis wrote:
         | I really love using dbeaver[1] as a Postgres IDE. It requires a
         | small bit of configuration for me to use it (why are the
         | defaults to automatically lowercase all of my SQL?!). Other
         | than that it's excellent!
         | 
         | [1]: https://dbeaver.io/
        
           | Quarrelsome wrote:
           | because fuck the shift key. RSI sufferers unite!
           | 
           | but in all seriousness, I don't know.
        
       | gonational wrote:
       | Embrace, extend, extinguish, Amazon edition.
       | 
       | In my opinion, this is the inevitable conclusion of Amazon's
       | sudden increase in direct involvement in OSS projects. With cases
       | like elastic search close in the rearview mirror (I know that
       | there were reasons for this, but it was a start), It's hard not
       | to come to this conclusion.
       | 
       | Once the Amazon tentacles have reached down into every major
       | staple of the OSS economy, it's difficult to predict the end
       | result, but one thing is for certain, it will benefit Amazon more
       | than it benefits anyone else, lest Amazon breaks its promise to
       | its shareholders.
       | 
       | Amazon has demonstrated a pattern of controversial vertical
       | integration, by using internal analytics to determine which of
       | their own merchants' products they should undermine. To believe
       | they would not do the same thing in their largest and most
       | important division would require tragic ignorance.
       | 
       | This is all just my opinion
        
         | _msw_ wrote:
         | Disclosure: I work for Amazon, where I build AWS
         | infrastructure. But these are my own opinions and experiences
         | at work, and I am not speaking for my employer.
         | 
         | "Embrace, extend, extinguish" has never been uttered in any
         | conversation I've been part of at Amazon. It simply is not part
         | of the philosophy, or culture. We obsess about customers, and
         | customers do _not_ like the things that they depend on, like
         | open source software that they 've built their business on, to
         | be damaged.
         | 
         | Rather, they want to do more with open source software all the
         | time. And many want to find ways to get off of software that is
         | constraining them, or causing unplanned stress or surprises
         | when their costs suddenly change due to arbitrary license
         | changes.
         | 
         | The promise here is to customers, and customers tell us that
         | community-led open source software development is better for
         | them. And this is no surprise. As a software developer, and a
         | long time FOSS advocate, I believe it too.
         | 
         | By listening attentively to customers, I believe we will
         | continue to build a business that we, and our shareholders,
         | will be proud to be a part of, and will provide long term
         | growth.
        
           | gonational wrote:
           | With no disrespect to you, this comes across like a pre-
           | canned response from the Amazon Anti-Anti-Trust legal team...
           | 
           | I mean, your second and third paragraph could be the
           | introduction to an internal presentation about "why we at
           | Amazon should embrace, extend, and extinguish OSS". The
           | things you listed are precisely why Amazon would want to
           | destroy OSS, Because OSS is a threat to anyone offering
           | proprietary software, and anyone who has built their empire
           | on OSS will inevitably need to shift to proprietary software
           | to retain relevance in a world where OSS software "eats the
           | world" by, for instance, commoditizing the infrastructure
           | layer...
           | 
           | In other words, just in time for AWS to become less relevant
           | due to the enormous gains in open source infrastructure as a
           | service tools, Amazon will swoop in and help to destroy the
           | most useful parts of the open source economy.
           | 
           | It's easy to look at this with a naive optimism and think
           | "but these are the exact kinds of things that helped AWS grow
           | to begin with", To which the obvious reply is "yes, at the
           | bottom end, but Amazon has been focused on enterprise more
           | and more over the past five years, and licensing agreements
           | with other big tech companies have changed the offering and
           | the prospects of future offerings". All you have to do is
           | look at YouTube to see another example of this. YouTube built
           | its user base on small contributors, but as soon as it
           | reached a plateau it began to focus on the old guard, main
           | stream media, Hollywood, etc., unfortunately for the little
           | guys. This is the same pattern every company takes once they
           | get big enough to play competitively with the big boys.
           | 
           | This is all, of course, only my opinion.
        
             | _msw_ wrote:
             | I take it as no disrespect. I can understand why you would
             | have this point of view. :-)
        
               | gonational wrote:
               | If you understand _why_ I have this viewpoint, then have
               | I convinced you to have the same viewpoint? Or, have I
               | given away some thing about my internal reasoning
               | mechanics to suggest that I would have erroneously come
               | to my conclusion, perhaps based largely on blind
               | cynicism?
        
               | _msw_ wrote:
               | Personally, I try to keep a "curious" outlook, and to
               | regularly try to disprove my beliefs. To me, one way to
               | do this is to listening closely to criticism from
               | viewpoints and perspectives that are different than mine.
               | 
               | Based on my own experiences, including engaging in very
               | helpful dialog with critics so far, I am not convinced
               | that the same kind of anti-FOSS campaigns that we saw,
               | with ample public evidence, from actors like Microsoft
               | and SCO of the past, would be in the interest of Amazon
               | or its customers. It would be the opposite.
               | 
               | But I think it is right, and it should be expected, to
               | continue to scrutinize Amazon, like any other large
               | organization. I try to judge based on actions and
               | evidence, rather than what-if speculation.
        
           | johncena33 wrote:
           | > "Embrace, extend, extinguish" has never been uttered in any
           | conversation I've been part of at Amazon.
           | 
           | We are not talking about internal corporate PR. Enron also
           | had great set of values [1] that were preached to the
           | employees. It's about the actions, not the words uttered.
           | 
           | [1] https://hbr.org/2002/07/make-your-values-mean-something
        
             | _msw_ wrote:
             | I am not reciting corporate PR. As I said, I'm not speaking
             | for AWS. I only speak for myself, and I'm not saying
             | anything that I don't believe.
             | 
             | You'll find elsewhere in the comments [1] that on actions,
             | not words, I agree with you. "I try to judge based on
             | actions and evidence, rather than what-if speculation."
             | 
             | [1] https://news.ycombinator.com/item?id=26116542
        
         | linuxhiker wrote:
         | Except that they haven't extinguished anything.
         | 
         | They certainly embrace and extend which is the very nature and
         | purpose of Open Source software.
        
       | sradman wrote:
       | The elephant in the room is that AWS Babelfish could be a viable
       | alternative to PostgreSQL. Babelfish is currently a fork of
       | PostgreSQL that is compatible with Microsoft SQL Server's TDS
       | wire protocol and T-SQL language. The article proposes adding
       | hooks for wire protocol extensions eliminating the need for
       | separate forks. Adding new languages is already supported (EDIT:
       | incorrect, see mattashii's comment).
        
         | ahachete wrote:
         | OP.
         | 
         | One of my fears. That unless we, as the PostgreSQL Community,
         | do something about it, and embrace the efforts that AWS started
         | doing and I hope will continue, it would effectively end up
         | being a fork. And a fork with a collaboration on GitHub, which
         | many would prefer to contribute to rather than current's
         | Postgres contribution mechanism.
         | 
         | And if that's the case, I wonder if it could become the
         | MariaDB, or the LibreOffice, of Postgres. I hope we will be
         | able to do the best thing and have the contribution that
         | Postgres is receiving integrated and merged into Postgres.
        
           | _msw_ wrote:
           | Disclosure: I work for Amazon where I build AWS
           | infrastructure, but these opinions are mine alone.
           | 
           | Personally, I think that the word "fork" has a lot of
           | historical meaning in the world of Free and Open Source
           | Software. To me, "fork" means that there is a "vote of no
           | confidence" in the direction of the people who are making
           | decisions about open source software. That clearly is not the
           | case here. The PostgreSQL core team has a very good
           | reputation of being collaborative, and thoughtful, in their
           | work to make PostgreSQL the best database it can be for the
           | community at large, and not build it to benefit any
           | particular commercial interest.
           | 
           | Often software development happens on branches. These are
           | experiments, not forks. Over time, good ideas are propagated,
           | and grafted, between the branches. These are not "forks" to
           | me.
        
             | ahachete wrote:
             | Indeed.
             | 
             | I see this as a very open and collaborative approach. To
             | announce such a big contribution to Postgres, and be it
             | open sourced when published, is very welcome, and I believe
             | one of the boosts, as I mentioned in the post, that
             | Postgres needs.
             | 
             | I'm also convinced that Babelfish and PostgreSQL will be
             | properly integrated, and this will be a great win. I
             | consider it too a development branch more than a fork,
             | which certainly has "no confidence" connotations. But
             | there's still some worry that it would become one, one day,
             | if there's no sufficient effort towards its integration
             | --as the conversation that I wanted to spark here was
             | almost non-existent up until recently.
             | 
             | This actually brings the topic of more explicitly branch
             | development in Postgres, but it's a different story ;)
        
           | linuxhiker wrote:
           | This indeed is the concern. I don't think most people are
           | going to care if it is PostgreSQL.Org PostgreSQL, or
           | Babelfish for PostgreSQL in the long run. What they will care
           | about is modernity of the development process and who has the
           | "cool" features.
           | 
           | When you look at something that has nothing to do with the
           | Babelfish functionality but would absolutely help PostgreSQL,
           | consider PHOT. PHOT (Partial HOT) is a great opportunity for
           | PostgreSQL that Amazon is trying to give back. However, I
           | wouldn't be surprised if the .Org community were to not
           | accept the patch, the feature would end up in Babelfish. If
           | that happens, we now have a viable fork which has 100%
           | compatibility++.
        
             | aargh_aargh wrote:
             | This is the only reference I found for the exact query
             | "partial heap only tuple". It's hard to find anything using
             | "partial HOT".
             | 
             | https://www.talkend.net/post/268380.html
        
         | mattashii wrote:
         | > Adding new languages is already supported.
         | 
         | This is true only to a degree: Adding new _procedural_
         | languages is supported, but support for new query dialects
         | (i.e. the main contact surface of most applications with an SQL
         | RDBMS) is not currently a supported feature.
         | 
         | As mentioned in the psql-hackers thread from the article,
         | currently the postgresql-specific parsed syntax tree is passed
         | through many components, and to replace the syntax you'd have
         | to alter and recompile the core application.
        
         | _msw_ wrote:
         | NB: it is not "AWS Babelfish". It is (currently) "Babelfish for
         | PostgreSQL".
         | 
         | https://babelfish-for-postgresql.github.io/babelfish-for-pos...
         | 
         | Can the title of this post be changed to remove "AWS" please?
        
           | dang wrote:
           | The opening paragraph of the article says " Amazon AWS
           | announced Babelfish" and links to
           | https://aws.amazon.com/blogs/opensource/want-more-
           | postgresql... from the AWS blog. This all seems accurate to
           | me. Is there some other reason why we should take AWS out of
           | the title? Branding is not a reason that HN readers would
           | support, and I think if we took AWS out for that reason, the
           | community would accuse us of trying to obscure the origins of
           | the project. Internet people are trigger-happy about this
           | kind of thing, and too quick to accuse us of serving $BigCo
           | agenda as it is.
        
             | _msw_ wrote:
             | I think we are trying to establish the brand of this
             | project in these early days, and to have that brand
             | distinct from AWS. I see this like "Mozilla" was separate
             | from "Netscape" in their early days [1] (note, this link
             | will not work when the referrer is from HN. Archive link
             | provided for convenience [2]). It is a project that AWS is
             | sponsoring and stewarding, but from what I currently know,
             | I think the intent is for it to be community-centric in the
             | long term.
             | 
             | If successful, Babelfish will grow a community, and work
             | harmoniously as an extension of PostgreSQL. And including
             | "AWS" in the brand of the project may hamper the efforts to
             | build a community around it (in addition to complications
             | of using a brand / trademark like "AWS" in an open-source
             | project).
             | 
             | The TL;DR is: "AWS" is not part of the branding of
             | Babelfish for PostgreSQL, and that is intentional. The
             | reasons for this aren't about obscuring the origins or
             | initial sponsorship of the work, but are rather about
             | establishing a separate identity.
             | 
             | [1] https://www.jwz.org/blog/2016/10/they-live-and-the-
             | secret-hi...
             | 
             | [2] http://archive.is/UMMCx
        
       | andred14 wrote:
       | Time to get off AWS or prepare to.
       | 
       | The destruction of Parler, a company that did nothing wrong,
       | should be alarming and motivating for you to ditch AWS and all
       | big tech censorship companies.
        
       | thinkx wrote:
       | Postgres has a core design philosophy of being "extensible". This
       | should be embraced..
        
       | lukaseder wrote:
       | For those who can't wait, there's https://www.jooq.org/translate
        
         | notenoughbeans wrote:
         | Hi Lukas! We use JOOQ at our company and it has been a great
         | experience. Thanks for all your hard work.
        
       | eternalban wrote:
       | juicy little bit: "Apparently AWS has around 200 open job
       | positions (!!) for developers working on Elasticsearch"
        
         | itg wrote:
         | According to my friends who are in AWS, the attrition rate is
         | really high with many people leaving within less than 2 years.
        
           | JulianRaphael wrote:
           | I've been working for AWS across different teams for some
           | time now and can't confirm that. There are a LOT of folks
           | with +5 years tenure. In the US, the average tenure of
           | workers aged 25-34 is 2.8 years, so you'll obviously see some
           | turnover and some teams might see more than others - but the
           | attrition rate is not really high across the company. In my
           | opinion, we're hiring mainly because we are still growing
           | really fast!
        
             | myWindoonn wrote:
             | Mm, but you're in management. All the Amazonians I've
             | talked to have indicated that it's a very rough environment
             | and they were glad to get out. Maybe you get a distorted
             | view due to the power imbalance between you and your peers?
        
               | JulianRaphael wrote:
               | I'm an individual contributor in product management, so
               | not in people management. Amazon / AWS is a challenging
               | work environment, just like most other tech companies. In
               | my opinion, that is also why so many people want to work
               | for FAANG & Co, as you generally get to work on really
               | interesting but also challenging things. I'd say that
               | bursts of intense working periods are par for the course
               | in FAANG & Co, but it also depends on your own ability to
               | handle our self-service culture (which I find
               | empowering). The culture is certainly peculiar but each
               | large tech company has their own culture that works
               | really well for some and doesn't jive with others. Just
               | speaking for myself here, but I have learned a ton
               | professionally and personally, work(ed) with inspiring
               | people and had the best work-life balance of my career so
               | far. Don't want to sound like a shill here - I'm
               | certainly aware that in a company the size of Amazon
               | there will be good and bad pockets, I just happened to
               | work with good teams so far.
        
             | eternalban wrote:
             | That was my read of it as well. Amazon is dead serious
             | about the fork.
        
             | jorblumesea wrote:
             | You might be on a solid team, but AWS is widely regarded as
             | being a complete meat grinder. We've hired so many devs
             | from AWS in the past 18 months (even pre covid) and they
             | all have the same story. 12-14 hour days at a minimum,
             | toxic leadership and managers, incredible pressure, tons of
             | tech debt and mostly doing ops work.
             | 
             | I'd say the trend for AWS is leaning "do not join".
             | Anecdotal? Of course, but with enough stories it becomes a
             | statistic and not an anomaly.
        
               | JulianRaphael wrote:
               | Hm. I will obviously appear to be biased, but isn't the
               | collection of anecdotes that you've gathered a
               | manifestation of some kind of inverse survivorship bias?
               | Within the total population of people who work or have
               | worked at AWS, the largest group of people with a
               | negative experience will be in the subset of the
               | population that has left the company? I really believe
               | that companies the size of Amazon will inevitably have a
               | certain percentage of people who had negative experiences
               | - just like the company has negative experiences with
               | individuals.
               | 
               | Like I said in my other comment in this thread, I'm sure
               | that there are some teams that don't have a good culture
               | but it also comes down to the individual in many cases. I
               | guess it comes down to individual preferences, some folks
               | really don't want to work at Google, others dislike
               | Facebook, some don't like AWS, etc.. But at the end of
               | the day, all of these companies still attract a ton of
               | incredibly talented people and I personally don't see
               | that trend ending soon.
        
               | jorblumesea wrote:
               | Few companies have entire websites dedicated to how poor
               | their experience was at said company. Amazon is the only
               | company I've ever heard of in tech where people have
               | devoted their spare time and money building resources to
               | warn others about how bad and toxic their experience was.
               | Microsoft doesn't have this. Facebook or Google don't
               | have this. It's actually mind blowing when you think
               | about it.
               | 
               | Imo, Amazon is a special level of toxic and abusive and
               | it shows by their reputation in the industry and how high
               | their turnover is. That's what I mean by anomaly vs
               | statistic. When thousands (tens of thousands?) of your
               | former employees have horror stories, it starts to build
               | a strong narrative than a few bad teams or a bad manager.
               | Or you start to question if the ratio of bad teams is
               | that high, what is wrong the the company as a whole?
               | 
               | Does it mean your experience at Amazon is wrong or
               | incorrect? Absolutely not. But your experience isn't the
               | norm.
        
               | JulianRaphael wrote:
               | Out of curiosity, I just did a few searches along the
               | lines of "is MSFT/FB/GOOG bad place to work" and for each
               | of them there were several results/websites about how
               | each of these companies is the worst place to work. If
               | you look at the largest publicly available data set,
               | Glassdoor, AWS does quite well - better than Microsoft
               | and as well as Google. I have not worked for Amazon
               | outside of AWS, so I can't really comment on that.
               | However, as Amazon has more than 1,000,000 employees
               | (400,000 of which were hired in 2020), I'd argue that you
               | get more negative stories simply because of the larger
               | population? Comparing Amazon to MSFT (163,000), FB
               | (50,000) or GOOG (135,000) without taking its ginormous
               | scale into account seems to be comparing apples to
               | oranges. In terms of scale and typology, it would
               | probably be better to compare AWS to these companies and
               | I believe that the publicly available data paints a
               | different picture than what you describe.
               | 
               | I'm not trying to argue with you here, I've just had a
               | quite few discussions in recent times with people who had
               | very strong negative opinions about MSFT being a place
               | for the lazy, Google being a place for the special
               | snowflakes, Facebook being a place for the cultish, AWS
               | being a place for those looking for a stepping stone in
               | their career, etc....and I think that all of these
               | companies actually are great places to work but there
               | will always be a few percent who absolutely hated their
               | time there.
        
               | jorblumesea wrote:
               | Nothing like this exists for any other company in tech:
               | https://sites.google.com/site/thefaceofamazon/
               | 
               | Just filled with stories of people that felt extremely
               | wronged. Are there stories of people that with terrible
               | experiences at other companies? Of course. Are there
               | people that have had good experiences at Amazon?
               | Absolutely. Does anything like the above exist for any
               | other company? Not that I can find.
               | 
               | That's crazy and really speaks to the difference. If you
               | believe that Amazon is "just another tech company" in how
               | they treat their employees, I'd probably say you're
               | turning a bit of a blind eye.
        
               | JulianRaphael wrote:
               | Most of these stories are about Amazon and again, at the
               | scale that Amazon operates I think that this would be
               | expected? With 1,000,000 employees, if you assume a
               | yearly turnover of just 1% that's 10,000 people leaving
               | the company and I'm sure there are quite a few people in
               | that group who had a bad experience - particularly as
               | this includes the retail operation, which definitely had
               | a bad reputation (most stories on the website that you
               | linked are about retail teams). Post the NYT story in
               | 2015 a LOT of things changed in retail, but I'm sure
               | there are still issues.
               | 
               | Not trying to be pedantic here, but this thread was about
               | AWS and not Amazon, so I will just reiterate that I can't
               | personally comment on Amazon as a whole, I can only
               | comment on AWS and I think most people would agree that
               | AWS _can_ be put into the same category as FB, MSFT,
               | GOOG, etc. I have highlighted this distinction several
               | times, but you seem to not want to engage in a
               | conversation about AWS and rather discuss Amazon as a
               | whole. That 's fine, but as AWS and Amazon are really two
               | different companies, you are then comparing apples to
               | oranges and in that case you should compare Amazon to
               | e.g. WalMart?
        
         | aynyc wrote:
         | Ha! I guess hardware resources aren't the only thing
         | Elasticsearch suck up!
        
       | wiremine wrote:
       | > The trends for the last 8 years are clear: Oracle and SQL
       | Server are constantly declining in popularity; MySQL is slightly
       | declining; and PostgreSQL is clearly growing in popularity. But
       | while PostgreSQL almost tripled in popularity in these eight
       | years, it is still far behind the other three.
       | 
       | It's great to see Postgres growing, but I often wonder why it
       | isn't growing faster, especially when compared to MySQL. Without
       | getting into a religious flame war, I'm curious what the HN
       | thinks about that?
        
         | wayneftw wrote:
         | Postgres never gave me the ability to quickly and easily build
         | stored procedures that return multiple heterogeneous resultsets
         | with ease. In SQL Server you do it like this:
         | CREATE PROCEDURE get_customer_and_orders           @id int
         | BEGIN           SELECT id, first_name, last_name, email, etc
         | FROM customers WHERE id = @id;           SELECT id, store_id,
         | created_at, etc FROM customer_orders WHERE customer_id = @id;
         | END
         | 
         | I've quickly built entire applications with this tactic as the
         | centerpiece. You can argue that it moves business logic into
         | the database layer and to that I'd say "good", at least for
         | apps that are maintained by IT departments with many strong SQL
         | people and not so many developers. If you know TSQL, you know
         | that you can also do branching, looping and other logic
         | operations within this same procedure - you can even decide to
         | send back 3 resultsets instead of 2 if you want to and the
         | client API allows you to handle whatever it received quite
         | elegantly.
         | 
         | I think that features like this are why many businesses will
         | stay on SQL Server. Also the high quality of tools for SQL
         | Server that have no match in Postgres such as SQL Server
         | Management Studio, SQL Server Data Tools, SQL Server Profiler,
         | SQL Server Integration Services among many other such tools
         | that are extremely well integrated.
        
           | dvaun wrote:
           | My limited experience with smaller companies (and now local
           | government) shares this sentiment. For "small" databases
           | (say, not hundreds or more of terabytes) I've experienced
           | using stored procedures as a core of the ETL process.
           | 
           | That being said, haven't some recent versions of Postgres
           | added support for stored procedures or some variant? I'm
           | curious if we'd seen any changes in performance if we
           | experimented with switching over.
        
             | Tostino wrote:
             | They did, but there is still not a good way to return
             | multiple result sets... I mean you can return cursors, but
             | it's...strange.
        
           | ubercore wrote:
           | This isn't meant to detract from your point, but just a fun
           | anecdote -- my first job out of college was working on a
           | product that had its entire business logic layer built in
           | stored procedures. All of it. Hundreds and hundreds of lines
           | per procedure. It "worked", but man was maintenance a bear.
           | In a way, it was good; ever since I've been very comfortable
           | with SQL. But I can't recommend it.
        
           | intrasight wrote:
           | The example you gave makes no sense. It would be better
           | expressed as a join. There may be examples where it makes
           | sense, but I can't think of any. In SQL Server, I think of a
           | stored proc as a logical operation that takes action and
           | returns one object. If I want sub-structure within that
           | object, I have the stored proc return one json or xml object.
        
             | drdec wrote:
             | The example given allows the application layer to
             | instantiate a customer object with a list of order objects
             | in one database query. Yes, you could do that by returning
             | JSON or XML, but why have the extra step of parsing the
             | text? Directly accessing the result set and acting on the
             | object instances will be more efficient.
        
           | hobs wrote:
           | And yet, MARS is not great for troubleshooting or testing
           | (for database people writing SQL) and I have worked at many
           | places where the complexity of many sets doesn't really
           | justify not making two procedures.
           | 
           | Also the freetds guys hate it :)
           | https://www.freetds.org/mars.html
           | 
           | (I am currently converting a MARS app explicitly so it never
           | does utilizes this approach)
        
         | mrweasel wrote:
         | MySQL/MariaDB have several relatively easy ways of building
         | multi-master setups. Postgresql doesn't really have a that
         | great solutions for master-master replication. Our customers go
         | for MariaDB to get master-master replication
         | 
         | We see some customers building new solutions on Postgresql, but
         | for large setups, it's still MariaDB/Galera or Oracle and there
         | isn't a big push to drop Oracle.
        
           | otabdeveloper4 wrote:
           | Postgres doesn't have a great solution for any replication,
           | not just master-master.
           | 
           | Lots of things are just half-baked and very clumsy in
           | Postgres compared to MySQL (MariaDB).
        
             | Tostino wrote:
             | Streaming replication works great in Postgres.
        
         | __s wrote:
         | I worked at a place that was running SQL Server 2012 in
         | compatibility mode with an older version. The place had a
         | pretty high turn over rate, so a lot of the expertise is in the
         | existing tech rather than the people. It was hard enough to try
         | convince them to upgrade SQL Server (I wanted to leverage row
         | level security to get away from having a dozen copies of what
         | was essentially the same app, but that required SQL Server
         | 2016)
         | 
         | Also, when I brought up postgres for a new project & mentioned
         | it being open source, response was "that means it could vanish
         | any day"
         | 
         | Inertia is real
        
         | DaiPlusPlus wrote:
         | > I'm curious what the HN thinks about that?
         | 
         | People don't need those white-label commodity cPanel or Plesk
         | shared-hosting or VPS services to run SaaS applications anymore
         | - it's far better for everyone[1] when they switch to a major
         | cloud provider, namely AWS, Azure, GCP, etc.
         | 
         | I argue that most web/saas devs today grew up with - and
         | tinkered-with - said white-label services: which means they got
         | their experience with MySQL because it was part of the stock
         | default configuration for all those web-host accounts: with
         | PHP, maybe Perl, and many preinstalled web-applications like
         | phpBB, Wordpress, Coppermine, phpNuke, and so on... and that's
         | probably a solid 15+ years of commonplace web-hosting market
         | saturation (thinking 2001 through 2016, with 2014 being the
         | tipping-point for AWS/Az/GC being the home of SaaS).
         | 
         | You'd be in high-school age-range (14-18?) and get bored of
         | simply running other peoples' programs on your web-space, and
         | you saw these web-applications were written in PHP so you'd
         | follow some series of online tutorials for PHP and when it
         | inevitably leads to databases they assume you have MySQL - and
         | MySQL (at the time) had not only the widest installbase, but
         | also had a far more forgiving SQL engine than anyone else.
         | While PostgreSQL was often only a few clicks away via quick
         | installers built-in to cPanel/Plesk/etc, MySQL was a safer-bet
         | by everyone involved.
         | 
         | ...but those days are past: as a personal anecdote: at no-point
         | in the past 10 years have I come across any "serious" PHP web-
         | application software intended for private or on-prem usage
         | since vBulletin or SVN.
         | 
         | [1]Except free-as-in-freedom software advocates...
        
           | rubyskills wrote:
           | I think around that time, postgres was handicapped because of
           | performance reasons. It was considered slow because of ACID
           | compliance and MySQL was all the rage with MyISAM.
           | 
           | If only postgres won the marketing battle back then...
        
             | DaiPlusPlus wrote:
             | > If only postgres won the marketing battle back then...
             | 
             | Be glad they didn't - otherwise their support dept. would
             | be buried under questions from web-hosting newbs.
        
         | sofixa wrote:
         | People go with what they know, the the LAMP stack was a classic
         | for multiple years. And even today PostgreSQL's HA tooling
         | isn't that great ( one can set up MySQL/MariaDB in
         | active/active in a few minutes, and that's impossible with
         | PgSQL, and even active/passive with easy failover requires more
         | work and oftentimes external tooling).
        
         | hospadar wrote:
         | Personal guess: because switching DBs is expensive and if it
         | works, why bother?
         | 
         | I personally LOVE pg over all other choices, but I've got some
         | 5-year-old apps sitting on a little mysql DB and no intention
         | to move them. Dbs are small, performance is good enough, cost
         | of instances wouldn't be very different on PG, but cost of
         | moving everything over is probably a week or two of work that
         | would be pretty hard to justify given the current situation.
        
         | linuxhiker wrote:
         | In terms of overall adoption, PostgreSQL doesn't need to catch
         | Oracle or MySQL. The people that enjoy legacy platforms are not
         | going to change (necessarily).
         | 
         | Real work gets done with PostgreSQL. You can't buy something
         | from Amazon.com without using PostgreSQL. The more Amazon talks
         | about that in their ecosystem, the more PostgreSQL becomes the
         | default choice for all new developers within that (very large)
         | ecosystem.
         | 
         | When you combine that with the loud presence of another 800lb
         | Gorilla promoting PostgreSQL (MSFT), the market has spoken.
        
         | runako wrote:
         | The popularity of PG relative to MySQL is going to be
         | unavoidably skewed by the popularity of WordPress and its tight
         | linkage to MySQL.
        
         | aynyc wrote:
         | In my little world, MySQL was popular because we could get
         | enterprise level support directly from MySQL. It was the
         | default choice from that point on. I don't know if that has
         | changed. AWS changed that pretty quickly.
        
         | ahachete wrote:
         | OP.
         | 
         | This is a very good and fair question. Postgres is growing a
         | lot, but is it growing enough, according to its true potential?
         | It has everything: incredibly robust and trusted; very large
         | feature set; not under any company's direction; extremely
         | liberal license. Should be conquering the database market, and
         | by far is not!
         | 
         | I don't have an answer. I have potentially, many. Possibly I
         | will blog about this at some time. But I believe that
         | definitely it should be growing more and becoming more relevant
         | than it is right now.
         | 
         | This is no detriment at all to all the fantastic work done by
         | everybody; but just the ambition that Postgres can and should
         | go farther.
        
         | throwaway_dcnt wrote:
         | Enterprise dba shops have deep expertise with oracle (and
         | sometimes sql server). I have personally run into serious
         | resistance from these teams when I explicitly ask for postgres.
         | They try to warn me that oracle is the recommended option for
         | real production use cases because of the deep in-house
         | expertise and that I am pretty much on my own if I go with
         | postgres. Most people back off at that point.
        
           | derekp7 wrote:
           | I've seen this so much, and can empathize with them. When you
           | have a product that took you years to master, the value that
           | you bring to your employer is wrapped up in that product. So
           | it isn't so much that someone is a DBA, they are an Oracle
           | Database software specialist. You've learned all the quirks
           | so that when something goes south, you "have the answer". So
           | naturally you will have a number of reasons why another
           | product isn't as good.
           | 
           | I feel the same way with Unix/Linux. At one point I was told
           | that my organization may be migrating away from Linux, and
           | redeploy everything under Windows. The management layer
           | really couldn't understand that they would lose nearly every
           | Linux admin on staff (that happened to also have deep
           | understanding of their apps and infrastructure). "Why would
           | someone have a problem with switching platforms -- we'll
           | provide you the training" was their answer. Fortunately we
           | were able to come up with a number of technical (and cost
           | related) issues that the project was shot down.
        
             | lumost wrote:
             | At sufficiently large companies, deep in-house experience
             | with a given DB technology may be roughly equivalent to a
             | startup engineers deep experience on their companies
             | current monolith.
             | 
             | Companies with large and complex db installations often
             | need the complexity for various reasons that are difficult
             | to escape, even if you're working on a green field project.
        
           | matwood wrote:
           | PG over mysql is obvious IMO. PG over mssql, not so obvious.
           | People often forget the 'management system' part of RDBMS.
           | MSSQL provides an enormous amount of tooling in the typical
           | enterprise install. Analysis services, data tools, etc...
           | provide a lot of value beyond a data store.
           | 
           | Of course if you don't need any of these additional tools or
           | can't afford them, then yeah pg is a great choice.
        
             | runako wrote:
             | Cost is a really solid argument against MSSQL. Even at
             | Azure, MSSQL costs ~6x as much as the open-source
             | databases. For even relatively small workloads, it's not
             | hard for the MSSQL license to cost as much as an FTE.
             | 
             | Aside from the raw cost, the licensing model and cost
             | considerations can drive design decisions. In my
             | experience, most shops that use MSSQL do so because nobody
             | on staff has experience with other databases.
        
               | matwood wrote:
               | Sure, but we're talking about enterprises. Back when I
               | could walk down the hall to the datacenter, paying $30k
               | for the hardware and $60k for licenses was normal. Every
               | time I bought a new server I tried to make a case for pg
               | or mysql, but the cost to replace SSIS, SSAS, or SSRS
               | either with another product or to build a replacement was
               | always more.
        
               | tomnipotent wrote:
               | > Cost is a really solid argument against MSSQL
               | 
               | If you're a small 2-5 person team, sure. But once dev
               | payroll breaks $1M/yr, paying ~$100k for SQL Server
               | doesn't seem so bad anymore.
        
             | vladvasiliu wrote:
             | Are there no equivalents to these tools for PG?
             | 
             | I've only interacted with Analysis Services and Reporting
             | Services for maybe five minutes, but the impression I was
             | left with is that they're extremely clunky, even by Windows
             | standards. I also remember a weird situation with SSL
             | wildcard certificate configuration, where the interface
             | said the configuration wasn't applied, but it actually was.
             | 
             | My client subcontracts this to a supposedly "expert DBA"
             | shop, and they always seem to take ages to do what look
             | like simple things on the surface. (I rarely if ever
             | interact with them, so I don't know whether they're
             | actually competent or not.)
        
               | matwood wrote:
               | Tools like SSIS, SSAS, SSRS were hard to replace for less
               | money for a very long time. There are products out there
               | now, but they are not cheap either. I still think SSIS
               | was one of the easiest and most flexible to use ETL tools
               | out, and it was included with MSSQLs enterprise license.
        
           | Spivak wrote:
           | Or the same issue form the other side. It's damn near
           | impossible to hire a good DBA in some areas and so if you
           | find someone who has deep magics with MySQL then you go with
           | MySQL. In a huge complex app they're all good options except
           | for Mongo and so going with what your team knows is far more
           | productive.
        
         | ryandvm wrote:
         | As a contractor, I'm glad that MySQL is still around. It's an
         | extremely useful red flag for potential clients.
         | 
         | It is almost guaranteed that if a client is running on MySQL,
         | you can be certain their entire code base is going to be
         | plagued with less-than-best-practices. Not to be too harsh, but
         | MySQL's most prominent use case is for projects that start with
         | "let's just stand-up a DB real quick and we'll sort out the
         | hard stuff later".
        
         | pyrophane wrote:
         | Have used both extensively. I generally prefer MySQL because I
         | find it easier to manage for a few reasons:
         | 
         | 1. MySQL has a simpler permission model, so user management is
         | less of a headache.
         | 
         | 2. Connections are cheaper in MySQL so you don't have to use an
         | external connection pooler like pgbouncer.
         | 
         | 3. There's more/better documentation on MySQL performance
         | tuning, especially from Percona.
         | 
         | That's really it for me.
        
           | gkop wrote:
           | Permissions management in Postgres is indeed a pain.
        
             | xyzzy_plugh wrote:
             | I agree, but can you enumerate a bit more what specifically
             | is painful?
        
               | tpetry wrote:
               | Try the lock down e.g. a user to only allow reads. Not
               | easy, when testing if it's working you will see so many
               | ,,strange" behaviours e.g. you can still create tables in
               | public namespace, databases created before/after (dont
               | remember which one) your user are accessible etc...
               | 
               | Postgresql is following a blacklist access model which is
               | really hard to get right, a whitelist approach like mysql
               | would be much easier.
        
         | knodi wrote:
         | I think a lot of people just don't know the new capabilities of
         | PostgreSQL. PostgreSQL's competition isn't MySQL, its the new
         | hybrid DBs like CockroachDb.
         | 
         | DBAs and Engineers that know MySQL will always use MySQL. In
         | corps MySQL is a safe choice (sadly).
        
         | Macha wrote:
         | 1. MySQL is offered as the default "open source" database in
         | most discussions. This puts the onus on Postgres to people who
         | go "I need a better database", rather than people going "I need
         | a database" in a "Nobody got fired for choosing MySQL" way.
         | 
         | 2. Companies looking for enterprise support don't see anyone as
         | high profile as Microsoft, Oracle, and err, Oracle supporting
         | Postgres.
         | 
         | (Whether ongoing interaction with Oracle is a net positive is
         | of course debatable. At a previous company our only interaction
         | with Oracle was them being inflexible and expensive that
         | ultimate meant we had a Oracle DB on prem serving a AWS hosted
         | service because it would have cost too much to put it in AWS.
         | Note, this was many years ago, before AWS had a compatible
         | offering, and apparently Oracle even have loosened up a bit
         | here since.
        
         | sl1ck731 wrote:
         | Wordpress is probably the elephant in the room.
        
         | xmodem wrote:
         | At my current gig, we've been burned pretty badly by
         | scalability problems with MySQL, and the prevailing wisdom is
         | that new functionality and services that have to deal with data
         | at scale should be built on Cassandra. My cries of "we wouldn't
         | have this problem with Postgres" have mostly fallen on death
         | ears.
        
           | pizza234 wrote:
           | Can you elaborate on the specifics of the scalability
           | problems, and how the different databases do differently on
           | them? It's an interesting subject.
           | 
           | We're having scalability problems with our RDBMS, but it's
           | something RDBMSs in general don't solve.
        
             | xmodem wrote:
             | We have a few large (not large in the scheme of things, but
             | large for MySQL) tables that we can't add columns to
             | without locking the table for an extended period. In
             | Postgres this operation is instant no matter the size of
             | the table.
             | 
             | This not the only problem, but it is the most pernicious
        
               | Thaxll wrote:
               | MySQL 8 aleviate that problem, although it's not perfect
               | it's better than before:
               | https://mysqlserverteam.com/mysql-8-0-innodb-now-
               | supports-in...
        
               | pizza234 wrote:
               | I confirm the sibling post that adding a column is
               | instaneous on MySQL 8 (although there are limitation),
               | and point to the reference document:
               | https://dev.mysql.com/doc/refman/8.0/en/innodb-online-
               | ddl-op....
               | 
               | Outside the context of db comparisons, and in relation to
               | the specific case, if you don't have triggers/foreign
               | keys on a given MySQL table, Gh-ost1 solves the DDL
               | locking issues.
               | 
               | 1=https://github.com/github/gh-ost
        
               | tomnipotent wrote:
               | > adding a column is instaneous on MySQL 8
               | 
               | Has been since MySQL 5.6 (released Feb `13).
        
           | Thaxll wrote:
           | I don't see where PG would scale better than MySQL since
           | InnoDB has historically been more performant than PG.
        
             | Shish2k wrote:
             | In my cases I found that mysql was faster for "select *
             | from <table> where <unique key>=<blah>" -- but for anything
             | more complicated than that, postgres won (admittedly I
             | haven't checked recently - it was around 10 years ago that
             | my 500-concurrent-user site was melting mysql, so I
             | switched to postgres, which is now happy with 15,000
             | concurrent users - I'm mostly just responding to
             | "historically more performant")
        
             | kstrauser wrote:
             | Historically, MySQL has been better at single concurrency
             | setups, like your average Wordpress site whose main reader
             | is the person posting to it. PostgreSQL is usually much
             | better in high volume scenarios.
             | 
             | For instance, suppose you have a query that requires a full
             | table scan. In PostgreSQL, that query comes in and the DB
             | starts the scan. Now, a second such query comes in.
             | PostgreSQL notes "I'm on row 10,000" and continues running
             | one single scan, sending results to both queries. When it
             | reaches the end of the table, it marks the first query as
             | complete, then goes back to the beginning of the table and
             | starts scanning again, sending results to the second query
             | up until it reaches row 10,000. Now the second query has
             | seen every row in the table and it's finished.
             | 
             | Now imagine 100 such queries arrive. Rather than doing 100
             | full table scans, PostgreSQL satisfies all of them
             | concurrently, taking at most 2 full scans (assuming the
             | 100th queries joins in on the very last row of the first
             | scan).
             | 
             | PostgreSQL has a million such optimizations under its hood
             | that make it happily chug away even when it's getting
             | slammed. You can vertically scale a single-instance
             | PostgreSQL server a lot higher than many people would
             | believe.
        
               | tomnipotent wrote:
               | > PostgreSQL has a million such optimizations under its
               | hood that make it happily chug away even when it's
               | getting slammed
               | 
               | So does MySQL. Facebook, Google, and Percona have
               | contributed many upstream patches to harden and improve
               | MySQL over the years. MySQL also has much better
               | observability to find issues causing problems, from
               | index_statistics to hunting down individual queries
               | causing locks.
               | 
               | I agree that Postgres is by far the better engineered
               | product, but it's not necessarily the better RDBMS
               | product because of that. MySQL is battle tested in a way
               | that Postgres isn't (yet).
        
         | fire7000 wrote:
         | MySQL is a bit simpler even though pgadmin is a wonderful tool
         | for learning postgres advantages. For me the difference became
         | clear when needing to plot locations on a globe. PostGIS is
         | super helpful
        
           | sam_lowry_ wrote:
           | MySQL has way better UX for command line users. Postgres
           | can't get away from legacy Ingres design, with a postgres
           | user and a horrible command line client. Also,
           | database/schema/tables hierarchy is a penalty over
           | database/tables in MySQL.
        
             | mattashii wrote:
             | I fail to see how Postgres' hierarchy is any worse than
             | MySQL. You have one more layer of hierarchy which you do
             | not _need_ to consume, with the added feature of atomic
             | renaming any of the layers.
             | 
             | If I'd compare this to MySQL, where you must move tables
             | one-by-one to another schema (nay database) with the new
             | name to 'rename' your database [0], then I'm very happy
             | with postgres' hierarchy structure.
             | 
             | [0] That is, if you're even allowed to, because if you have
             | a trigger on your table, good luck renaming your database.
             | See https://dev.mysql.com/doc/refman/8.0/en/rename-
             | table.html
        
             | jasonpbecker wrote:
             | psql is easily one of my favorite tools. What makes the CLI
             | "horrible" in your mind?
             | 
             | Also, database/schema/tables is great when doing things
             | like multi-tenancy where you split customers by schema
             | (which also makes horizontal scaling super easy if needed).
        
               | syspec wrote:
               | I would say the commands are just not intuitive.
               | 
               | For example, when you type quit instead of quitting it
               | instead prints out that you must type a different command
               | to quit
        
               | fire7000 wrote:
               | One complaint is that it doesnt like camelCase
               | identifiers
        
               | mattashii wrote:
               | Last time I tested (literally seconds ago) this works.
               | 
               | All of \q, quit, and exit work fine starting psql 11?
        
               | syspec wrote:
               | Oh good to know!
        
               | majewsky wrote:
               | Ctrl-D works fine for me.
        
       | specialist wrote:
       | Tangentially. From the OC:
       | 
       | > _I don't have an MBA, but this to me is a clear case of The
       | Innovator's Dilemma. PostgreSQL protocol v3 is the incumbent, and
       | protocol v4 and /or other protocols like HTTP are the potential
       | disruptive innovators._
       | 
       | I have no idea what Christensen means by "disruptive technology".
       | https://en.wikipedia.org/wiki/Disruptive_innovation
       | 
       | The fifth qualifier "New firm's business model differs
       | significantly from incumbent" seems important.
       | 
       | The rest feel like Just So stories. Especially "Originate in low-
       | end (less demanding customers) or new market (where none existed)
       | footholds".
       | 
       | I think time has shown Peter Drucker to be more right. First
       | target affluent customers and then ride the cost curve down
       | towards market success.
       | 
       | I just reread Innovator's Dilemma, and searched the rest. Nothing
       | about cost curves.
       | 
       | I've been trying to think of how "disruption" would apply to
       | Tesla vehicles and Apple Silicon. Neither products came in as
       | "toys".
       | 
       | Rather, I think both initially targeted very high end niches
       | (novel use cases), and the underlying enabling technology was
       | just starting their cost trajectories, whereas the incumbent mass
       | market products were at the end of their trajectories. Plough
       | metric tons of cash into R&D and wait for the new to overtake the
       | old.
       | 
       | --
       | 
       | Back to AWS Babelfish.
       | 
       | AWS adds TDS and T-SQL compatibility to steal business from
       | Microsoft Azure. Just some more bullet list items for middle
       | management purchase bots to check off.
       | 
       | It'll surely improve, but switchover costs for non-trivial
       | projects would still be pretty high. Back when I was warehousing
       | medical records on both MSSQL and Oracle, all the hard work was
       | tweaking the physical design, eg codesigning the indices and
       | queries, to make stuff performant. I'm sure that's still true.
       | 
       | I think adding these features to Postgres is good for everyone
       | but Microsoft.
       | 
       | --
       | 
       | I guess I object to the common use of "disruption". As though
       | there's an element of surprise.
       | 
       | The meaning of "disruptive innovation" wonderfully Agile.
       | 
       | I'd suggest the OP framed AWS Babelfish in terms of competitive
       | threats (aka insurmountable opportunities). And maybe predict
       | some unforeseen consequences.
        
       ___________________________________________________________________
       (page generated 2021-02-12 23:00 UTC)