code: func (m *Memory) DeleteRange(ctx context.Context, startKey, endKey []byte) error {
  	if len(startKey) == 0 {
  		return trace.BadParameter("missing parameter startKey")
  	}
  	if len(endKey) == 0 {
  		return trace.BadParameter("missing parameter endKey")
  	}
  	m.Lock()
  	defer m.Unlock()
  	m.removeExpired()
  	re := m.getRange(ctx, startKey, endKey, backend.NoLimit)
  	for _, item := range re.Items {
  		m.processEvent(backend.Event{
  			Type: backend.OpDelete,
  			Item: item,
  		})
  	}
  	return nil
  }
docs: // DeleteRange deletes range of items with keys between startKey and endKey
  // Note that elements deleted by range do not produce any events