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

Guanghao Zhang commented on HBASE-15885:
----------------------------------------

One method which throw exception is getReferencedFileStatus() in 
computeHDFSBlocksDistributionInternal. But it has same code with open(...) 
method. So if  computeHDFSBlocksDistribution throws exception, the code of get 
stauts in open(...) method will throw exception too.

The other method which throw exception is 
FileSystem.getFileBlockLocations(...). Take a look at the code in hadoop 2.4, 
it only throw IllegalArgumentException("Invalid start or len parameter").

> Compute StoreFile HDFS Blocks Distribution when needed
> ------------------------------------------------------
>
>                 Key: HBASE-15885
>                 URL: https://issues.apache.org/jira/browse/HBASE-15885
>             Project: HBase
>          Issue Type: Improvement
>          Components: HFile
>    Affects Versions: 2.0.0
>            Reporter: Guanghao Zhang
>         Attachments: HBASE-15885.patch
>
>
> Now when open a StoreFileReader, it always need to compute HDFS blocks 
> distribution. But when balance a region, it will increase the region not 
> serving time. Because it need first close region on rs A, then open it on rs 
> B. When close region, it first preFlush, then flush the new update to a new 
> store file. The new store file will first be flushed to tmp directory, then 
> move it to column family directory. These need open StoreFileReader twice 
> which means it need compute HDFS blocks distribution twice. When open region 
> on rs B, it need open StoreFileReader and compute HDFS blocks distribution 
> too. So when balance a region, it need compute HDFS blocks distribution three 
> times for per new store file. This will increase the region not serving time 
> and we don't need compute HDFS blocks distribution when close a region.
> The related three methods in HStore.
> 1. validateStoreFile(...)
> 2. commitFile(...)
> 3. openStoreFiles(...)



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

Reply via email to