3 ms·
"First, scaling horizontally has little to do with the database engine itself - creating a transparent, consistent hash function is the easiest part." That is
by ericflo 16y ago
"First, scaling horizontally has little to do with the database engine itself - creating a transparent, consistent hash function is the easiest part."
That is just so incorrect that it's hard to take the rest of the post seriously.
What happens when you want to add a node to your cluster? What happens when a node goes down? What happens when you drop some packets between nodes? When one node has an unbalanced number of keys?
Then, answering each of these questions brings with it many more questions. For example, if the answer to "what happens when your node does down" is to replicate some data to another node, then how do you deal with inconsistencies between different replicas of the data? What happens if the node you try to replicate to goes down? What if the node you try to replicate to has a different idea of what that data should be?
If a database is to be truly horizontally scalable, it will have an answer for all of these questions. Which has a lot to do with "the database engine itself."
- FooBarWidget 16y agoReplication is for redundancy, not horizontal scalability. Unless you mean scaling reads, but replication won't scale your writes. For scaling writes you need sharding but not replication.