[jira] [Updated] (ACCUMULO-4041) Java reflection eats too much CPU
[ https://issues.apache.org/jira/browse/ACCUMULO-4041?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Eric Newton updated ACCUMULO-4041: -- Fix Version/s: 1.6.5 > Java reflection eats too much CPU > - > > Key: ACCUMULO-4041 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4041 > Project: Accumulo > Issue Type: Bug > Components: tserver >Affects Versions: 1.7.0 > Environment: Ubuntu 15.10, jdk1.8.0_60 >Reporter: Volth >Assignee: Eric Newton > Fix For: 1.6.5, 1.7.1, 1.8.0 > > Attachments: ACCUMULO-4041-01.patch, ACCUMULO-4041-experiment.patch, > profiling.jpg > > Time Spent: 50m > Remaining Estimate: 0h > > This is called so many times that it eats too much CPU, even more than the > snappy compressor: http://i.imgur.com/vqX4pFi.png > Perhaps the annotation data should be copied into regular variables which can > be accessed without reflection. > - org.apache.accumulo.core.client.impl.Tables.getZooCache() > - > org.apache.accumulo.server.client.HdfsZooInstance.getZooKeepersSessionTimeOut() > - org.apache.accumulo.core.conf.AccumuloConfiguration.getTimeInMillis() > - org.apache.accumulo.core.conf.SiteConfiguration.get() > - org.apache.accumulo.core.conf.Property.isSensitive() > - org.apache.accumulo.core.conf.Property.hasAnnotation() > - java.lang.Class.getField() -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (ACCUMULO-4041) Java reflection eats too much CPU
[ https://issues.apache.org/jira/browse/ACCUMULO-4041?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Eric Newton updated ACCUMULO-4041: -- Fix Version/s: 1.8.0 1.7.1 Status: Patch Available (was: Open) Proposed patch. Could also cache the lookup in SiteConfiguration, too. I hope I don't have to so this for all the different annotations. Patch is against master, but I can back-port it and move it up. > Java reflection eats too much CPU > - > > Key: ACCUMULO-4041 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4041 > Project: Accumulo > Issue Type: Bug > Components: tserver >Affects Versions: 1.7.0 > Environment: Ubuntu 15.10, jdk1.8.0_60 >Reporter: Volth >Assignee: Eric Newton > Fix For: 1.7.1, 1.8.0 > > Attachments: ACCUMULO-4041-01.patch, profiling.jpg > > > This is called so many times that it eats too much CPU, even more than the > snappy compressor: http://i.imgur.com/vqX4pFi.png > Perhaps the annotation data should be copied into regular variables which can > be accessed without reflection. > - org.apache.accumulo.core.client.impl.Tables.getZooCache() > - > org.apache.accumulo.server.client.HdfsZooInstance.getZooKeepersSessionTimeOut() > - org.apache.accumulo.core.conf.AccumuloConfiguration.getTimeInMillis() > - org.apache.accumulo.core.conf.SiteConfiguration.get() > - org.apache.accumulo.core.conf.Property.isSensitive() > - org.apache.accumulo.core.conf.Property.hasAnnotation() > - java.lang.Class.getField() -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (ACCUMULO-4041) Java reflection eats too much CPU
[ https://issues.apache.org/jira/browse/ACCUMULO-4041?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Eric Newton updated ACCUMULO-4041: -- Attachment: ACCUMULO-4041-01.patch Proposed fix. > Java reflection eats too much CPU > - > > Key: ACCUMULO-4041 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4041 > Project: Accumulo > Issue Type: Bug > Components: tserver >Affects Versions: 1.7.0 > Environment: Ubuntu 15.10, jdk1.8.0_60 >Reporter: Volth > Attachments: ACCUMULO-4041-01.patch, profiling.jpg > > > This is called so many times that it eats too much CPU, even more than the > snappy compressor: http://i.imgur.com/vqX4pFi.png > Perhaps the annotation data should be copied into regular variables which can > be accessed without reflection. > - org.apache.accumulo.core.client.impl.Tables.getZooCache() > - > org.apache.accumulo.server.client.HdfsZooInstance.getZooKeepersSessionTimeOut() > - org.apache.accumulo.core.conf.AccumuloConfiguration.getTimeInMillis() > - org.apache.accumulo.core.conf.SiteConfiguration.get() > - org.apache.accumulo.core.conf.Property.isSensitive() > - org.apache.accumulo.core.conf.Property.hasAnnotation() > - java.lang.Class.getField() -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (ACCUMULO-4041) Java reflection eats too much CPU
[ https://issues.apache.org/jira/browse/ACCUMULO-4041?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Keith Turner updated ACCUMULO-4041: --- Attachment: ACCUMULO-4041-experiment.patch In the 01 patch I think the guava cache is per enum, not sure if this was the intent? This got me thinking that we could have some per enum caching (not using guava cache). i attached an incomplete patch with some experiments I did. > Java reflection eats too much CPU > - > > Key: ACCUMULO-4041 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4041 > Project: Accumulo > Issue Type: Bug > Components: tserver >Affects Versions: 1.7.0 > Environment: Ubuntu 15.10, jdk1.8.0_60 >Reporter: Volth >Assignee: Eric Newton > Fix For: 1.7.1, 1.8.0 > > Attachments: ACCUMULO-4041-01.patch, ACCUMULO-4041-experiment.patch, > profiling.jpg > > > This is called so many times that it eats too much CPU, even more than the > snappy compressor: http://i.imgur.com/vqX4pFi.png > Perhaps the annotation data should be copied into regular variables which can > be accessed without reflection. > - org.apache.accumulo.core.client.impl.Tables.getZooCache() > - > org.apache.accumulo.server.client.HdfsZooInstance.getZooKeepersSessionTimeOut() > - org.apache.accumulo.core.conf.AccumuloConfiguration.getTimeInMillis() > - org.apache.accumulo.core.conf.SiteConfiguration.get() > - org.apache.accumulo.core.conf.Property.isSensitive() > - org.apache.accumulo.core.conf.Property.hasAnnotation() > - java.lang.Class.getField() -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (ACCUMULO-4041) Java reflection eats too much CPU
[ https://issues.apache.org/jira/browse/ACCUMULO-4041?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Volth updated ACCUMULO-4041: Description: This is called so many times that it eats too much CPU, even more than the snappy compressor: http://i.imgur.com/vqX4pFi.png Perhaps the annotation data should be copied into regular variables which can be accessed without reflection. - org.apache.accumulo.core.client.impl.Tables.getZooCache() - org.apache.accumulo.server.client.HdfsZooInstance.getZooKeepersSessionTimeOut() - org.apache.accumulo.core.conf.AccumuloConfiguration.getTimeInMillis() - org.apache.accumulo.core.conf.SiteConfiguration.get() - org.apache.accumulo.core.conf.Property.isSensitive() - org.apache.accumulo.core.conf.Property.hasAnnotation() - java.lang.Class.getField() was: This is called so many times that it eats too much CPU: Perhaps the annotation data should be copied into regular variables which can be accessed without reflection. - org.apache.accumulo.core.client.impl.Tables.getZooCache() - org.apache.accumulo.server.client.HdfsZooInstance.getZooKeepersSessionTimeOut() - org.apache.accumulo.core.conf.AccumuloConfiguration.getTimeInMillis() - org.apache.accumulo.core.conf.SiteConfiguration.get() - org.apache.accumulo.core.conf.Property.isSensitive() - org.apache.accumulo.core.conf.Property.hasAnnotation() - java.lang.Class.getField() > Java reflection eats too much CPU > - > > Key: ACCUMULO-4041 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4041 > Project: Accumulo > Issue Type: Bug > Components: tserver >Affects Versions: 1.7.0 > Environment: Ubuntu 15.10, jdk1.8.0_60 >Reporter: Volth > > This is called so many times that it eats too much CPU, even more than the > snappy compressor: http://i.imgur.com/vqX4pFi.png > Perhaps the annotation data should be copied into regular variables which can > be accessed without reflection. > - org.apache.accumulo.core.client.impl.Tables.getZooCache() > - > org.apache.accumulo.server.client.HdfsZooInstance.getZooKeepersSessionTimeOut() > - org.apache.accumulo.core.conf.AccumuloConfiguration.getTimeInMillis() > - org.apache.accumulo.core.conf.SiteConfiguration.get() > - org.apache.accumulo.core.conf.Property.isSensitive() > - org.apache.accumulo.core.conf.Property.hasAnnotation() > - java.lang.Class.getField() -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (ACCUMULO-4041) Java reflection eats too much CPU
[ https://issues.apache.org/jira/browse/ACCUMULO-4041?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Josh Elser updated ACCUMULO-4041: - Attachment: profiling.jpg Copied over the photo from imgur for historical purposes. > Java reflection eats too much CPU > - > > Key: ACCUMULO-4041 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4041 > Project: Accumulo > Issue Type: Bug > Components: tserver >Affects Versions: 1.7.0 > Environment: Ubuntu 15.10, jdk1.8.0_60 >Reporter: Volth > Attachments: profiling.jpg > > > This is called so many times that it eats too much CPU, even more than the > snappy compressor: http://i.imgur.com/vqX4pFi.png > Perhaps the annotation data should be copied into regular variables which can > be accessed without reflection. > - org.apache.accumulo.core.client.impl.Tables.getZooCache() > - > org.apache.accumulo.server.client.HdfsZooInstance.getZooKeepersSessionTimeOut() > - org.apache.accumulo.core.conf.AccumuloConfiguration.getTimeInMillis() > - org.apache.accumulo.core.conf.SiteConfiguration.get() > - org.apache.accumulo.core.conf.Property.isSensitive() > - org.apache.accumulo.core.conf.Property.hasAnnotation() > - java.lang.Class.getField() -- This message was sent by Atlassian JIRA (v6.3.4#6332)