Switch Inmemory driver to parallel walk
This MR introduces switches the inmemory driver's walk function to use walkfallbackparallel.
Changes were also needed to storage/catalog.go's repositories method as the nature of parallelized walking violates certain assumptions that this function relied on. Namely, that results would arrive in a consistent, lexicographically sorted order every time.
With these changes, we can expect reduced efficiency to paginated requests to the /v2/_catalog
endpoint. The GitLab app does not presently use this endpoint.
With the inmemory storage driver using a parallel walk function, we will be able to more systematically confirm that all WalkFn
s provided to Walk
are indeed thread-safe. Which will increase confidence for merging in !23 (merged)
This MR depends on !37 (closed)
Additionally, this MR closes #5 (closed)