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 2017/04/11 19:59:42 UTC

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

Michael Miller created ACCUMULO-4621:
----------------------------------------

             Summary: 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
             Fix For: 1.8.2, 2.0.0


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
(v6.3.15#6346)