Details
-
Sub-task
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
None
-
None
-
Reviewed
-
Improves read concurrency by changing HFileBlock#readAtOffset from synchronized to reentrant lock; will have contending scanners fall back to preading rather than synchronized seek+read. Keeps all cores busy rather than just the one.
Description
HBase grinds to a halt when many threads scan along the same set of blocks and neither read short circuit is nor block caching is enabled for the dfs client ... disabling the block cache makes sense on very large scans.
It turns out that synchronizing in istream in HFileBlock.readAtOffset is the culprit.
Attachments
Attachments
Issue Links
- relates to
-
HBASE-5898 Consider double-checked locking for block cache lock
- Closed