[
https://issues.apache.org/jira/browse/FELIX-5467?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jeroen Daanen updated FELIX-5467:
---------------------------------
Attachment: Property.java
MultiPropertyFilterIndex.java
See attached MultiPropertyFilterIndex.java and Property.java for an
implementation suggestion.
> MultiPropertyFilterIndex is unusable when a service property contains a lot
> of values
> -------------------------------------------------------------------------------------
>
> Key: FELIX-5467
> URL: https://issues.apache.org/jira/browse/FELIX-5467
> Project: Felix
> Issue Type: Improvement
> Components: Dependency Manager
> Affects Versions: org.apache.felix.dependencymanager-r8
> Reporter: Jeroen Daanen
> Attachments: MultiPropertyFilterIndex.java, Property.java
>
>
> Upon addition of a service, the MultiPropertyFilterIndex creates a set of
> keys using the keys and values of the service reference properties. If the
> value is an array of values it creates keys for each possible permutation of
> those values so that the service reference can be retrieved if in the service
> dependency filter multiple values are specified (e.g.
> {{(&(objectClass=SomeClass)(&(a=x)(a=n)(a=y)(b=y)(c=z)))}}). If there are a
> lot of values for a key this results in a huge memory consumption, making it
> impossible to use.
> Now, in my application I always specify just one value in the service filter
> (e.g. there is a service which has multiple values for property "a" but I
> only specify one: {{(&(objectClass=SomeClass)(&(a=x)(b=y)(c=z)))}}) so I
> don't need those permutations, but because my property has a lot of values
> (>10) I cannot use the MultiPropertyFilterIndex causing a significant
> performance loss.
> I would like to suggest to add the possibility to leave out creating the
> permutation of values for a service property if you specify so in your filter
> properties. For instance by preceding the property configuration with '#',
> e.g.
> {{-Dorg.apache.felix.dependencymanager.filterindex=\*aspect\*;\*adapter\*;objectClass;objectClass,#a,b,c}}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)