Yishan Wong erklärt auf Quora anhand des Beispiels einer in alle Dimensionen expandierenden Bibliothek, warum Skalierung von Datenbanken und damit also Webdiensten im Allgemeinen ein sehr komplexes Problem ist.
Ein Auszug aus der sehr langen, sehr lesenswerten Antwort:
Well, so the books on the shelf are sorted, and the shelves are generally full. Which means that when the runner inserts a new book into the correct position, they have to push a book off the end and onto the next shelf. But that book pushes yet another book on the other end off and onto the next shelf, and so on. Eventually you get to a shelf that has some gaps in it, so you don’t have to push a book off. But the whole process is annoying and takes some time and moreover, you don’t want other library patrons or runners taking books off the same shelf or adding new ones at the same time! So when you add a book you have to “lock” the whole shelf, and all the other shelves around it, in case you need to push books from one shelf to the next, and books on that shelf to the next, etc.
This locking creates huge traffic problems, because now instead of being able to look for books while standing right next to each other, multiple library patrons have to wait outside a shelf area while a runner is inserting a new book and shifting books to make room for it. If there are a lot of runners, this will be constantly happening, and lots of library patrons will be waiting on a single runner and even worse, sometimes a library runner will be waiting on another library runner. In real life new books don’t come out as often, but if you are running a website where people are posting a lot of things all at once, you essentially have runners inserting new books into the library all the time and you’ll run into the problems described above.