From 9c916b0b762ab2bebc23e1a79b84b01d69922a7d Mon Sep 17 00:00:00 2001 From: Philip O'Toole Date: Tue, 5 Jan 2016 18:29:16 -0800 Subject: [PATCH] Best-effort cleanup of converter. --- cmd/influx_tsm/converter.go | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/cmd/influx_tsm/converter.go b/cmd/influx_tsm/converter.go index d25b5b308e..8ca4407d62 100644 --- a/cmd/influx_tsm/converter.go +++ b/cmd/influx_tsm/converter.go @@ -45,21 +45,21 @@ func (c *Converter) Process(iter KeyIterator) error { return err } - w, err := c.nextTSMWriter() - if err != nil { - return err - } - atomic.AddUint64(&TsmFilesCreated, 1) - defer w.Close() - // Iterate until no more data remains. + var w tsm1.TSMWriter for iter.Next() { k, v, err := iter.Read() if err != nil { return err } - scrubbed := scrubValues(v) + + if w == nil { + w, err = c.nextTSMWriter() + if err != nil { + return err + } + } if err := w.Write(k, scrubbed); err != nil { return err } @@ -74,19 +74,19 @@ func (c *Converter) Process(iter KeyIterator) error { if err := w.Close(); err != nil { return err } - - w, err = c.nextTSMWriter() - if err != nil { - return err - } - atomic.AddUint64(&TsmFilesCreated, 1) + w = nil } } - // All done! - if err := w.WriteIndex(); err != nil && err != tsm1.ErrNoValues { - return err + if w != nil { + if err := w.WriteIndex(); err != nil && err != tsm1.ErrNoValues { + return err + } + if err := w.Close(); err != nil { + return err + } } + return nil } @@ -106,6 +106,7 @@ func (c *Converter) nextTSMWriter() (tsm1.TSMWriter, error) { return nil, err } + atomic.AddUint64(&TsmFilesCreated, 1) return w, nil }