Skip to content

Commit

Permalink
Split out initHead from Flush
Browse files Browse the repository at this point in the history
This is something that failed making it into grafana/phlare#108
  • Loading branch information
simonswine committed Jul 21, 2022
1 parent 8b71b19 commit 3479853
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 8 deletions.
1 change: 1 addition & 0 deletions pkg/firedb/deduplicating_slice.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ func (s *deduplicatingSlice[M, K, H, P]) Init(path string) error {
}
s.file = file

// TODO: Reuse parquet.Writer beyond life time of the head.
s.writer = parquet.NewWriter(file, s.persister.Schema(),
parquet.ColumnPageBuffers(parquet.NewFileBufferPool("", "firedb-parquet-buffers*")),
)
Expand Down
20 changes: 12 additions & 8 deletions pkg/firedb/firedb.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ func New(cfg *Config, logger log.Logger, reg prometheus.Registerer) (*FireDB, er
stopCh: make(chan struct{}, 0),
headMetrics: headMetrics,
}
if err := f.Flush(context.Background()); err != nil {
if _, err := f.initHead(); err != nil {
return nil, err
}
f.Service = services.NewBasicService(f.starting, f.running, f.stopping)
Expand Down Expand Up @@ -95,22 +95,26 @@ func (f *FireDB) Head() *Head {
return f.head
}

func (f *FireDB) Flush(ctx context.Context) error {
func (f *FireDB) initHead() (oldHead *Head, err error) {
f.headLock.Lock()
var (
oldHead = f.head
err error
)
defer f.headLock.Unlock()
oldHead = f.head
f.headFlushTime = time.Now().UTC().Truncate(f.cfg.BlockDuration).Add(f.cfg.BlockDuration)
f.head, err = NewHead(f.cfg.DataPath, headWithMetrics(f.headMetrics), HeadWithLogger(f.logger))
if err != nil {
return oldHead, err
}
return oldHead, nil
}

func (f *FireDB) Flush(ctx context.Context) error {
oldHead, err := f.initHead()
if err != nil {
return err
}
f.headLock.Unlock()

if oldHead == nil {
return nil
}

return oldHead.Flush(ctx)
}

0 comments on commit 3479853

Please sign in to comment.