You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "Michael Miller (JIRA)" <ji...@apache.org> on 2019/04/17 20:39:00 UTC

[jira] [Commented] (ACCUMULO-4621) Refactor hot methods for JIT optimization

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

Michael Miller commented on ACCUMULO-4621:
------------------------------------------

Duplicated in Github for 2.1 [https://github.com/apache/accumulo/issues/1099]

> Refactor hot methods for JIT optimization
> -----------------------------------------
>
>                 Key: ACCUMULO-4621
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-4621
>             Project: Accumulo
>          Issue Type: Improvement
>          Components: client, fate, tserver
>            Reporter: Michael Miller
>            Priority: Major
>
> I did some analysis of how well the JIT compiler optimizes Accumulo code by running tests locally in JMH and against a single local instance of Uno.  To print what the JIT compiler was doing, I used the following java options:
> {code}
> -XX:+PrintCompilation 
> -XX:+UnlockDiagnosticVMOptions 
> -XX:+PrintInlining
> {code}
> Then I would grep the output for "accumulo" and "hot method too big".  Here is the list of methods I compiled from the tests I did on both client and server.:
> {code}
> org.apache.accumulo.core.client.impl.TabletLocatorImpl::processInvalidated
> org.apache.accumulo.core.client.impl.ThriftScanner::scan
> org.apache.accumulo.core.data.Key::equals
> org.apache.accumulo.core.data.thrift.TMutation$TMutationStandardScheme::read 
> org.apache.accumulo.core.file.rfile.RFile$LocalityGroupReader::_seek
> org.apache.accumulo.core.file.rfile.RelativeKey::<init>
> org.apache.accumulo.core.file.rfile.RelativeKey::readFields
> org.apache.accumulo.core.security.ColumnVisibility$ColumnVisibilityParser::parse_
> org.apache.accumulo.fate.zookeeper.ZooCache$2::run
> org.apache.accumulo.server.constraints.MetadataConstraints::check
> org.apache.accumulo.server.master.LiveTServerSet::checkServer
> org.apache.accumulo.tserver.FileManager::reserveReaders
> org.apache.accumulo.tserver.constraints.ConstraintChecker::check
> org.apache.accumulo.tserver.scan.NextBatchTask::run 
> org.apache.accumulo.tserver.tablet.ScanDataSource::createIterator 
> org.apache.accumulo.tserver.tablet.Scanner::read
> {code}
> This work was inspired by this blog post: https://techblug.wordpress.com/2013/08/19/java-jit-compiler-inlining/



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