code: func (db *DB) Append(key []byte, value []byte) (int64, error) {
  	if len(value) == 0 {
  		return 0, nil
  	}
  
  	if err := checkKeySize(key); err != nil {
  		return 0, err
  	}
  	key = db.encodeKVKey(key)
  
  	t := db.kvBatch
  
  	t.Lock()
  	defer t.Unlock()
  
  	oldValue, err := db.bucket.Get(key)
  	if err != nil {
  		return 0, err
  	}
  
  	if len(oldValue)+len(value) > MaxValueSize {
  		return 0, errValueSize
  	}
  
  	oldValue = append(oldValue, value...)
  
  	t.Put(key, oldValue)
  
  	if err := t.Commit(); err != nil {
  		return 0, nil
  	}
  
  	return int64(len(oldValue)), nil
  }
docs: // Append appends the value to the data.