I hear the "master design is bad" argument all the time.
From many angles it is a bad design, but from other's it is not. First off, it is simpler and easier grok and check for bugs. Debugging a running system is easier.
It is also easier to implement different distribution strategies and failure/placementgroups, because that algorithms is centralized.
If things go wrong it is easier to track where your data is.
No gossip rings to converge. And it is easier to grow the cluster.
I hear the "master design is bad" argument all the time.
From many angles it is a bad design, but from other's it is not. First off, it is simpler and easier grok and check for bugs. Debugging a running system is easier.
It is also easier to implement different distribution strategies and failure/placementgroups, because that algorithms is centralized. If things go wrong it is easier to track where your data is.
No gossip rings to converge. And it is easier to grow the cluster.
/HBase committer here.