- Regarding batch resolution:
Ultimately I think the batch processing is about performance. At
provisioning time where finding the best solution trumps speed the resolver
can be executed against the entire set. But I have to try this. After than
the equinox runtime should be able to re-create a correct (maybe not
identical) resolution from the much smaller set of resources. I have tried
the resolver against about 700 bundles and it did okay, but this is well
short of 10,000. More research required....some day.

- Regarding the additional p2 concepts:
Can you point me to the documentation of how the resolution problem is
converted to a SAT formula?

Best regards

On Thu, Nov 17, 2016 at 6:20 AM, Pascal Rapicault <pas...@rapicault.net>
wrote:

> On 11/16/2016 10:49 AM, Todor Boev wrote:
>
> - Regarding resolver behavior:
>   The goal is actually to replace the behavior of the objective function
> with the behavior of the resolver. This is the best way to guarantee that
> both p2 and the OSGi runtime agree on what is a consistent set of bundles.
> For example p2 does not take into account package uses constraints which
> leads to p2 selecting bundles that later fail to resolve at runtime. It
> does not matter which way to resolve is better, so long as they agree.
> Since the OSGi resolver is very unlikely to change it falls on p2 to match
> it's behavior. My current company (software ag) has had quite a number of
> issues where essentially p2 sets up the resolver to fail.
>
> - Regarding resolver scalability:
>   The resolution is split between the resolver which processes the current
> set of resources and the resolver context which selects candidates when
> asked. If the goal is to support a very high number of candidates - a
> resolver context impl optimized for searches in a large candidate space can
> be provided. If the goal is to produce a solution that includes a very high
> number of resources - more research is required. Even if the initial set is
> 10,000 the resolver can be asked to process them not all at once, but
> incrementally in batches or even one by one. Which is in fact what equinox
> does today.
>
>     The thing is that if you look at a subset of the available bundles,
> you may find a solution that is not the optimal one. p2 will consider all
> the possible candidates in one resolution invocation.
>
>
> I am trying to determine if it makes sense to invest effort in prototyping
> this given that subtle changes in behavior are in fact a goal, rather than
> an issue.
>
>     Even though on the surface p2 resolver looks similar to what the OSGi
> resolver does, p2 has at least 2 additional concepts:
>     1) the expression of strict negation
>     2) the concept of patch
>
> I'm tempted to think that it is probably simpler to add support for the
> uses-clause in p2 (this has been a known issue for years, but I can't seem
> to find the bug tonight) than it is to replace the resolver completely and
> get all the tests to pass. The encoding of dependencies to a SAT formula is
> well documented and so are the optimization functions.
>
>
> On Wed, Nov 16, 2016 at 4:44 AM, Pascal Rapicault <pas...@rapicault.net>
> wrote:
>
>> On 11/15/2016 12:52 PM, Todor Boev wrote:
>>
>> Hello,
>>
>> Are there any plans to bring together p2 and OSGi resolver+repository
>> standards?
>>
>>     There is no immediate plan for this.
>>
>>
>> It should be beneficial to have similar (maybe identical?) dependency
>> resolution at provisioning time and later at runtime.
>>
>>     The install time and runtime resolvers resolve a slightly different
>> problem because the install time resolver has to look for candidates in a
>> large space, whereas the runtime one has to connect as many components
>> together.
>>     I have not tried replacing the p2 resolver with the new OSGi resolver
>> so I can't tell how it would perform.
>>
>>
>> Specifically:
>> - Is it possible to publish the bundle generic capabilities/requirements
>> to the p2 repository?
>>
>>     Yes this should be possible. The underlying p2 capability /
>> requirement model is really extensible and the current limitation is only
>> the serialized format.
>>
>> - Is it possible to use the equinox Resolver inside the p2 Planner?
>>
>>     It is possible to get something going but I'm not sure if this will
>> scale (p2 resolver is able to perform seamlessly on 10's of thousands of
>> IUs), nor if you will be able to replicate the subtleties that result from
>> having an objective function.
>>
>> -  Even if the equinox Resolver can not be used is it possible for p2 to
>> handle generic requirements/capabilities?
>>
>>     Yes. This should not be too much work.
>>
>>
>>
>> Regards,
>> Todor Boev
>>
>>
>> _______________________________________________
>> equinox-dev mailing listequinox-...@eclipse.org
>> To change your delivery options, retrieve your password, or unsubscribe from 
>> this list, visithttps://dev.eclipse.org/mailman/listinfo/equinox-dev
>>
>> _______________________________________________ equinox-dev mailing list
>> equinox-dev@eclipse.org To change your delivery options, retrieve your
>> password, or unsubscribe from this list, visit
>> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>
> _______________________________________________
> equinox-dev mailing listequinox-...@eclipse.org
> To change your delivery options, retrieve your password, or unsubscribe from 
> this list, visithttps://dev.eclipse.org/mailman/listinfo/equinox-dev
>
>
> _______________________________________________
> equinox-dev mailing list
> equinox-dev@eclipse.org
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>
_______________________________________________
equinox-dev mailing list
equinox-dev@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/equinox-dev

Reply via email to