ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stephen Haberman (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IVY-1430) dynamic revisions are not cached per resolver
Date Sun, 18 Aug 2013 22:15:47 GMT

    [ https://issues.apache.org/jira/browse/IVY-1430?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13743403#comment-13743403
] 

Stephen Haberman commented on IVY-1430:
---------------------------------------

I've attached 1430.diff to this issue, which fixes it.

Instead of having a single "ivydata-latest-integration.properties", which means only 1 resolver
can cache it's resolved revision, we have 1 properties file per resolver name.

This took my local "ant retrieve" time from ~90 seconds to ~4 seconds.

Basically, previously for certain modules (that existed in multiple resolvers) Ivy wasn't
using the dynamic cache at all. Now it is, and so is much faster.

                
> dynamic revisions are not cached per resolver
> ---------------------------------------------
>
>                 Key: IVY-1430
>                 URL: https://issues.apache.org/jira/browse/IVY-1430
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: trunk
>            Reporter: Stephen Haberman
>         Attachments: 1430.diff
>
>
> If using a chain resolver, it is likely that dynamic revisions found in multiple child
resolvers with thrash each other and negate the affect of using the cache.
> Currently, if a chain resolver has two children, r1 and r2, and is asked to resolve "latest.integration",
the logic is:
> 1. Ask r1 if it can resolve latest.integration. It looks in the ivycache, finds nothing,
so hits the network, and finds 1.1.
> 2. Ivy creates a ivydata-latest.integration.properties file to cache that latestion=integration=1.1
and that it came from r1.
> 3. Ask r2 if it can resolve latest.integration. It looks in the ivycache, finds the latest.integration=1.1,
but the resolver for that is r1, so it must hit the network, and finds 1.0. It is not newer,
so 1.1 stays in the cache.
> ...
> Basically, r2 is not given the chance to write "my latest.integration = 1.0" anywhere
in the cache, so it must hit the network any time it's asked for latest.integration.
> Instead, both r1 and r2 should be able to cache what latest.integration means to them.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message