If only programmers could be polite to each other occasionally.
If only programmers could be polite to each other occasionally.
https://www.yumpu.com/en/document/view/53683323/migrating-ub...
As somebody who works on postgres a good chunk of his time, I agree. I preferred the initial type of responses (where we just looked into the valid complaints and disregarded other angles). But everyone can speak about something like this, and that's good too.
That difference is more substantial than it may sound. "An ounce of prevention is worth a pound of cure", as they say. While PostgreSQL may do things in a way that require a little extra annoyance up front, they're usually that way to prevent disastrous data integrity issues further down the line.
What can you say when someone says things like "We prefer logical replication because it uses less bandwidth"? There are extremely good justifications for the high bandwidth cost of real (bit-level) replication. Logical replication has uses but IMO it should be applied cautiously and sparingly.
I felt all of the ASCII shrugs were justified. They signify a tradeoff that Uber made. My personal feeling is that most of those tradeoffs were bad, but what can you do. The slides shrug because you can't argue. If that's the problemset that their organization prefers to deal with, more power to them.
[1] For example, write amplification.
also I loved some talks about instagram. (https://de.slideshare.net/iammutex/scaling-instagram) Scaling: replacing all components of a car while driving it at 100mph (And the end slides 150+ are awesome, too). And while they use PostgreSQL and talk about everything, they also did engineering quite right and prolly that's the problem of Uber. They tried to get to big to fast and know everything burns (not just their tech).
Would you mind taking the time to point out what phrases or slides gave you the impression that this was written from the position that "Uber engineers had bad experiences with postgres because they are morons"? I know that different people can get different impressions of the same material, so it would be helpful for me to understand better what gave you that impression.
There are a couple of comments like:
> I assume the company the size of Uber can figure it out. C’mon
> But... c’mon. Uber?
Both of these I think reflect the idea that it's likely Uber would have been able to continue to use Postgres if they were interested in fixing the issues they had with the system, rather than had additional, other motivations for doing so, the belief being that the Postgres-specific issues they list are likely soluble if they had wanted to put in the effort. They're a large enough organization that they should have had the resources to do so.
That doesn't mean that their decision to move off of Postgres for those other reasons wasn't the right thing to do: just that there's not enough information there for us to really understand the decision process. From a Postgres community standpoint, it's important to make sure that they have quality answers to the issues publicly raised by very visible companies such as Uber. Many people will read about Uber's experience with Postgres, and it makes sense for the Postgres community to be clear what can be done about them.
Your point about "postgres is hard to use correctly" I think is one of those things that it's hard to use a lot of the systems out there—not just Postgres—at the scale that Uber or some of the other large installations do. That's when you really become aware of where the stresses put on the systems start to show and what you need to be aware of to tune and set them up correctly for your use case.
Overall, I think 'gdulli's response (https://news.ycombinator.com/item?id=14223170) is largely on point.
Like I said above, if you'd point out which parts struck you as particularly unfair, I know I'd benefit from it to hear more from your perspective.
I didn't say that postgres is difficult to use. I said that the slides give that impression.
The first shrug emoji was after the 9.2 data corruption bug. I took that one to mean "Yup. What are we going to do? There was a bug, and we fixed it as quickly as we correctly could. Incredibly regrettable, but that kind of stuff is going to happen." There are bugs in software. Knowing the Postgres developer community, they take correctness very seriously.
The second one is after the Uber quote which describes their tolerance for developer's holding open transactions and blocking I/O operations, which they do so from a position of inexperience because they're not database experts. I understood this one to mean "If you're going to use handle transactions in this manner, that's not something Postgres itself is going to be able to help you with."
The third was in response to the Uber quote regarding Uber application bugs which resulted in open idle connections. I took this shrug to mean that if this is an issue, it likely can (and should) be fixed in the Uber applications. It's not really a Postgres issue.
The fourth (and last) was in response to the lack of quantitative information regarding their Postgres issues (which makes honest, in-depth third-party investigation difficult), Uber's decision to go schema-less, and that MySQL is more tolerant of the bugs in Uber software. I took this one again to mean that there's little that Postgres itself is responsible for, or can do anything about here.
A question I always like to ask myself when someone has issues with something a third party is responsible for is what is a realistic and reasonable response from the third party. That often makes me realize that there's little they can be expected to do or are really responsible for, at least for some of the issues. For the most part, I think these shrugs reflect that.
If the shrug emojis were removed, would it be okay? Anything else?
You're welcome to come up with your own theories of what the emojis mean, but I don't see any point in doing so.
https://www.percona.com/live/17/sessions/postgresql-response...
We're missing everything that was said by the presenter. I would strongly suspect that the presenter said something about the slide.
I think with very little effort it's easy to interpret the shrugs as I did above, and there's little if any additional information that needs to be address along with the final shrug. I wouldn't have presented it this way, but I don't see any malevolence or negative intent on the part of the author.
IMO, the shrug emoji is fine. If it were the only response, that'd be a problem but the author gives a proper response in the following slide: it was a short lived bug, and it's not like MySQL is objectively better. I can think of a few MySQL problems I've run into, like fixing a data loss bug in the rollback code by refusing transactions larger than 10 percent of the rollback buffer until a real fix can be published, making backups, restores and migrations pretty much impossible.
But the tl;dr here is that psql will continue to get a black eye in the tech community as long as slony exists and is useful.
> What's the motivation to lie?
You're right. Uber didn't have to publish anything. In all of the discussion regarding, I don't think anyone has tried to imply that Uber is lying about their reasons for switching. If that's how you read what I wrote above, that was not my intent (indeed, I tried very hard to make clear that isn't the case.) That's different from the position that Uber, given their resources, likely could have gotten Postgres to work in their environment if purely the Postgres issues they described in the article were why they chose to use MySQL.
Again, I don't think anyone is accusing Uber of lying about or obscuring the reasons they switched from PostgreSQL to MySQL. At least I know I'm not.