code: func (x *Index) initNeededMaps() (err error) {
  	x.deletes = newDeletionCache()
  	it := x.queryPrefix(keyMissing)
  	defer closeIterator(it, &err)
  	for it.Next() {
  		key := it.KeyBytes()
  		pair := key[len("missing|"):]
  		pipe := bytes.IndexByte(pair, '|')
  		if pipe < 0 {
  			return fmt.Errorf("Bogus missing key %q", key)
  		}
  		have, ok1 := blob.ParseBytes(pair[:pipe])
  		missing, ok2 := blob.ParseBytes(pair[pipe+1:])
  		if !ok1 || !ok2 {
  			return fmt.Errorf("Bogus missing key %q", key)
  		}
  		x.noteNeededMemory(have, missing)
  	}
  	return
  }
docs: // initNeededMaps initializes x.needs and x.neededBy on start-up.