[ https://issues.apache.org/jira/browse/HBASE-14940?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15049943#comment-15049943 ]
Hiroshi Ikeda commented on HBASE-14940: --------------------------------------- There are risks (from the beginning) and if I were I might rewrite whole classes. As for aligned boundary checks I have second thoughts that is overdoing and it is enough to just call the corresponding API for fallback. I rather prefer to respect the decision by VM developers. > Make our unsafe based ops more safe > ----------------------------------- > > Key: HBASE-14940 > URL: https://issues.apache.org/jira/browse/HBASE-14940 > Project: HBase > Issue Type: Bug > Reporter: Anoop Sam John > Assignee: Anoop Sam John > Attachments: HBASE-14940.patch > > > Thanks for the nice findings [~ikeda] > This jira solves 3 issues with Unsafe operations and ByteBufferUtils > 1. We can do sun unsafe based reads and writes iff unsafe package is > available and underlying platform is having unaligned-access capability. But > we were missing the second check > 2. Java NIO is doing a chunk based copy while doing Unsafe copyMemory. The > max chunk size is 1 MB. This is done for "A limit is imposed to allow for > safepoint polling during a large copy" as mentioned in comments in Bits.java. > We are also going to do same way > 3. In ByteBufferUtils, when Unsafe is not available and ByteBuffers are off > heap, we were doing byte by byte operation (read/copy). We can avoid this and > do better way. -- This message was sent by Atlassian JIRA (v6.3.4#6332)