code: func New(
  	domain string,
  	machines []string,
  	options map[string]string,
  	fatalErrorCb kvdb.FatalErrorCB,
  ) (kvdb.Kvdb, error) {
  	if domain != "" && !strings.HasSuffix(domain, "/") {
  		domain = domain + "/"
  	}
  
  	mem := &memKV{
  		BaseKvdb:   common.BaseKvdb{FatalCb: fatalErrorCb},
  		m:          make(map[string]*memKVPair),
  		dist:       NewWatchDistributor(),
  		domain:     domain,
  		Controller: kvdb.ControllerNotSupported,
  		locks:      make(map[string]chan int),
  	}
  
  	var noByte bool
  	if _, noByte = options[KvUseInterface]; noByte {
  		mem.noByte = true
  	}
  	if _, ok := options[KvSnap]; ok && !noByte {
  		return &snapMem{memKV: mem}, nil
  	} else if ok && noByte {
  		return nil, ErrSnapWithInterfaceNotSupported
  	}
  	return mem, nil
  }
docs: // New constructs a new kvdb.Kvdb.