karaf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Grzegorz Grzybek (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (KARAF-4351) [RBAC] Optimize access to JMXSecurityMBean.canInvoke(Map)
Date Fri, 19 Feb 2016 19:54:18 GMT

    [ https://issues.apache.org/jira/browse/KARAF-4351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15154759#comment-15154759

Grzegorz Grzybek commented on KARAF-4351:

[This PR|https://github.com/apache/karaf/pull/152] does first optimization. We cache configadmin
results. Not in guard's state, but in {{org.apache.karaf.management.internal.BulkRequestContext}}
object created inside {{canInvoke(Map)}} method. Each consecutive Config Admin access inside
loop reuses already fetched properties. I think it's not a big problem wrt added/modified
JMX ACL configs - next bulk call will use fresh list of configurations.

In the above case of 2000 ActiveMQ queues, Jolokia time of {{canInvoke(Map)}} execution decreased
from 22 seconds to 13 seconds.

> [RBAC] Optimize access to JMXSecurityMBean.canInvoke(Map)
> ---------------------------------------------------------
>                 Key: KARAF-4351
>                 URL: https://issues.apache.org/jira/browse/KARAF-4351
>             Project: Karaf
>          Issue Type: Improvement
>          Components: karaf-security
>    Affects Versions: 2.4.4, 3.0.6, 4.0.4
>            Reporter: Grzegorz Grzybek
> We've scenario where there are 2000 ActiveMQ queues running in Karaf with hawtio that
leverages RBAC.
> hawtio, through Jolokia library calls {{org.apache.karaf.management.JMXSecurityMBean#canInvoke(java.util.Map<java.lang.String,java.util.List<java.lang.String>>)}}
method passing map of >2000 MBeanNames to lists of average size = 20.
> Thus we have >40000 calls to one of {{org.apache.karaf.management.internal.JMXSecurityMBeanImpl#canInvoke()}}
methods for pairs of MBean+signature and we have equal number of calls to {{org.osgi.service.cm.ConfigurationAdmin#listConfigurations("(service.pid=jmx.acl*)"}}.

This message was sent by Atlassian JIRA

View raw message