Uploaded image for project: 'Accumulo'
  1. Accumulo
  2. ACCUMULO-4621

Refactor hot methods for JIT optimization

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Duplicate
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: client, fate, tserver
    • Labels:
      None

      Description

      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:

      -XX:+PrintCompilation 
      -XX:+UnlockDiagnosticVMOptions 
      -XX:+PrintInlining
      

      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.:

      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
      

      This work was inspired by this blog post: https://techblug.wordpress.com/2013/08/19/java-jit-compiler-inlining/

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              milleruntime Michael Miller
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: