Because Master usually<javascript:void(0)> uses little memory. So its memory is
4G.
DFS block is 256M and hbase.regionserver.maxlogs is 32. One region server can
save max 8G Hlog.
In my performance cluster(0.90.3), The Hmaster memory from 100 M up to 4G when
one region server crashed.
I dug it and found the flow control does not work when write thread is normal.
// If we crossed the chunk threshold, wait for more space to be available
synchronized (dataAvailable) {
while (totalBuffered > maxHeapUsage && thrown == null) {
LOG.debug("Used " + totalBuffered + " bytes of buffered edits,
waiting for IO threads...");
dataAvailable.wait(3000);
}
dataAvailable.notifyAll();
}
If the code is below. It seems better.
// If we crossed the chunk threshold, wait for more space to be available
synchronized (dataAvailable) {
while (totalBuffered > maxHeapUsage) {
LOG.debug("Used " + totalBuffered + " bytes of buffered edits,
waiting for IO threads...");
dataAvailable.wait(3000);
}
dataAvailable.notifyAll();
}