Project

Profile

Help

Story #3894

Updated by bmbouter over 6 years ago

h2. Problem 

 Problem: Lazy sync requires the plugin to create *Content, ContentArtifacts, and RemoteArtifact objects for every piece of content discovered at the remote. This kind of indexing is resource utilization prohibitive for repositories with millions of artifacts.  

 h2. Solution 

 h5. Data model change 

 Solution: Make content indexing optional by enabling users to configure a Distribution Distributions with a Remote. This would be a new relation field added to "Distribution" and called THE_NAME_HERE. 

 h5. Integration with the Content serving app 

 The content app would then do the following to find an artifact to serve to the user: 

 1. Try to find an artifact by looking at the Publication associated with the Distribution. 
 2. If an Artifact is found, send the content of it as a response. 
 3. If an Artifact is not found, check if there is a Remote associated with the Distribution.  
 4. If a remote is not associated with the Distribution, return a 404. 
 5. If a remote is associated, try to find an Artifact by using RemoteArtifact 'url' field. 
 6. If an Artifact is found, return the content of the Artifact as the response. 
 7. If a RemoteArtifact is    found, but an Artifact is not found, use the streamer to get the Artifact from the Remote and stream it as a response.  



Back