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
74278cdaa6
commit
abf796d17c
2 changed files with 2 additions and 2 deletions
|
@ -341,7 +341,7 @@ func (app *App) RegisterHealthChecks(healthRegistries ...*health.Registry) {
|
||||||
}
|
}
|
||||||
|
|
||||||
storageDriverCheck := func() error {
|
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
|
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)
|
ctx, done := context.WithTrace(ctx)
|
||||||
defer done("%s.Stat(%q)", base.Name(), path)
|
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()}
|
return nil, storagedriver.InvalidPathError{Path: path, DriverName: base.StorageDriver.Name()}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue