OK, I got it. I've understood the Q2 by your help, thanks!


Seems like I have to use some other way to draw my images, Here is the
updated version Q1:


Q1

I found that HFileScannerImpl.getCachedBlock(...) get block from
BlockCache. This CachedBlock is used by StoreFileScanner. Is that mean the
read model like:

*Model A*

When a read request come

   1. Read 1st Store:
   a. read BlockCache
   b. read HFile
   2. Read 2nd Store:
   a. read BlockCache
   b. read HFile
   3. ......
   4. Read Memstore



Or there is only one BlockCache and all the read request will go through it
first, like:

*Model B:*

When a read request come

   1. Read BlockCache
   2. Read 1st Store -> read HFIle
   3. Read 2nd Store -> read HFile
   4. ....
   5. Read Memstore


​​

Thanks,
Alex



2018-05-01 20:04 GMT-07:00 Josh Elser <els...@apache.org>:

> FYI, the mailing list strips images.
>
> There is only one BlockCache per RS. Not sure if that answers your Q1 in
> entirety though.
>
> Q2. The "Block" in "BlockCache" are the blocks that make up the HBase
> HFiles in HDFS. Data in the Memstore does not yet exist in HFiles on HDFS.
> Additionally, Memstore is already in memory; no need to have a different
> cache to accomplish the same thing :)
>
> On 5/1/18 9:25 PM, Xi Yang wrote:
>
>> Sorry to bother you guys. May I ask 2 questions about HBase?
>>
>> Q1
>>
>> I found that |HFileScannerImpl.getCachedBlock(...)| get block from
>> BlockCache. This CachedBlock is used by |StoreFileScanner|. Is that mean
>> the read model like:
>>
>> *Model A*
>>
>> Or there is only one BlockCache and all the read request will go through
>> it first, like:
>>
>> *Model B:*
>>
>> ​
>> Q2
>> If the data been read from Memstore, will it be put in BlockCache to
>> accelerate the read process next time?
>>
>> ​
>> Thanks,
>> Alex
>>
>> ​
>>
>

Reply via email to