Use the new walk method for catalog enumeration
This change is primarily to make GC faster. Signed-off-by: Sargun Dhillon <sargun@sargun.me>master
							parent
							
								
									35b29a609e
								
							
						
					
					
						commit
						c7b0da2622
					
				|  | @ -88,13 +88,12 @@ func (bs *blobStore) Put(ctx context.Context, mediaType string, p []byte) (distr | |||
| } | ||||
| 
 | ||||
| func (bs *blobStore) Enumerate(ctx context.Context, ingester func(dgst digest.Digest) error) error { | ||||
| 
 | ||||
| 	specPath, err := pathFor(blobsPathSpec{}) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	err = Walk(ctx, bs.driver, specPath, func(fileInfo driver.FileInfo) error { | ||||
| 	return bs.driver.Walk(ctx, specPath, func(fileInfo driver.FileInfo) error { | ||||
| 		// skip directories
 | ||||
| 		if fileInfo.IsDir() { | ||||
| 			return nil | ||||
|  | @ -114,7 +113,6 @@ func (bs *blobStore) Enumerate(ctx context.Context, ingester func(dgst digest.Di | |||
| 
 | ||||
| 		return ingester(digest) | ||||
| 	}) | ||||
| 	return err | ||||
| } | ||||
| 
 | ||||
| // path returns the canonical path for the blob identified by digest. The blob
 | ||||
|  |  | |||
|  | @ -10,10 +10,6 @@ import ( | |||
| 	"github.com/docker/distribution/registry/storage/driver" | ||||
| ) | ||||
| 
 | ||||
| // errFinishedWalk signals an early exit to the walk when the current query
 | ||||
| // is satisfied.
 | ||||
| var errFinishedWalk = errors.New("finished walk") | ||||
| 
 | ||||
| // Returns a list, or partial list, of repositories in the registry.
 | ||||
| // Because it's a quite expensive operation, it should only be used when building up
 | ||||
| // an initial set of repositories.
 | ||||
|  |  | |||
|  | @ -237,7 +237,7 @@ func (lbs *linkedBlobStore) Enumerate(ctx context.Context, ingestor func(digest. | |||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	err = Walk(ctx, lbs.blobStore.driver, rootPath, func(fileInfo driver.FileInfo) error { | ||||
| 	return lbs.driver.Walk(ctx, rootPath, func(fileInfo driver.FileInfo) error { | ||||
| 		// exit early if directory...
 | ||||
| 		if fileInfo.IsDir() { | ||||
| 			return nil | ||||
|  | @ -273,12 +273,6 @@ func (lbs *linkedBlobStore) Enumerate(ctx context.Context, ingestor func(digest. | |||
| 
 | ||||
| 		return nil | ||||
| 	}) | ||||
| 
 | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func (lbs *linkedBlobStore) mount(ctx context.Context, sourceRepo reference.Named, dgst digest.Digest, sourceStat *distribution.Descriptor) (distribution.Descriptor, error) { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue