The Reddit guys really, really dislike doing schema updates at their scale. They were getting very slow, and their replication setup was not happy about being told to, say, index a new column while people are doing lots of reads and writes at the same time. So they eventually said “to hell with it; we’ll just make a document database, with no schema, and handle consistency problems by not handling them. Man, do not even ask us about joins.” This seems to have made them much happier than the ‘better’ database design they used to use, which is important when you’re a too-small team dealing with terrifying scaling issues, and you know that a lot of people are watching you because they are the ones causing the scaling issues.
This design sure does make writing SQL queries a pain, though, and it’s less than ideal for a site like Less Wrong, which doesn’t do much changing the code.
The Reddit guys really, really dislike doing schema updates at their scale. They were getting very slow, and their replication setup was not happy about being told to, say, index a new column while people are doing lots of reads and writes at the same time. So they eventually said “to hell with it; we’ll just make a document database, with no schema, and handle consistency problems by not handling them. Man, do not even ask us about joins.” This seems to have made them much happier than the ‘better’ database design they used to use, which is important when you’re a too-small team dealing with terrifying scaling issues, and you know that a lot of people are watching you because they are the ones causing the scaling issues.
This design sure does make writing SQL queries a pain, though, and it’s less than ideal for a site like Less Wrong, which doesn’t do much changing the code.