Thanks, this was really informativ :)
Bigtable uses both. First it splits row ranges based on size. It also has the
ability to detect hot row ranges and will split a region if it becomes too hot.
This is tricky because you don't want to have a hot range split off and then
have it drop below the too hot threshold forcing a range merge. If you get into
this situation, you could end up with oscillation of split - merge - split -
etc.
Ok, i understand. So are there any experiences, if this HBase behavior
is actually adequate for productive enviroments?
HBase 0.2.0 provides simple load balancing. Currently, it only balances the
number of regions per server. More sophisticated balancing is planned for the
future (either 0.3.0 or 0.4.0). The advanced balancing will consider the load
on regions as well.
Allowing multiple servers to serve the same region is only practical if the
region is read-only. Otherwise you run into distributed cache coherency
problems.
So the assumption with this is, that there's no region which is so hot,
that one single server isn't able to handle it? (if also read and write
is desired)
No. Each region server keeps its own redo log. When a region server dies, the
master splits its log into one log for each region the server was serving,
before the master reassigns the regions. When the regions are reassigned, the
first thing the region server does is apply the log for that region, before
announcing that the region is back on-line.
Probably i have to tune my knowledge about DFS - actually i don't
understand how it is possible to split up the region server's log (for
recovery) after it has died?!
Can you please explain, why someone should use HBase for horizontal
scaling instead of a relational database? One reason for me would be,
that i don't have to implement the sharding logic myself. Are there other?
I often read, that in something like Bigtable you have to give up some
expectations from relational databases, but you gain infinite scaling
possibilities. Are there some sources, which expectations these are?