Use app.driver.Stat for registry health check
`app.driver.List` on `"/"` is very expensive if registry contains significant amount of images. And the result isn't used anyways. In most (if not all) storage drivers, `Stat` has a cheaper implementation, so use it instead to achieve the same goal. Signed-off-by: yixi zhang <yixi@memsql.com>
This commit is contained in:
parent
2d500932f2
commit
8e915d69f4
@ -345,7 +345,7 @@ func (app *App) RegisterHealthChecks(healthRegistries ...*health.Registry) {
|
||||
}
|
||||
|
||||
storageDriverCheck := func() error {
|
||||
_, err := app.driver.List(app, "/") // "/" should always exist
|
||||
_, err := app.driver.Stat(app, "/") // "/" should always exist
|
||||
return err // any error will be treated as failure
|
||||
}
|
||||
|
||||
|
@ -137,7 +137,7 @@ func (base *Base) Stat(ctx context.Context, path string) (storagedriver.FileInfo
|
||||
ctx, done := context.WithTrace(ctx)
|
||||
defer done("%s.Stat(%q)", base.Name(), path)
|
||||
|
||||
if !storagedriver.PathRegexp.MatchString(path) {
|
||||
if !storagedriver.PathRegexp.MatchString(path) && path != "/" {
|
||||
return nil, storagedriver.InvalidPathError{Path: path, DriverName: base.StorageDriver.Name()}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user