[
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)