Chapter 6. Scalability and Enterprise Considerations
Scalability
There are two basic approaches to scaling a database to large datasets. One is to “scale up” by increasing the power of the server on which the database runs, and the other is to “scale out” by adding additional servers that somehow work together to increase overall capacity.
NoSQL databases scale horizontally—or scale out—and multi-model should preserve this capability. A scale-out database is partitioned across multiple nodes, typically running on commodity hardware. It’s a divide-and-conquer-approach to data management. Data is distributed across many nodes, but queried as one unit, using one set of indexes, one integrated query, and one query optimizer.
Think of it this way: a standard deck of cards has 52 cards in it. If I hand that deck to my friend Joey Scaleup and ask him to find me the two of hearts, in the worst-case scenario, Joey must flip through all 52 cards before finding the card I asked for. But if I take that same deck and hand a quarter of it each to my friends Chris, Mary, Wayne, and Colleen, in the worst case, one of them has to rifle through only 13 cards before finding the same card. I get the result in a quarter of the time. The benefit of distributing that deck is similar to how scale-out systems work. Each person holding a quarter of the deck has no idea what cards the other person is holding (shared-nothing architecture). A coordinator broadcasts the request, and each person executes the ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access