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

ASF GitHub Bot commented on MBUILDCACHE-20:
-------------------------------------------

AlexanderAshitkin commented on code in PR #14:
URL: 
https://github.com/apache/maven-build-cache-extension/pull/14#discussion_r874931070


##########
src/main/java/org/apache/maven/buildcache/CacheControllerImpl.java:
##########
@@ -166,22 +166,22 @@ public CacheResult findCachedBuild( MavenSession session, 
MavenProject project,
         ProjectsInputInfo inputInfo = projectInputCalculator.calculateInput( 
project );
 
         final CacheContext context = new CacheContext( project, inputInfo, 
session );
-        // remote build first
-        CacheResult result = findCachedBuild( mojoExecutions, context );

Review Comment:
   > @AlexanderAshitkin Well, that was exactly what I was trying to fix. If 
there was no remote build cached, but a local build, a lookup did occur... This 
basically means that local builds are useless if you have a remote cache, 
because they are never used, which is a bit weird.
   
   Not exactly. This is lookup for a local build (which is not from remote 
cache)
   ```
   // local build first
   CacheResult result = findLocalBuild( mojoExecutions, context );
   ```
   This is lookup to find a cached build from remote repo (if missed - then 
lookup remote cache):
   ```
   CacheResult remoteBuild = findCachedBuild( mojoExecutions, context );
   ```
   Old logic was:
   1) Lookup local cache of remote repo
   2) If 1 failed lookup remote repo and download
   3) If 2 failed (effectively no remote build) - try use local build
   
   Now logic is:
   1) Try to use local build even if reference build is present in remote repo
   2) Try to find locally cached remote(reference) build
   3) Lookup remote cache if 2 failed
   
   The new scheme has minimal performance benefits (both tried to find local 
build first), but likely will lead to less consistent results and difficult to 
debug discrepancies in presence of remote cache





> Allow configuring whether local or remote builds should be preferred
> --------------------------------------------------------------------
>
>                 Key: MBUILDCACHE-20
>                 URL: https://issues.apache.org/jira/browse/MBUILDCACHE-20
>             Project: Maven Build Cache Extension
>          Issue Type: Improvement
>            Reporter: Guillaume Nodet
>            Assignee: Guillaume Nodet
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.0.0-alpha
>
>
> Currently, a remote lookup is done first and if none succeeds, a lookup of a 
> previous local build is done (for a given input checksum).  I don't really 
> understand the benefit of this and I think it should be reversed, or at least 
> made configurable.
> The code is at: 
> https://github.com/apache/maven-build-cache-extension/blob/a3a44e72404228c536b5a8c21d2e67f0183452a1/src/main/java/org/apache/maven/buildcache/CacheControllerImpl.java#L169-L187



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to