Earlier quoted context omitted.
Can you expand on what you mean by a single table with manual indexes? How does a frequently used table with indexes not resemble an RDBMS?
the secondary indexes are saved in a different table and (I can only assume) the application layer (or one layer above mySql) is responsible for keeping that table up to date. If you use only 1 table, then it's by no means "relational", so I don't see why you'll need a database system designed from start to finish to support a relational model.
Thoughts on Uber’s List of Postgres Limitations
61–70 of 108 posts
Re: Thoughts on Uber’s List of Postgres Limitations
#62Earlier quoted context omitted.
> static page cache behind cdn I wouldn't want my page behind a CDN. CDNs make users much more trackable across sites. My point isn't that CDNs are bad for everyone. My point is, once more, that most questions are not as simple as they may appear.
> CDNs make users much more trackable across sites. How does has CDN do this in a way that a "regular" web deployment wouldn't?
Re: Thoughts on Uber’s List of Postgres Limitations
#63Earlier quoted context omitted.
> Which is really just what every company at these scales do No they aren't. You need to understand that databases are being used in a whole range of different ways than you think. Batch/streaming analytics are typically done with HDFS, Cassandra, HBase, MongoDB etc. Event aggregation often with a time series database like Druid, InfluxDB etc. Web API serving layers are still the domain of lightweight SQL databases l…
While I mostly agree with your comment, some NoSQL databases are not suitable for analytics. Indeed, they are terrible at them. Unstructured information is, surprise, unstructured, which means it is harder to query / analyze, since the structure needs to be fully scanned and parsed to perform the computation. I have seen many cases where MongoDB is used for this and suffers from really bad performance.
Do a simple POC where you ram 1 million rows in a MongoDB and then make a webapp to do some basic analytics. Look, it works and get responses within a second. Cool!
Then real data comes in at 12 billion rows and your analytics take 3 hours to run.
So you try to do the sharding thing, and realize that it works for a while, except now every analytics query needs to hit every shard....
Re: Thoughts on Uber’s List of Postgres Limitations
#64Earlier quoted context omitted.
the secondary indexes are saved in a different table and (I can only assume) the application layer (or one layer above mySql) is responsible for keeping that table up to date. If you use only 1 table, then it's by no means "relational", so I don't see why you'll need a database system designed from start to finish to support a relational model.
> If you use only 1 table, then it's by no means "relational" [...] FYI The term "relational" in "relational database" does not refer to the relation between tables but to the mathematical concept of a relation which is some set of tuples ie a single table.
But I think that's a mute point, I doubt they kept any part of the relational model inside their schemaless database.
Re: Thoughts on Uber’s List of Postgres Limitations
#65Earlier quoted context omitted.
the secondary indexes are saved in a different table and (I can only assume) the application layer (or one layer above mySql) is responsible for keeping that table up to date. If you use only 1 table, then it's by no means "relational", so I don't see why you'll need a database system designed from start to finish to support a relational model.
The "relationalness" is/was not really important here. It's all about MVCC and how storage engines handle it. Postgres is lacking in these scenarios, whereas a particular fine tuned version (or fork) of InnoDB (or MyRocks or whatever they end up chosing) handles this better. See Facebook's "mysql-5.6" branch, that has hundreds of patches piled on to support especially these taxing workloads.
So MVCC also has almost zero bearing on what they are doing.
Re: Thoughts on Uber’s List of Postgres Limitations
#66Earlier quoted context omitted.
That second point is a really unnecessarily belittling straw man, and I think such comments are counterproductive to the discussion.
I disagree. When you put yourself on stage to criticize another, you open yourself up to criticism. And in this case, his little blog didn't scale, and it was rightfully pointed out. It's not terribly nice, but the comment is true, and relevant.
Re: Thoughts on Uber’s List of Postgres Limitations
#67I think its worth mentioning again that what Uber ended up using has no resemblence to an RDBMS (single table, manual indexes). So regardless of whether their complaints are justified or not, it should not be taken as an endorsment of mySQL over postgres, but rather of an endorsement of NoSQL over RDBMS . Which is really just what every company at these scales do (except for google and f5 if whitepapers are to be con…
If it was just about NoSQL vs RDBMS they could have used Postgres as a key-value store instead of mySQL. So yes they absolutely did endorse mySQL over Postgres. Also, what is the scale of Uber that you think is unsuitable for RDBMS? Uber does a million rides per day but these rides are very predictably local. I don't know enough to make any firm claims here but at first sight this doesn't look like the sort of scale…
Re: Thoughts on Uber’s List of Postgres Limitations
#68To me, the real news is that Uber ($50B company) didn't bother to engage the postgres community before migrating - they'd have jumped to support Uber.
Re: Thoughts on Uber’s List of Postgres Limitations
#69Re: Thoughts on Uber’s List of Postgres Limitations
#70Earlier quoted context omitted.
> If you use only 1 table, then it's by no means "relational" [...] FYI The term "relational" in "relational database" does not refer to the relation between tables but to the mathematical concept of a relation which is some set of tuples ie a single table.
Well, the relational model does not describe or contain a notion of table really, so I guess you could model it in any way you want, even within a single table. But I think that's a mute point, I doubt they kept any part of the relational model inside their schemaless database.