[ 
https://issues.apache.org/jira/browse/FELIX-5467?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jeroen Daanen updated FELIX-5467:
---------------------------------
    Summary: MultiPropertyFilterIndex is unusable when a service reference 
contains a lot of values for one key  (was: MultiPropertyFilterIndex is 
unusable when a service property contains a lot of values for one key)

> MultiPropertyFilterIndex is unusable when a service reference contains a lot 
> of values for one key
> --------------------------------------------------------------------------------------------------
>
>                 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)

Reply via email to