ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xavier Hanin (JIRA)" <>
Subject [jira] Commented: (IVY-694) cache dynamic revision resolution
Date Thu, 10 Jan 2008 21:35:33 GMT


Xavier Hanin commented on IVY-694:

I've made good progress on this issue, Ivy now supports caching of dynamic revisions. In the
code I've just checked in, it's even the default to cache resolved revisions for one hour.
I'm not sure of this choice though, for backward compatibility we should better don't use
this as the default. Or maybe if we implement finer grain TTL (for the moment you can only
set the default TTL per cache), we could also give several defaults: no caching for latest.integration,
one hour caching for other dynamic revisions for example. But this would be also more difficult
to understand for users. 

This is open for discussion, any comment would be appreciated.

> cache dynamic revision resolution
> ---------------------------------
>                 Key: IVY-694
>                 URL:
>             Project: Ivy
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Xavier Hanin
>            Assignee: Xavier Hanin
> Currently when one use dynamic revision like latest.integration, the resolution of which
revision this actually refer to is done at each resolve. When using a slow resolver, it can
be very troublesome, especially for revisions which don't change very often (think about using
a version range only for revision compatibility while using a latest-compatible conflict manager).
> Adding an option to cache the resolution of a dynamic revision would be nice. Obviously
we'd need a way to setup for how long the cached resolved revision should be trusted (similar
to a TTL in DNS system). A parameter to force the refresh of all cached dynamic revisions
would also be a nice option to make sure one can always easily ask Ivy to make a full resolve
without cleaning the cache.
> Being able to define TTL per revision or module revision would be nice too. This would
allow people to setup fine grain TTL depending on how their repository change. An alternative
to implementing this fine grain TTL settings in the cache would be to use the flexibility
of resolvers settings. Indeed one could configure two resolvers differing only by how the
TTL of their cache is setup. Then by setting one resolver for some kind of revision and the
other one for the other could make the trick. The problem with that is that Ivy would see
it as different resolvers, which could lead to problem if you configure one resolver for latest.integration
and another one for 1.0, when latest.integration is resolved to 1.0, Ivy would think it uses
two different resolvers for the same physical module revision, which is strongly discouraged
in the module rule set documentation because we actually don't know how it works. Hence it
seems that allowing fine grain TTL settings in the cache would be better than trying to leverage
fine grain resolver settings.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message