code: func newTableFile(fd storage.FileDesc, size int64, imin, imax internalKey) *tFile {
  	f := &tFile{
  		fd:   fd,
  		size: size,
  		imin: imin,
  		imax: imax,
  	}
  
  	// We arrange to automatically compact this file after
  	// a certain number of seeks.  Let's assume:
  	//   (1) One seek costs 10ms
  	//   (2) Writing or reading 1MB costs 10ms (100MB/s)
  	//   (3) A compaction of 1MB does 25MB of IO:
  	//         1MB read from this level
  	//         10-12MB read from next level (boundaries may be misaligned)
  	//         10-12MB written to next level
  	// This implies that 25 seeks cost the same as the compaction
  	// of 1MB of data.  I.e., one seek costs approximately the
  	// same as the compaction of 40KB of data.  We are a little
  	// conservative and allow approximately one seek for every 16KB
  	// of data before triggering a compaction.
  	f.seekLeft = int32(size / 16384)
  	if f.seekLeft < 100 {
  		f.seekLeft = 100
  	}
  
  	return f
  }
docs: // Creates new tFile.