code: func (fs *FileStore) shouldCompactClientFile() bool {
  	// Global switch
  	if !fs.opts.CompactEnabled {
  		return false
  	}
  	// Check that if minimum file size is set, the client file
  	// is at least at the minimum.
  	if fs.opts.CompactMinFileSize > 0 && fs.cliFileSize < fs.opts.CompactMinFileSize {
  		return false
  	}
  	// Check fragmentation
  	frag := fs.cliDeleteRecs * 100 / (fs.cliDeleteRecs + len(fs.clients))
  	if frag < fs.opts.CompactFragmentation {
  		return false
  	}
  	// Check that we don't do too often
  	if time.Since(fs.cliCompactTS) < fs.compactItvl {
  		return false
  	}
  	return true
  }
docs: // shouldCompactClientFile returns true if the client file should be compacted
  // Lock is held by caller