github.com/grafana/pyroscope@v1.18.0/pkg/block/section_symbols.go (about)

     1  package block
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  
     7  	"github.com/grafana/pyroscope/pkg/phlaredb/symdb"
     8  )
     9  
    10  func openSymbols(ctx context.Context, s *Dataset) (err error) {
    11  	offset := s.sectionOffset(SectionSymbols)
    12  	size := s.sectionSize(SectionSymbols)
    13  	if buf := s.inMemoryBuffer(); buf != nil {
    14  		offset -= int64(s.offset())
    15  		s.symbols, err = symdb.OpenObject(ctx, s.inMemoryBucket(buf), s.obj.path, offset, size)
    16  	} else {
    17  		s.symbols, err = symdb.OpenObject(ctx, s.obj.storage, s.obj.path, offset, size,
    18  			symdb.WithPrefetchSize(symbolsPrefetchSize))
    19  	}
    20  	if err != nil {
    21  		return fmt.Errorf("opening symbols: %w", err)
    22  	}
    23  	return nil
    24  }