Make database write in syncContainer conditional

This should help with performance when executing many operations
on a single container

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #185
Approved by: rhatdan
This commit is contained in:
Matthew Heon
2018-01-03 22:30:13 -05:00
committed by Atomic Bot
parent c78d3769f1
commit 9ab256f72a

View File

@ -412,13 +412,18 @@ func (c *Container) syncContainer() error {
// And then save back to disk // And then save back to disk
if (c.state.State != ContainerStateUnknown) && if (c.state.State != ContainerStateUnknown) &&
(c.state.State != ContainerStateConfigured) { (c.state.State != ContainerStateConfigured) {
oldState := c.state.State
// TODO: optionally replace this with a stat for the exit file
if err := c.runtime.ociRuntime.updateContainerStatus(c); err != nil { if err := c.runtime.ociRuntime.updateContainerStatus(c); err != nil {
return err return err
} }
// Only save back to DB if state changed
if c.state.State != oldState {
if err := c.save(); err != nil { if err := c.save(); err != nil {
return err return err
} }
} }
}
if !c.valid { if !c.valid {
return errors.Wrapf(ErrCtrRemoved, "container %s is not valid", c.ID()) return errors.Wrapf(ErrCtrRemoved, "container %s is not valid", c.ID())