code: func (e *Engine) Open() error {
  	e.mu.Lock()
  	defer e.mu.Unlock()
  
  	if e.closing != nil {
  		return nil // Already open
  	}
  
  	if err := e.sfile.Open(); err != nil {
  		return err
  	}
  
  	if err := e.index.Open(); err != nil {
  		return err
  	}
  
  	if err := e.engine.Open(); err != nil {
  		return err
  	}
  	e.engine.SetCompactionsEnabled(true) // TODO(edd):is this needed?
  
  	e.closing = make(chan struct{})
  
  	// TODO(edd) background tasks will be run in priority order via a scheduler.
  	// For now we will just run on an interval as we only have the retention
  	// policy enforcer.
  	e.runRetentionEnforcer()
  
  	return nil
  }
docs: // Open opens the store and all underlying resources. It returns an error if
  // any of the underlying systems fail to open.