You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Hudson (JIRA)" <ji...@apache.org> on 2019/01/12 05:09:00 UTC

[jira] [Commented] (HBASE-20716) Unsafe access cleanup

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

Hudson commented on HBASE-20716:
--------------------------------

Results for branch branch-1
	[build #629 on builds.a.o|https://builds.apache.org/job/HBase%20Nightly/job/branch-1/629/]: (x) *{color:red}-1 overall{color}*
----
details (if available):

(x) {color:red}-1 general checks{color}
-- For more information [see general report|https://builds.apache.org/job/HBase%20Nightly/job/branch-1/629//General_Nightly_Build_Report/]


(x) {color:red}-1 jdk7 checks{color}
-- For more information [see jdk7 report|https://builds.apache.org/job/HBase%20Nightly/job/branch-1/629//JDK7_Nightly_Build_Report/]


(x) {color:red}-1 jdk8 hadoop2 checks{color}
-- For more information [see jdk8 (hadoop2) report|https://builds.apache.org/job/HBase%20Nightly/job/branch-1/629//JDK8_Nightly_Build_Report_(Hadoop2)/]




(x) {color:red}-1 source release artifact{color}
-- See build output for details.


> Unsafe access cleanup
> ---------------------
>
>                 Key: HBASE-20716
>                 URL: https://issues.apache.org/jira/browse/HBASE-20716
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Performance
>            Reporter: stack
>            Assignee: Sahil Aggarwal
>            Priority: Critical
>              Labels: beginner
>             Fix For: 3.0.0, 1.5.0, 2.2.0, 2.1.1
>
>         Attachments: HBASE-20716.master.001.patch, HBASE-20716.master.002.patch, HBASE-20716.master.003.patch, HBASE-20716.master.004.patch, HBASE-20716.master.005.patch, HBASE-20716.master.006.patch, HBASE-20716.master.007.patch, HBASE-20716.master.008.patch, Screen Shot 2018-06-26 at 11.37.49 AM.png
>
>
> 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)