[ 
https://issues.apache.org/jira/browse/HBASE-15971?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15326895#comment-15326895
 ] 

Hiroshi Ikeda commented on HBASE-15971:
---------------------------------------

There seems excessive contention when the reader threads put requests into the 
blocking queue. Even LinkedBlockingQueue is not optimized for simultaneous puts 
and for simultaneous takes.

For the FIFO queue, replacing LinkedBlockingQueue with LinkedTransferQueue is 
the easiest way if you uses Java 7 or later, or you can create a pseudo one 
using semaphore and ConcurrentLinkedQueue. For the priority queue you can 
create a pseudo one using semaphore and ConcurrentSkipListMap. 

The "pseudo" means it seems difficult to completely implement the contract of 
the blocking queue interface, and you will cheat by throwing AssertionError or 
something for some methods. In actual, complete blocking queues are not 
required for the RPC handlers, but introducing a new interface is followed by 
non-trivial changes (and I was exhausted in HBASE-14331 :P)


> Regression: Random Read/WorkloadC slower in 1.x than 0.98
> ---------------------------------------------------------
>
>                 Key: HBASE-15971
>                 URL: https://issues.apache.org/jira/browse/HBASE-15971
>             Project: HBase
>          Issue Type: Sub-task
>          Components: rpc
>            Reporter: stack
>            Assignee: stack
>            Priority: Critical
>         Attachments: 098.hits.png, 098.png, HBASE-15971.branch-1.001.patch, 
> Screen Shot 2016-06-10 at 5.08.24 PM.png, Screen Shot 2016-06-10 at 5.08.26 
> PM.png, branch-1.hits.png, branch-1.png, 
> flight_recording_10172402220203_28.branch-1.jfr, 
> flight_recording_10172402220203_29.09820.0.98.20.jfr, handlers.fp.png, 
> hits.fp.png, hits.patched1.0.vs.unpatched1.0.vs.098.png, run_ycsb.sh
>
>
> branch-1 is slower than 0.98 doing YCSB random read/workloadC. It seems to be 
> doing about 1/2 the throughput of 0.98.
> In branch-1, we have low handler occupancy compared to 0.98. Hacking in 
> reader thread occupancy metric, is about the same in both. In parent issue, 
> hacking out the scheduler, I am able to get branch-1 to go 3x faster so will 
> dig in here.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to