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

Anoop Sam John commented on HBASE-21874:
----------------------------------------

Good summary [~wchevreuil]..
bq.So theoretically, we can already do this with the current FileMmapEngine, no?
Yes it is. As Ram said, the difference will be the perf.  Remember the off 
heaping read path work we had (HBASE-11425)..  That was when we have BC over 
DRAM (off heap).. Before this jira, every random read would hit one or more 
blocks in cache and 1st copy to on heap area and extract  the row cell(s) and 
return back to client.  This jira improvement increased the avg throughput by 
25% (As per the Alibaba production usage).   There the impact is mostly because 
of GC.  The copy happens from off heap (DRAM) to on heap(DRAM)..  
In case if DCPMM cache in use in mmap engine mode and this this copy to on heap 
happens (We have to do that), the copy src is DCPMM.  Every random row read 
would result in 1+ blocks read.  Here it is not just GC impact but also the 
higher latency device impact also.   The difference in performance is going to 
be not 25% but even more.
The new IOEngine is a mix of mmap engine and off heap where the caching buffers 
are created using mmap calls and the reads happens with out copy to on heap but 
direct from that cached area.  

bq.Thus, main goal of setting "Direct Mode" here for now is not to use the 
persistence capabilities (although it's probably already working)
Yes. The persistence will work correctly even now.  Because as explained above 
the sync() API is doing the file channel write to device. So for persistent BC 
also, the pmem library usage is NOT required.  Only thing is we never tested 
this and thought this can be a second step.  I think not many use the 
persistent bucket cache even if cache is on file.  If any one feels the other 
way, we can prioritize this also for the FT and perf tests.

> Bucket cache on Persistent memory
> ---------------------------------
>
>                 Key: HBASE-21874
>                 URL: https://issues.apache.org/jira/browse/HBASE-21874
>             Project: HBase
>          Issue Type: New Feature
>          Components: BucketCache
>    Affects Versions: 3.0.0
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Major
>             Fix For: 3.0.0
>
>         Attachments: HBASE-21874.patch, HBASE-21874.patch, 
> HBASE-21874_V2.patch, Pmem_BC.png
>
>
> Non volatile persistent memory devices are byte addressable like DRAM (for 
> eg. Intel DCPMM). Bucket cache implementation can take advantage of this new 
> memory type and can make use of the existing offheap data structures to serve 
> data directly from this memory area without having to bring the data to 
> onheap.
> The patch is a new IOEngine implementation that works with the persistent 
> memory.
> Note : Here we don't make use of the persistence nature of the device and 
> just make use of the big memory it provides.
> Performance numbers to follow. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to