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

ramkrishna.s.vasudevan updated HBASE-13082:
-------------------------------------------
    Attachment: HBASE-13082_12.patch

Updated patch for QA.  This has all the mentioned things in the doc. One 
feedback not yet done here is that the fileStatus  - DISCARDED and ACTIVE is 
set with the REader in the StoreFile. This is because the inner class Reader in 
store file is designed in such a way that even if we want the scanner 
associated with this store file we need to operate on this Reader obejct rather 
than store file. So it is better the file status remains there I thought. Any 
way feed back welcome!!. will post the patch in RB too.
With PE tool and with 10G data and all in cache i could see around 70 to 90 
secs difference in completion time on an average. (purely measuring the server 
side gain).
{code}
./hbase org.apache.hadoop.hbase.PerformanceEvaluation --nomapred --oneCon=true  
--caching=5000 --filterAll=true --rows=10000  scanRange10000 50
{code}



> Coarsen StoreScanner locks to RegionScanner
> -------------------------------------------
>
>                 Key: HBASE-13082
>                 URL: https://issues.apache.org/jira/browse/HBASE-13082
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Lars Hofhansl
>            Assignee: ramkrishna.s.vasudevan
>         Attachments: 13082-test.txt, 13082-v2.txt, 13082-v3.txt, 
> 13082-v4.txt, 13082.txt, 13082.txt, HBASE-13082.pdf, HBASE-13082_1.pdf, 
> HBASE-13082_12.patch, HBASE-13082_1_WIP.patch, HBASE-13082_2.pdf, 
> HBASE-13082_2_WIP.patch, HBASE-13082_3.patch, HBASE-13082_4.patch, 
> HBASE-13082_9.patch, HBASE-13082_9.patch, gc.png, gc.png, gc.png, hits.png, 
> next.png, next.png
>
>
> Continuing where HBASE-10015 left of.
> We can avoid locking (and memory fencing) inside StoreScanner by deferring to 
> the lock already held by the RegionScanner.
> In tests this shows quite a scan improvement and reduced CPU (the fences make 
> the cores wait for memory fetches).
> There are some drawbacks too:
> * All calls to RegionScanner need to be remain synchronized
> * Implementors of coprocessors need to be diligent in following the locking 
> contract. For example Phoenix does not lock RegionScanner.nextRaw() and 
> required in the documentation (not picking on Phoenix, this one is my fault 
> as I told them it's OK)
> * possible starving of flushes and compaction with heavy read load. 
> RegionScanner operations would keep getting the locks and the 
> flushes/compactions would not be able finalize the set of files.
> I'll have a patch soon.



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

Reply via email to