stack created HBASE-20716:
-----------------------------

             Summary: Unsafe access cleanup
                 Key: HBASE-20716
                 URL: https://issues.apache.org/jira/browse/HBASE-20716
             Project: HBase
          Issue Type: Bug
          Components: Performance
            Reporter: stack


We have two means of getting at unsafe; UnsafeAccess and then internal to the 
Bytes class. They are effectively doing the same thing. We should have one 
avenue to Unsafe only.

Many of our paths to Unsafe via UnsafeAccess traverse flags to check if access 
is available, if it is aligned and the order in which words are written on the 
machine. Each check costs -- especially if done millions of times a second -- 
and on occasion adds bloat in hot code paths. The unsafe access inside Bytes 
checks on startup what the machine is capable off and then does a static assign 
of the appropriate class-to-use from there on out. UnsafeAccess does not do 
this running the checks everytime. Would be good to have the Bytes behavior 
pervasive.

The benefit of one access to Unsafe only is plain. The benefits we gain 
removing checks will be harder to measure though should be plain when you 
disassemble a hot-path; in a (very) rare case, the saved byte codes could be 
the difference between inlining or not.



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

Reply via email to