code: func (s *cacheShard) add(index uint64, obj interface{}) bool {
  	s.Lock()
  	defer s.Unlock()
  	_, isOverwrite := s.items[index]
  	if !isOverwrite && len(s.items) >= s.maxSize {
  		var randomKey uint64
  		for randomKey = range s.items {
  			break
  		}
  		delete(s.items, randomKey)
  	}
  	s.items[index] = obj
  	return isOverwrite
  }
docs: // Returns true if object already existed, false otherwise.