hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-13420) RegionEnvironment.offerExecutionLatency Blocks Threads under Heavy Load
Date Thu, 09 Apr 2015 17:48:12 GMT

     [ https://issues.apache.org/jira/browse/HBASE-13420?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Andrew Purtell updated HBASE-13420:
    Attachment: hbase-13420.tar.gz

So what do we think about this? Leave as is or try the BoundedConcurrentLinkedQueue alternative?
According to my experiments it will have better behavior under actual conditions, but ConcurrentLinkedQueue
does have what looks like an interesting worst case under high concurrency. I've attached
the JMH harness used for the test if you'd like to reproduce. Maybe your findings are different?
If so that would be interesting. (I used an EC2 c3.4xlarge for running the test, FWIW)

I could also look for a better concurrent structure or roll my own for this use case (bounded
sample reservoir at high concurrency). That might be overengineering the problem here though.

> RegionEnvironment.offerExecutionLatency Blocks Threads under Heavy Load
> -----------------------------------------------------------------------
>                 Key: HBASE-13420
>                 URL: https://issues.apache.org/jira/browse/HBASE-13420
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: John Leach
>            Assignee: Andrew Purtell
>         Attachments: HBASE-13420.patch, HBASE-13420.txt, hbase-13420.tar.gz, offerExecutionLatency.tiff
>   Original Estimate: 3h
>  Remaining Estimate: 3h
> The ArrayBlockingQueue blocks threads for 20s during a performance run focusing on creating
numerous small scans.  
> I see a buffer size of (100)
>     private final BlockingQueue<Long> coprocessorTimeNanos = new ArrayBlockingQueue<Long>(
> and then I see a drain coming from
>          MetricsRegionWrapperImpl with 45 second executor
>          HRegionMetricsWrapperRunable
>          RegionCoprocessorHost#getCoprocessorExecutionStatistics()   
>          RegionCoprocessorHost#getExecutionLatenciesNanos()
> Am I missing something?

This message was sent by Atlassian JIRA

View raw message