[hbase] Under extreme load, regions become extremely large and eventually cause
region servers to become unresponsive
---------------------------------------------------------------------------------------------------------------------
Key: HADOOP-2731
URL: https://issues.apache.org/jira/browse/HADOOP-2731
Project: Hadoop Core
Issue Type: Bug
Components: contrib/hbase
Reporter: Bryan Duxbury
When attempting to write to HBase as fast as possible, HBase accepts puts at a
reasonably high rate for a while, and then the rate begins to drop off,
ultimately culminating in exceptions reaching client code. In my testing, I was
able to write about 370 10KB records a second to HBase until I reach around 1
million rows written. At that point, a moderate to large number of exceptions -
NotServingRegionException, WrongRegionException, region offline, etc - begin
reaching the client code. This appears to be because the retry-and-wait logic
in HTable runs out of retries and fails.
Looking at mapfiles for the regions from the command line shows that some of
the mapfiles are between 1 and 2 GB in size, much more than the stated file
size limit. Talking with Stack, one possible explanation for this is that the
RegionServer is not choosing to compact files often enough, leading to many
small mapfiles, which in turn leads to a few overlarge mapfiles. Then, when the
time comes to do a split or "major" compaction, it takes an unexpectedly long
time to complete these operations. This translates into errors for the client
application.
If I back off the import process and give the cluster some quiet time, some
splits and compactions clearly do take place, because the number of regions go
up and the number of mapfiles/region goes down. I can then begin writing again
in earnest for a short period of time until the problem begins again.
Both Marc Harris and myself have seen this behavior.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.