code: func (w *Writer) Append(key, value []byte) error {
  	if w.err != nil {
  		return w.err
  	}
  	if w.nEntries > 0 && w.cmp.Compare(w.dataBlock.prevKey, key) >= 0 {
  		w.err = fmt.Errorf("leveldb/table: Writer: keys are not in increasing order: %q, %q", w.dataBlock.prevKey, key)
  		return w.err
  	}
  
  	w.flushPendingBH(key)
  	// Append key/value pair to the data block.
  	w.dataBlock.append(key, value)
  	// Add key to the filter block.
  	w.filterBlock.add(key)
  
  	// Finish the data block if block size target reached.
  	if w.dataBlock.bytesLen() >= w.blockSize {
  		if err := w.finishBlock(); err != nil {
  			w.err = err
  			return w.err
  		}
  	}
  	w.nEntries++
  	return nil
  }
docs: // Append appends key/value pair to the table. The keys passed must
  // be in increasing order.
  //
  // It is safe to modify the contents of the arguments after Append returns.