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 ...

Get Building on Multi-Model Databases now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.